MSSQL 2022 na Slackaware 15.0
Niestety wszystkie wydania jak do tej pory zostały oparte o dystrybucje RedHat, Ubuntu i SUSE z obsługą systemd
W załączeniu paczka txz z MSSQL dla Slackware
MSSQL 2022 Build 16.0.950.9-1 –>mssql-server_16.0.950.9-1
MSSQL 2019 tools–>mssql-tools_17.7.1.1-1_amd64.txz
MSODBCSQL–>msodbcsql17_17.10.1.1-1
Dodatkowe biblioteki dla wersji 16.0.950.9-1 libsss_nss_idmap.0.6.0–>libsss_nss_idmap rozpakować do /usr/local/lib64
Pierwsza konfiguracja serwera poprzez /opt/mssql/bin/mssql-conf setup
Lista dostępnych opcji poprzez uruchomienie samego mssql-conf
nazwa serwera mssql vNEXT = nazwa hosta
przykładowy skrypt uruchomieniowy:
#!/bin/bash
#
# /etc/rc.d/rc.mssql
#
# Start/stop MSSQL
# Last modified: 03.01.2018
case „$1” in
’start’ )
echo „Start MSSQL”
nohup /opt/mssql/bin/sqlservr > /dev/null 2>&1 & echo $! > /var/run/sqlservr.pid
echo „MSSQL started.”
;;
’stop’)
echo „Stop MSSQL.”
pid=`cat /var/run/sqlservr.pid`
kill -s SIGINT $pid
rm /var/run/sqlservr.pid
echo „MSSQL Stopped.”
;;
*)
echo „usage $0 start|stop”
;;
esac
Tworzone bazy danych maja compatibility level 150 , czyli dalej mssql 2019
Testowo baza płatnika o rozmiarze 4GB działa bez zarzutu zarówno w pierwotnym compatibility level 110 jak i w podniesionym do 150
Przydatne zapytania SQL
Podniesienie compatibility level:
ALTER DATABASE nazwa_bazy
SET COMPATIBILITY_LEVEL = 150;
GO
Sprawdzenie poziomu compatibility level:
USE nazwa_bazy;
GO
SELECT compatibility_level
FROM sys.databases WHERE name = 'nazwa_bazy’;
GO
AdHoc włączenie – dla Płatnika
sp_configure 'show advanced options’, 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries’, 1;
RECONFIGURE;
GO
Dodanie nazwy serwera do sys.servers
EXEC sp_addlinkedserver @server=’Twoja_nazwa’
Sprawdzenie nazw linked server
select name from sys.servers
Po instalacji zmiana collation z domyślnego latin1 zanim uruchomimy serwer mssql
mssql-conf set-collation
wpisać: Polish_CI_AS
Jest to bardzo ważne jeżeli przenosimy bazy np pakietu firmy INSERT (Subiekt, Rewizor, Rachmistrz itp) jeżeli nie zmienimy kodowania serwera na kodowanie równe bazie danych przy aktualizacji podmiotów otrzymamy błąd 0x80040E14
Przykładowy skrypt backupu pojedynczej bazy danych
#!/bin/bash
#
KIEDY=`date +%F`
KATALOG=/katalog/przechowywania/kopii
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P haslo_bazy -Q „BACKUP DATABASE [nazwa_bazy] TO DISK = N’$KATALOG/nazwa_bazy-$KIEDY.bak’ WITH NOFORMAT, NOINIT, NAME = 'nazwa_bazy-full’, SKIP, NOREWIND, STATS = 10”
gzip -9 $KATALOG/nazwa_bazy-$KIEDY.bak