Instalacja i podstawowa konfiguracja Silnika Bazy Danych MS SQL

Przygotowanie do instalacji

Przed przystąpieniem do instalacji MS SQL Server należy zaktualizować system operacyjny wraz z instalacją aktualizacji opcjonalnych.

Wszystkie komponenty potrzebne do instalacji MS SQL Server w systemie Windows są już obecne w systemie nawet, jeżeli system nie został zaktualizowany. Należy jedynie zwrócić uwagę, aby w systemie 64-bitowym zainstalować 64-bitową wersję MS SQL Server. Instalacja wersji 32-bitowej jest możliwa w systemie Windows 7, ale nie jest zalecana. W windows 10 nie da się zainstalować wersji 32-bitowej.

Instalacja z GUI

Na ekranie startowym należy wybrać opcję Custom:

Pojawi się pytanie:

Oczywiście pozostawiamy język angielski. Najlepszą praktyką jest używanie programów w języku angielskim, ponieważ znalezienie informacji w razie jakichkolwiek problemów jest zdecydowanie łatwiejsze. W kolejnym kroku instalator ściągnie niezbędne do instalacji pliki:

dane się ściągają:

Na ekranie startowym należy wybrać opcję Installation a następnie po prawej stronie New installation or add features to an existing installation:

W kolejnym oknie wybieramy wersję jaką chcemy zainstalować, wszystkie płatne wersje SQL możecie państwo kupić u nas zapraszamy do Kontaktu.

W kolejnym oknie, należy zaakceptować postanowienia licencyjne i wcisnąć Next:

W kolejnym oknie zaznaczamy opcje Use Microsoft Update to check for updates

W oknie wyboru opcji instalacji należy zaznaczyć opcję Database Engine Services pozostałe wartości pozostawić domyślne (instalacja wszystkich opcji w domyślnej lokalizacji) i wybrać Next:

W kolejnym oknie wybrać instalację instancji domyślnej. Standardowo instalowana jest instancja SQLExpress – jeżeli będzie to jedyna instancja SQL na tym komputerze nie ma potrzeby instalacji instancji nazwanej. Dodatkowo instancja domyślna jest od razu konfigurowana do pracy na porcie 1433 TCP. Przy wyborze instancji domyślnej, jej nazwa będzie taka sama jak nazwa komputera, na którym został zainstalowany SQL Server. Po wyborze instancji wybrać Next

W oknie konfiguracji serwera, za zakładce Service Accounts, należy zdefiniować konta, z których mają być uruchamiane poszczególne usługi oraz tryb uruchomienia tych usług. Usługi SQL Server Database Engine oraz SQL Server Browser powinny być ustawione na tryb automatyczny (Startup Type – Automatic). SQL Server Database Engine powinien być uruchamiany z konta ZARZĄDZANIE NT\USŁUGA SIECIOWA. Wyjątkiem jest usługa SQL Server Browser, która zawsze pracuje na koncie NT AUTHORITY\LOCAL SERVICE

W tym samym oknie, na zakładce Collation, należy sprawdzić czy jest ustawiona opcja Polish_CI_AS. W innym wypadku należy przerwać instalację i skonfigurować odpowiednio Ustawienia Regionalne w Panelu Sterowania. Błędne ustawienie opcji Collation, odpowiadającej m.in. za sortowanie i porównywanie danych tekstowych, może nawet uniemożliwić poprawną pracę aplikacji korzystających z SQL Server. Przykładem jest CDN Optima, która przy błędnie ustawionej opcji nie pozwala np. na wystawienie faktury. Przestawienie opcji Collation na działającym serwerze jest niebezpieczne i często wiąże się z utratą danych (np. mogą zginąć polskie znaki diakrytyczne w bazie). Po właściwym ustawieniu parametrów na zakładkach Service Accounts i Collation należy wybrać Next:

Kolejne okno (zakładka Server Configuration) służy do ustawienia sposobu uwierzytelniania stosowanego przez SQL Server, zdefiniowania hasła dla użytkownika sa (System Administrator) oraz zdefiniowania administratorów serwera. Należy wybrać mieszany sposób uwierzytelnienia (Authentication Mode – Mixed Mode) i zdefiniować mocne hasło dla użytkownika sa. Przy uwierzytelnieniu zintegrowanym (Windows authentication mode) mogą wystąpić problemy z niektórymi aplikacjami. Należy zadbać aby żadna aplikacja nie używała konta sa do uwierzytelnienia (bardzo często w ten sposób instalowany jest Płatnik, jeżeli mają państwo problem z tym oprogramowaniem zapraszamy do Kontaktu.) gdyż uniemożliwi to w przyszłości zmianę hasła dla tego konta. Poza tym, uprawnienia konta sa nie są potrzebne żadnej aplikacji do normalnej pracy.
W zakładce Account Provisioning można również zdefiniować dodatkowych administratorów serwera SQL, czyli konta systemu Windows przypisane do roli sysadmin. Domyślnie, konto użytkownika instalującego serwer SQL, przypisywane jest do w/w roli. Kolejnych użytkowników można zdefiniować za pomocą przycisku Add…. Można to również zrobić po instalacji poprzez definicję nowego loginu w SQL Server i przypisanie go do roli sysadmin.

W kolejnej zakładce (Data Directories) można zdefiniować domyślne foldery dla danych, baz systemowych, baz i logów użytkownika, bazy TempDB i jej logu oraz kopii zapasowych. MS SQL Server Express Edition pracuje najczęściej na jednej bazie użytkownika, którą w razie potrzeby można ręcznie przenieść do innej lokalizacji niż domyślna, zatem powyższe ustawienia można pozostawić bez zmian.

Zakładka FILESTREAM służy do zdefiniowania udziału w systemie NTFS służącego do przechowywania dużych obiektów binarnych (zdjęcia, dokumenty, pliki binarne itp.), co pozwala na odciążenie bazy danych i przyspiesza dostęp do tych obiektów. Baza danych, korzystająca z tej opcji, musi mieć zdefiniowaną specjalną grupę plików, dla której, podczas definiowania bazy, została określona opcja CONTAINES FILESTREAM. W przypadku MS SQL Server Express Edition raczej nie korzysta się z aplikacji używających tej funkcjonalności, zatem opcję FILESTREAM należy pozostawić wyłączoną.

Po naciśnięciu Next pojawi się okno podsumowujące naszą konfigurację wybieramy Install i silnik rozpoczyna swoją instalację.

KONFIGURACJA PROTOKOŁU TCP/IP DLA USŁUGI SQL SERVER

Usługa SQL Server może działać na dowolnym porcie TCP. Instancja domyślna pracuje na 1433 TCP, instancje nazwane na losowym, większym niż 1024. W MS SQL Server Express Edition protokół TCP jest domyślnie wyłączony. Aby go włączyć należy uruchomić SQL Server Configuration Manager (Wszystkie programy -> Microsoft SQL Server 2008 R2 -> Configuration Tools -> SQL Server Configuration Manager), rozwinąć gałąź SQL Server Network Configuration po lewej i wybrać Protocols for MSSQLSERVER. Podwójne kliknięcie w pozycję TCP/IP po prawej stronie uruchomi okno Właściwości: TCP/IP. Na zakładce Protocols opcję Enabled należey ustawić na Yes. Opcja Keep Alive określa interwał (w milisekundach), z jakim przesyłane będą pakiety do zdalnych komputerów w celu określenia aktywności połączenia – domyślna wartość to 30000 milisekund. Parametr Listen All określa czy SQL Server ma nasłuchiwać na wszystkich interfejsach sieciowych, czy tylko na wybranych. Domyślne ustawienie to Yes, czyli nasłuch na wszystkich interfejsach.

W tym samym oknie, na zakładce IP Addresses można zdefiniować adresy IP i porty TCP, na których nasłuchuje usługa SQL Server. Widoczne są tylko adresy interfejsów sieciowych, które istniały w systemie podczas instalacji SQL Server. Nowe adresy pojawią się m.in. po wygaśnięciu czasu dzierżawy DHCP, przeniesieniu komputera do innej sieci lub dodaniu nowej karty sieciowej. Możliwe jest ręczne dodanie nowych interfejsów (lub usunięcie istniejących) poprzez odpowiednią modyfikację wpisów w rejestrze. Poniżej lokalizacja definicji interfejsów sieciowych dla domyślnej instancji MS SQL Server

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp

Ustawienia dla IPx mają zastosowanie, gdy na zakładce Protocols opcja Listen All jest ustawiona na No.
Active – określa czy dany adres IP jest aktywny w komputerze.
Enabled – określa czy usługa SQL Server nasłuchuje na tym adresie.
IP Address – adres IPv4 lub IPv6.
TCP Dynamic Ports – jeżeli to pole jest puste, porty dynamiczne nie są używane. W celu użycia portów dynamicznych należy wpisać 0 – w takim przypadku zostanie użyty losowy port TCP powyżej 1024.
TCP Port – port, na którym nasłuchuje usługa SQL Server. Instancja domyślna podczas instalacji konfiguruje się na port statyczny 1433. Instancje nazwane używają portów dynamicznych. Dla instancji nazwanych można również zdefiniować port statyczny zamiast dynamicznego – ważne, aby nie spowodować konfliktu z inną usługą nasłuchującą na tym porcie.
Ustawienia dla IPAll mają zastosowanie, gdy na zakładce Protocols opcja Listen All jest ustawiona na Yes. W takim przypadku ustawienia dla poszczególnych interfejsów sieciowych są ignorowane.
TCP Dynamic Ports – wyświetla numer używanego portu dynamicznego (domyślna konfiguracja dla instancji nazwanej MS SQL Server 2008 R2).
TCP Port – port statyczny, na którym nasłuchuje usługa SQL Server.

Zalecana konfiguracja ustawień sieciowych:
Zakładając, że na komputerze tylko jedna karta sieciowa komputera jest podłączona do sieci LAN oraz tylko jedna instancja MS SQL Server jest zainstalowana na w/w komputerze, należy ustawić port statyczny 1433 dla wszystkich interfejsów sieciowych:
 na zakładce Protocol włączyć opcje Enabled oraz Listen All
 na zakładce IP Addresses w sekcji IPAll pole TCP Dynamics Ports pozostawić puste, natomiast w polu TCP Port wpisać 1433
Po dokonaniu jakichkolwiek zmian w ustawieniach protokołów sieciowych dla MS SQL Server należy zrestartować tę usługę, aby nowe ustawienia zaczęły obowiązywać.

KONFIGURACJA PROTOKOŁU TCP/IP DLA USŁUGI SQL BROWSER

Usługa SQL Browser służy do dostarczania informacji klientom o instancjach i portach, na jakich te instancje nasłuchują. Każdy klient, który chce wykryć dostępne instancje usługi SQL Browser, wysyła komunikat rozgłoszeniowy (broadcast) w sieci lokalnej na port UDP 1434. Wszystkie komputery z uruchomioną usługą SQL Browser przesyłają zwrotnie informacje o dostępnych instancjach usługi SQL Server. W środowisku produkcyjnym usługa SQL Browser powinna być w zasadzie wyłączona. Niestety, na skutek błędów w kodzie wielu aplikacji, wyłączenie usługi SQL Browser powoduje, że te aplikacje mają problem z komunikacją z serwerem SQL, na którym znajdują się ich bazy. Usługa SQL Browser zawsze słucha na porcie 1434 UDP i przestawienie tego portu nie jest możliwe. Niezależnie od ilości instancji usługi SQL Server, może być zainstalowana tylko jedna instancja usługi SQL Browser obsługująca wszystkie instancje SQL Server. Nie należy ograniczać ruchu na porcie UDP 1434 za pomocą reguł zapory sieciowej gdyż zapytania do usługi SQL Browser są wysyłane na adres rozgłoszeniowy 255.255.255.255 (takie pakiety nie są routowane poza sieć lokalną), natomiast odpowiedzi usługi SQL Browser są przesyłane na adres unicast pytającego komputera. W wypadku ograniczenia ruchu na porcie UDP 1434 np. do sieci lokalnej, pakiety kierowane na adres rozgłoszeniowy 255.255.255.255 zostaną odrzucone przez zaporę sieciową, co uniemożliwi komunikację z usługą SQL Browser.

KONFIGURACJA ZAPORY SIECIOWEJ DLA SERWERA SQL

W celu umożliwienia komputerom klienckim zlokalizowania i komunikacji z usługą SQL Server należy w ustawieniach zapory sieciowej zezwolić na przesyłanie danych z tych komputerów do serwera i vice versa.

Przyjęte zostało założenie, że komputer jest podłączony do sieci prywatnej (Dom lub Praca) i profil prywatny zapory sieciowej jest profilem aktywnym.
Ustawienia zapory sieciowej można zmienić w Panel sterowania -> System i zabezpieczenia -> Zapora systemu Windows -> Ustawienia zaawansowane – to w przypadku, gdy jest włączony widok Panelu sterowania według kategorii. Jeżeli widok Panelu sterowania jest wyświetlany według Duże/Małe ikony, ustawienia zapory znajdują się w Panel sterowania -> Zapora systemu Windows -> Ustawienia zaawansowane.
W oknie, które się otworzy, należy wybrać Reguły przychodzące (po lewej) raz Nowa reguła z menu akcji po prawej:

Jako typ reguły wybrać Port:

Jako typ portu – TCP, jako numer – 1433:

Jako Akcję należy wybrać Zezwalaj na połączenie:

Reguła powinna być aktywna tylko dla profilu prywatnego:

Ostatnie okno pozwala na zdefiniowanie nazwy i opcjonalnego opisu reguły:

Serwer powinien być poprawnie zainstalowany.