MSSQL 2019 Slackware 14.2 i current
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
Do poprawnego działania potrzebne są biblioteki libc++ oraz numactl w Slackware 14.2 dodatkowo python3 jeżeli ktoś nie ma zainstalowanego, paczki pythona3 zbudowana ze źródeł current
Python3–>python3-3.9.1-x86_64-2.txz
Python-setuptools–>python-setuptools-53.0.0-x86_64-1.txz
Gotowe paczki przy linkach do slackbuildów
https://slackbuilds.org/repository/14.2/system/numactl/?search=libnuma –>numactl-2.0.13-x86_64-1_SBo.tgz
Do poprawnego zbudowania paczki z libc++ wymagane są biblioteki – w odpowiedniej kolejności:
https://slackbuilds.org/repository/14.2/libraries/libunwind/ –>libunwind-1.1-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/development/docutils/–>docutils-0.14-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/pytz/–>pytz-2018.3-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/babel/–>babel-2.5.3-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/six/–>six-1.14.0-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/MarkupSafe/–>MarkupSafe-1.1.1-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/libraries/Jinja2/–>Jinja2-2.11.2-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/Pygments/–>Pygments-2.7.2-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/python-requests/–>python-requests-2.25.0-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/alabaster/–>alabaster-0.7.12-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/imagesize/–>imagesize-1.2.0-x86_64-2_SBo.tgz
https://slackbuilds.org/repository/14.2/python/snowballstemmer/–>snowballstemmer-1.2.1-x86_64-2_SBo.tgz
https://slackbuilds.org/repository/14.2/development/Sphinx/–>Sphinx-3.4.1-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/network/krb5/–>krb5-1.19-x86_64-1.txz
Na koniec pakiet libc++ https://slackbuilds.org/repository/14.2/libraries/libc++/–>libc++-3.8.0-x86_64-1_SBo
MSSQL 2019 Build 15.0.4083.2-15 –>mssql-server_15.0.4083.2-15_amd64.txz
MSSQL 2019 tools–>mssql-tools_17.7.1.1-1_amd64.txz
MSODBCSQL–>msodbcsql_13.1.9.2-1_amd64
Dodatkowe biblioteki dla wersji 15.0.4083.2-15 libsss_nss_idmap–>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 140 = mssql -vNext
Testowo baza płatnika o rozmiarze 4GB działa bez zarzutu zarówno w pierwotnym compatibility level 110 jak i w podniesionym do 140
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