install SQL Server 2019 on linux
SQL Server 2019 – Ubuntu 20.04 repository – Developer version
Starting with SQL Server 2019 CU10 , Ubuntu 20.04 is supported.
install ms sql server 2019
zie https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-linux-ver15&preserve-view=true
# Import the public repository GPG keys
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
# Register the Microsoft SQL Server Ubuntu repository for SQL Server 2019:
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
# install SQL Server
sudo apt-get update
sudo apt-get install -y mssql-server
# run mssql-conf setup
sudo /opt/mssql/bin/mssql-conf setup
# pswd see KP
# (server = localhost or 192.168.10.184)
# dev edition , english
# verify
clear && systemctl status mssql-server --no-pager
ok
uninstall
sudo apt-get remove mssql-server
sudo rm -rf /var/opt/mssql/
disable autostart
sudo systemctl list-unit-files --type=service | grep 'mssql' (zie systemctl )
=> mssql-server.service enabled enabled
sudo systemctl disable mssql-server.service
dit de-activeert enkel de boot startup
je kan stoppen en starten met sudo systemctl start mssql-server sudo systemctl status mssql-server
stop manueel mssql-service vooraleer LXM te restarten ( “normale” afsluiten mssql duurt 30 minuten !)
locations
binaries are in /opt/mssql/
master databases are in : /var/opt/mssql/data (root permission required, since owner is mssql user, not ward)
mssql user has the file and group ownership for both MDF and LDF files.
I do not want databases & log files on the SDD , so move db :
sysdb -> /mnt/backup/SQLSYSDB
userdb -> /mnt/backup/SQLDATA
relocate system databases
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf?view=sql-server-ver15#masterdatabasedir
https://www.mssqltips.com/sqlservertip/7087/move-sql-server-system-databases-linux/
# 1. create database directories , if not exist already
mkdir ...
# 2. set permissions
sudo chown mssql /mnt/backup/SQLSYSDB && sudo chgrp mssql /mnt/backup/SQLSYSDB
sudo chown mssql /mnt/backup/SQLDATA && sudo chgrp mssql /mnt/backup/SQLDATA
# 3. change location of master , sql service must be running
sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /mnt/backup/SQLSYSDB/master.mdf
sudo /opt/mssql/bin/mssql-conf set filelocation.masterlogfile /mnt/backup/SQLSYSDB/mastlog.ldf
#! do NOT restart ms sql server as suggested restart service is indeed ok for most option changes
# but NOT for moving master files
# **stop** server instead !
# 4. stop SQL Server
systemctl stop mssql-server
# verify status:
clear && systemctl status mssql-server --no-pager
# 5. move database files (copy first, delete later)
sudo cp /var/opt/mssql/data/master.mdf /mnt/backup/SQLSYSDB
sudo cp /var/opt/mssql/data/mastlog.ldf /mnt/backup/SQLSYSDB
# 6. start SQL Server
sudo systemctl start mssql-server
# 7. validate
# 8. validate
exec sp_helpfile
ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBData, FILENAME = '/mnt/backup/SQLSYSDB/MSDBData.mdf');
GO
ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBLog, FILENAME = '/mnt/backup/SQLSYSDB/MSDBLog.ldf');
GO
ALTER DATABASE model MODIFY FILE ( NAME = modeldev, FILENAME = '/mnt/backup/SQLSYSDB/model.mdf');
GO
ALTER DATABASE model MODIFY FILE ( NAME = modellog, FILENAME = '/mnt/backup/SQLSYSDB/modellog.ldf');
GO
ALTER DATABASE tempDB MODIFY FILE ( NAME = tempdev,FILENAME = '/mnt/backup/SQLSYSDB/tempdb.mdf');
GO
ALTER DATABASE tempDB MODIFY FILE ( NAME = templog, FILENAME = '/mnt/backup/SQLSYSDB/templog.ldf');
GO
ALTER DATABASE tempDB MODIFY FILE ( NAME = tempdev2,FILENAME = '/mnt/backup/SQLSYSDB/tempdb2.ndf');
GO
ALTER DATABASE tempDB MODIFY FILE ( NAME = tempdev3,FILENAME = '/mnt/backup/SQLSYSDB/tempdb3.mnf');
GO
ALTER DATABASE tempDB MODIFY FILE ( NAME = tempdev4,FILENAME = '/mnt/backup/SQLSYSDB/tempdb4.ndf');
GO
sudo systemctl stop mssql-server.service
move other systemdb files to
aa
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /mnt/backup/SQLBACKUP
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /mnt/backup/SQLDATA
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /mnt/backup/SQLLOGGING
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /mnt/backup/SQLDATA
sudo /opt/mssql/bin/mssql-conf set filelocation.errorlogfile /mnt/backup/SQLLOGGING
issues
debuggen met :
journalctl -xe
systemctl status mssql-server
-
stoppen ms sql service kan tot 60 minuten duren !
was ook zo in LXM19 , ik had er een oplossing voor ( genoteerd in onenotes ? ) -
sudo /opt/mssql/bin/mssql-conf set
werkt niet => “shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory”
na uninstall , re-install
nu is het wel een tekst bestand !?
root@lapwm:/var/opt/mssql# cat mssql.conf
[sqlagent]
enabled = false
[EULA]
accepteula = Y
[language]
lcid = 1033
[filelocation]
masterdatafile = /mnt/backup/SQLSYSDB/master.mdf
masterlogfile = /mnt/backup/SQLSYSDB/mastlog.ldf
zeer interessant :
https://github.com/MicrosoftDocs/WSL/issues/815