MSSQL dla linux dostępny jest już od dłuższego czasu – pierwsze wersje pojawiły się już w roku 2017. Utworzenie wersji dla systemu linux otworzyło też drogę do możliwości uruchomienia bazy w postaci kontenera (Docker). To z kolei pozwoliło uruchamiać bazy MSSQL na QNAP bez potrzeby instalacji maszyn wirtualnych – dzięki aplikacji Container Station kontener z bazą mógł być uruchomiony na dowolnym urządzeniu z procesorem x86. Sama instalacja i podstawowa konfiguracja bazy jest dosyć prosta, jednak domyślna instalacja z poziomu Container Station może przysporzyć w późniejszym czasie pewnych problemów. Druga kwestia – najnowsza wersja dostępna w podstawowym repozytorium, to 2017. Dlatego w tym wpisie pokażę, jak na QNAP uruchomić MSSQL w wersji 2019, ale także jak później można zmieniać zaawansowane opcje.

  1. Jeśli do tej pory tego nie zrobiliśmy, instalujemy aplikację Container Station. W tym celu logujemy się do systemu, otwieramy aplikację App Center i wyszukujemy Container Station. Oczywiście klikamy Zainstaluj:
  2. Po instalacji klikamy Otwórz. Wyświetli nam się ekran inicjowania Container Station, który głównie wymaga od nas wskazania katalogu, gdzie przechowywane będą pliki kontenerów. Domyślnie to Container i na dobrą sprawę możemy go zostawić w takiej formie. Klikamy Start Now.
  3. Po chwili powinniśmy zobaczyć ekran główny aplikacji:
  4. Generalnie do instalacji i uruchomienia aplikacji możemy skorzystać z opcji Create, która pozwoli wyszukać dowolną aplikację spośród dostępnych w Docker Hub. Jeśli wpiszemy MSSQL, zostanie wyświetlona lista dostępnych aplikacji. Pierwsza na liście (ta, która ma najwięcej gwiazdek) to aplikacja przygotowana przez Microsoft:
    Jeśli kontener stworzony przez Microsoft nie jest odnaleziony – aktualizacja instrukcji na końcu wpisu.
  5. Klikając w nazwę obrazu, zostaniemy przekierowani na stronę docker hub, gdzie znajdziemy dodatkowe informacje na temat danego obrazu. W przypadku tego obrazu kieruje do strony… na której znajdziemy link do kolejnej strony 😉
    Docelowy adres z opisem obrazów MSSQL
  6. Na docelowej stronie znajdziemy parametry, które pozwolą nam uruchomić kontener. Jednak zanim do tego dojdziemy, proponuję jeszcze jeden krok. Podobnie jako w wpisie o tworzeniu maszyny wirtualnej, proponuję przygotować wirtualny przełącznik, który pozwoli nam na stworzenie kontenera z osobnym adresem IP. Wykonujemy kroki 2-10 z opisu wyżej.
  7. Jeśli na tym etapie skorzystamy z opcji pobierania MSSQL z repozytorium znalezionego w Container Station, będziemy mogli uruchomić ostatnio wersję MSSQL, ale w wersji 2017. Chcąc skorzystać z wersji 2019, musimy zrobić to trochę inaczej. W tym celu łączymy się przez SSH do naszego QNAP (robimy to jak w instrukcji wspomnianej w kroku 6):
  8. Następnie za pomocą wpisujemy następującą komendę, pozwalającą pobrać ostatnią wersję MSSQL 2019:
    docker pull mcr.microsoft.com/mssql/server
    Ten proces potrwa kilka minut, ponieważ musi zostać pobrany obraz MSSQL Server, który ma ok 1,4GB
  9. Na razie nie przerywajmy połączenia SSH, jeszcze do niego wrócimy, ale użyjemy Container Station do utworzenia kontenera z pobranego obrazu. W tym celu jeszcze raz wpisujemy w Create -> Search Images: MSSQL. Teraz zobaczymy, że domyślnie wyświetlony jest obraz dostępny lokalnie:
  10. Klikamy przycisk Create. Zostanie wyświetlone okno tworzenia kontenera z wyświetlonymi podstawowymi opcjami. Wypełniamy pole Name oraz określamy procentowo, z jakiej mocy CPU ten kontener może korzystać oraz ile pamięci RAM może wykorzystać. Następnie klikamy Advanced Settings >>
  11. W oknie, które się wyświetli zaczynamy od konfiguracji Environment, czyli zmiennych środowiskowych. Uwaga informacje, co należy tam wpisać znajdziemy zazwyczaj w opisie na stronie obrazu w Docker Hub. Tutaj jest nie inaczej:

    A więc wiemy już, że musimy zaakceptować postanowienia licencyjne, utworzyć hasło administratora SA oraz wskazać typ zainstalowanej bazy:

    ACCEPT_EULA -> Y
    SA_PASSWORD -> [nasze wybrane hasło]
    MSSQL_PID -> ID wersji bazy

  12. Następnie przechodzimy do części Network. Tutaj musimy ustawić, w jaki sposób kontener będzie dostępny z sieci. Domyślna opcja to NAT z przekierowaniem portu, ja jednak wybiorę opcję Bridge. Da to możliwość ustawienia osobnego adresu IP dla tego kontenera. Dzięki temu będziemy mogli łączyć się z bazą danych na innym adresie IP niż nasz NAS. Oczywiście tę opcję warto skonfigurować „pod siebie”, niekoniecznie jak w przykładzie 🙂 Po wybraniu opcji Bridge wskazujemy wirtualny przełącznik oraz zaznaczamy opcję Use static IP. To pozwoli nam ustawić określony adres IP ręcznie.
  13. Ostatnie zmiany, które warto wprowadzić, ustawiamy w części Shared Folder. Tutaj możemy wskazać katalogi, które będą mapowane do katalogów NAS. Co nam to daje? Z poziomu NAS będziemy widzieli zawartość wybranych, wewnętrznych katalogów kontenera, w których możemy np. zapisywać backup bazy. Do tego celu utworzyłem dwa katalogi DB i Backup:

    Teraz możemy te katalogi zamapować. Pierwszy, czyli DB mapujemy do katalogu, gdzie MSSQL przechowuje pliki baz danych, czyli „/var/opt/mssql”. Drugi, jak nazwa wskazuje, to katalog na backupy, zamontowany w kontenerze w katalogu /mnt/backup
  14. Klikamy przycisk Create, zostanie wyświetlone okno w podsumowaniem. Klikamy OK, rozpocznie się tworzenie kontenera.
  15. Jeśli wszystko wykonaliśmy poprawnie, kontener zostanie utworzony, uruchomiony i będzie widoczny na liście:

Kontener mamy już uruchomiony, więc wracamy do połączenia SSH. Po połączeniu możemy wyświetlić listę kontenerów korzystając z polecenia:

docker container ls

Aby połączyć się z kontenerem, wykonujemy polecenie:

sudo docker exec -u 0 -it qnap-mssql „bash”

Oczywiście „qnap-mssql” to nazwa mojego kontenera, więc polecenie należy dostosować do własnych potrzeb.

W tym momencie jesteśmy podłączeni do powłoki kontenera, która pozwoli nam na szersze zarządzanie nie tylko aplikacją, ale systemem w kontenerze. Do czego może nam to być potrzebne? Załóżmy, że potrzebujemy uruchomić narządzie do konfiguracji MSSQL, które pozwoli nam zmienić typ licencji. W przypadku wersji zainstalowanej w Windows – mamy do dyspozycji graficzne narzędzie. Tutaj tylko tekstowe. Aby uruchomić to narzędzie, wykonujemy komendę:

/opt/mssql/bin/mssql-conf setup

No i pojawia się problem, ponieważ zobaczymy listę błędów.

Dlatego musimy doinstalować polecenie sudo

apt-get update && apt-get install sudo

Następnie możemy już spokojnie wpisać komendę:

sudo /opt/mssql/bin/mssql-conf setup

I naszym oczom ukaże się lista opcji konfiguracyjnych dla naszej instancji MSSQL, która pozwoli na zmianę wersji bądź dodanie klucza licencyjnego:

W ten sposób możemy oczywiście wykonać więcej operacji konfiguracyjnych. Pełną listę opcji z przykładamy znajdziemy na stronach Microsoft:
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf?view=sql-server-ver15

Jeśli chodzi o możliwość połączenia i pracy z serwerem SQL, możemy skorzystać z narzędzia sqlcmd, które domyślnie jest dostępne w kontenerze. Nie da się jednak wykonać go standardowo wpisując komendę w konsoli:

Dlatego musimy podać pełną ścieżkę do tego narzędzia wraz z adresem naszego serwera SQL oraz użytkownikiem/hasłem:

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Pa$$w0rd’

Uwaga – po –P wpisujemy hasło ustawione podczas konfiguracji kontenera. W moim przypadku to testowy 'Pa$$w0rd’, ale w Waszym powinno być Wasze hasło 🙂

Na dzisiaj to tyle:)

 

Aktualizacja 10.2021r.

Jeśli podczas wyszukiwania kontenera mssql server pojawią się problemy i aplikacja Container Station nie wyświetli oficjalnego kontenera stworzonego przez Microsoft, należy pobrać go w inny sposób.

  1. Przechodzimy na stronę hub.docker.com i wyszukujemy mysql server. W chwili pisania tej aktualizacji, dostępny jest pod linkiem:
    https://hub.docker.com/_/microsoft-mssql-server
  2. Na stronie odnajdujemy komendę pobierania kontenera:
  3. Kopiujemy polecenie:

    docker pull mcr.microsoft.com/mssql/server

  4. Logujemy się od urządzenia przez SSH i wykonujemy to polecenie:
  5. Następnie przechodzimy do Container Station i wyszukujemy mssql. Pierwszy wynik powinien zostać wyświetlony w zakładce „Lokalny”. Klikamy Zainstaluj i postępujemy dalej jak w artykule.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *