SQLShack

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.

  1. 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ć.

  2. Po otwarciu Terminala wita nas okno, które wygląda jak na poniższym obrazku.

  3. 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 –

  4. Użytkownik musi wprowadzić hasło do konta przed zakończeniem kroku.

  5. 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

  6. Teraz możemy zainstalować SQL Server na Ubuntu wpisując następujące komendy:

    sudo apt-get update
    sudo apt-get install -y mssql-server

    Dzię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

  7. 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

  8. 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

  9. 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:

  1. 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 –

  2. 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

  3. Zaktualizuj listę źródeł i uruchom polecenie instalacji z pakietem deweloperskim unixODBC:

    sudo apt-get update
    sudo apt-get install mssql-tools unixodbc-dev

  4. Po uruchomieniu drugiego polecenia, użytkownik zostanie poproszony o zezwolenie na instalację

  5. Po czym użytkownik będzie musiał zaakceptować warunki licencji

  6. 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

  7. Po zakończeniu instalacji tworzona jest testowa baza danych w celu sprawdzenia funkcjonalności SQL Servera na Ubuntu.

  8. 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.

  1. 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-server

    Po 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 setup

    Zwróć uwagę, że spowoduje to tymczasowe zatrzymanie usługi SQL Server mssql-server.

  • Autor
  • Recent Posts
Stefan Veselinovic
Support Sales Engineer at ApexSQL
Stefan już w młodym wieku wkręcił się w świat elektroniki, zawsze otaczał się czymś do majsterkowania. Później wkręcił się również w świat IT. Zainteresował się zarządzaniem bazami danych, programowaniem i projektowaniem graficznym. Codziennie stara się doskonalić, ucząc się i testując nowe rzeczy.
Stefan pracuje obecnie w ApexSQL LLC jako inżynier sprzedaży oprogramowania, gdzie specjalizuje się w wydajności baz danych i tworzeniu kopii zapasowych.

Stefan Veselinovic
Latest posts by Stefan Veselinovic (see all)
  • Jak zainstalować SQL Server na Ubuntu – 18 maja 2017

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.