Wprowadzenie
Wraz z rosnącą liczbą nowych serwerów działających pod kontrolą systemu Linux, a nawet jedną trzecią maszyn wirtualnych Microsoft Azure działających pod kontrolą systemu Linux, firma podjęła decyzję o przeniesieniu SQL Server do systemu Linux w celu zwiększenia swojego udziału w rynku i przyciągnięcia nowych klientów.
Microsoft rozpoczął inroads poza środowisk Windows z różnych produktów, takich jak aplikacje Office 365 dla różnych systemów operacyjnych telefonów komórkowych, takich jak iOS i Android, jak również ich własnych Windows Phone OS. Microsoft stwierdził, że chcą dostarczyć SQL Server na Ubuntu, Red Hat i SUSE, który czuje, wygląda i działa tak samo jak wersja Windows SQL Server, gdzie użytkownicy nie powinni być w stanie zobaczyć różnice między nimi, przynajmniej z perspektywy front-end.
Rzeczy do rozważenia
SQL Server na Linuksie jest wciąż bardzo nowy, więc niespójne zachowanie i częściowo obsługiwane funkcje mogą być widoczne podczas korzystania z niego. Microsoft stwierdził, że wersja preview SQL Server na Ubuntu, Red Hat, SUSE i silnik Docker będzie wspierać podstawowe możliwości, takie jak podstawowe komponenty silnika bazy danych, które obsługują przetwarzanie transakcyjne i hurtownie danych. Na chwilę obecną, jak podaje Microsoft w swoich release notes dla SQL Server na Linuksa, nawet w najnowszym Community Tech Preview 2.0 (CTP 2.0), wciąż wiele funkcji nie jest wspieranych, więc na tym polu jest jeszcze sporo do zrobienia. Niemniej jednak jest to ogromny krok dla Microsoftu, na który wielu DBA czekało z niecierpliwością.
Wymagania systemowe
Microsoft nie podał pełnych wymagań systemowych do instalacji SQL Server na Ubuntu, Red Hat, SUSE i silniku Docker, jedyne co zauważyli to, że wymaga więcej niż 3,25GB pamięci RAM. Poniżej przedstawiamy podstawowe minimalne wymagania sprzętowe dla Ubuntu, dostosowane do wymagań pamięci RAM i przestrzeni dyskowej, aby uruchomić SQL Server na Ubuntu:
CPU: 700Mhz procesor (Intel Celeron lub lepszy)
RAM: minimum 4GB (Ubuntu potrzebuje minimum 512MB)
HDD: 5GB dla Ubuntu i dodatkowe 3GB dla SQL Server minimum
Procedura instalacji
SQL Server na Linuksie obsługuje obecnie kilka dystrybucji Linuksa, są to Red Hat, SUSE i Ubuntu, a także silnik Docker.
Dla tego artykułu, zamierzamy zainstalować SQL Server na Ubuntu, najnowsza wersja to 17.04 w czasie pisania tego artykułu.
-
Po pierwsze, otwórz Terminal klikając prawym przyciskiem myszy na pulpicie i wybierając Otwórz Terminal.
Alternatywnie, można przejść do menu Start w lewym górnym rogu, otwierając go i klikając na Terminal, aby go otworzyć.
-
Po otwarciu Terminala wita nas okno, które wygląda jak na poniższym obrazku.
-
To właśnie tutaj odbywa się instalacja. Najpierw musimy zaimportować klucze GPG z publicznego repozytorium, wykonując następujące polecenie:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add –
-
Użytkownik musi wprowadzić hasło do konta przed zakończeniem kroku.
-
Następnie musimy mieć zarejestrowane repozytorium Microsoft SQL Server w Ubuntu. W tym kroku, podobnie jak w poprzednim, użytkownik musi wpisać hasło do konta przed zakończeniem kroku (ale tylko jeśli minęło 15 minut od ostatniej akcji, ponieważ jest to funkcja Ubuntu, aby wpisać hasło tylko raz w ciągu 15 minut, aby ułatwić przepływ pracy).
curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
-
Teraz możemy zainstalować SQL Server na Ubuntu wpisując następujące komendy:
sudo apt-get update
sudo apt-get install -y mssql-serverDzięki temu pakiet jest zainstalowany. Aby całkowicie zainstalować SQL Server na Ubuntu musimy uruchomić setup mssql-conf i postępować zgodnie z podpowiedziami. Zalecane jest również silne hasło do utworzenia konta SA (minimalna długość 8 znaków, w tym zarówno wielkie jak i małe litery oraz 10 cyfr lub/i symboli niealfanumerycznych). Aby kontynuować konfigurację wykonaj następujące polecenie:
sudo /opt/mssql/bin/mssql-conf setup
-
Po zakończeniu instalacji SQL Server na Ubuntu możemy sprawdzić czy usługa jest uruchomiona i działa wpisując następujące polecenie:
systemctl status mssql-server
-
Po pewnym czasie może pojawić się aktualizacja oprogramowania, którą można załatwić za pomocą kilku linijek w Terminalu. Najpierw należy zaktualizować listy repozytoriów apt-get, uruchamiając poniższą komendę i wpisując hasło do konta.
sudo apt-get update
sudo /opt/mssql/bin/mssql-conf setup -
Po zaktualizowaniu list repozytoriów, wszystko co jest potrzebne do aktualizacji serwera SQL to uruchomienie powyższego polecenia instalacyjnego, które zaktualizuje pakiet mssql-server:
sudo apt-get install mssql-server
Uruchomienie tych poleceń spowoduje próbę pobrania najnowszego pakietu, a następnie podmieni zaktualizowane binarki, które znajdują się w katalogu /opt/mssql. Operacja ta nie ma wpływu na żadne bazy danych użytkownika ani bazy systemowe.
Instalacja SQL Server Tools
Opcjonalnie użytkownicy mogą zainstalować SQL Server Tools na Ubuntu, aby poprawić swoje doświadczenie. Obecnie pakiet zawiera narzędzie do tworzenia zapytań z wiersza poleceń (sqlcmd) oraz narzędzie do masowego importu i eksportu (bcp).
Instalacja odbywa się również z poziomu Terminala:
-
Najpierw należy zaimportować klucze GPG publicznego repozytorium. Po uruchomieniu tej komendy należy wprowadzić hasło do konta.
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add –
-
Następnie należy zarejestrować repozytorium Microsoft Ubuntu:
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
-
Zaktualizuj listę źródeł i uruchom polecenie instalacji z pakietem deweloperskim unixODBC:
sudo apt-get update
sudo apt-get install mssql-tools unixodbc-dev -
Po uruchomieniu drugiego polecenia, użytkownik zostanie poproszony o zezwolenie na instalację
-
Po czym użytkownik będzie musiał zaakceptować warunki licencji
-
Aby polecenia sqlcmd i bcp mogły być dostępne z powłoki bash, PATH musi być zmodyfikowane w ~/.bash_profile za pomocą polecenia:
echo ‘export PATH=”$PATH:/opt/mssql-tools/bin”‘ >> ~/.bash_profile
Dla sesji nie wymagających logowania i interaktywnych, PATH musi być odpowiednio zmodyfikowana:
echo ‘export PATH=”$PATH:/opt/mssql-tools/bin”‘ >> ~/.bashrc
source ~/.bashrc -
Po zakończeniu instalacji tworzona jest testowa baza danych w celu sprawdzenia funkcjonalności SQL Servera na Ubuntu.
-
Po zakończeniu procesu uruchamiane jest najnowsze SQL Server Management Studio zainstalowane na maszynie Windows. Ponieważ maszyna Ubuntu znajduje się w sieci lokalnej, jej adres IP to w tym przypadku 192.168.1.8. Po połączeniu się za pomocą danych uwierzytelniających SQL Server (ponieważ uwierzytelnianie Windows nie działa w tym przypadku), można zobaczyć, że baza danych, którą właśnie utworzyliśmy za pomocą narzędzia sqlcmd w Terminalu Linuksa jest utworzona, a serwer jest osiągalny.
Instalacja SQL Server Agent
Oprócz SQL Server Tools, SQL Server Agent może być również zainstalowany jako dodatek po tym, jak zainstalujemy SQL Server na Ubuntu, aby zarządzać i uruchamiać zaplanowane zadania.
-
Uaktualniamy listę źródeł i uruchamiamy polecenie instalacji, po czym w Terminalu pojawi się monit o ponowne uruchomienie SQL Servera, aby Agent mógł się uruchomić.
sudo apt-get update
sudo apt-get install mssql-server-agent
sudo systemctl restart mssql-serverPo tym łącząc się z serwerem w SSMS widać, że Agent SQL Server jest uruchomiony.
Troubleshooting
Problem
-
Nie można połączyć się z serwerem SQL na Ubuntu z poziomu SSMS
Rozwiązanie
-
Zweryfikuj, czy serwer jest uruchomiony na maszynie Ubuntu, uruchamiając polecenie:
sudo systemctl status mssql-server
Jeśli serwer nie jest uruchomiony, można go uruchomić, wykonując polecenie:
sudo systemctl start mssql-server
Po czym ponowne uruchomienie poprzedniego polecenia powinno wyglądać coś takiego:
-
Zweryfikuj, czy firewall zezwolił na port 1433, z którego domyślnie korzysta SQL Server. Najpierw musimy sprawdzić status ufw, czyli Ubuntu’s Uncomplicated Firewall, wykonując następujące polecenie i wpisując hasło do konta:
sudo ufw status
-
Aby zezwolić na port przez ufw, wykonaj następujące polecenie:
sudo ufw allow 1433
-
Problem
- Nie można połączyć się z serwerem przy użyciu konta SA
Rozwiązanie
-
Aby zresetować hasło administratora systemu (SA), wykonaj następujące polecenia:
sudo systemctl stop mssql-server
sudo /opt/mssql/bin/mssql-conf setupZwróć uwagę, że spowoduje to tymczasowe zatrzymanie usługi SQL Server mssql-server.
- Autor
- Recent Posts
Stefan pracuje obecnie w ApexSQL LLC jako inżynier sprzedaży oprogramowania, gdzie specjalizuje się w wydajności baz danych i tworzeniu kopii zapasowych.
- Jak zainstalować SQL Server na Ubuntu – 18 maja 2017
.