<mohammadrony>

MSSQL Client Setup

Install sqlcmd

CentOS 8

# sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
sudo yum install sqlcmd

Ubuntu 22

sudo curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/prod.list)"
sudo apt update
sudo apt install -y sqlcmd

Install mssql-tools

CentOS 8

# sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
sudo yum install -y mssql-tools18 unixODBC-devel
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc

Ubuntu 22

curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt update
sudo apt install -y mssql-tools18 unixodbc-dev
# Update ~/.bashrc and ~/.zshrc file.
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.zshrc
source ~/.zshrc

Docker

docker run -it --rm --name mssql-tools mcr.microsoft.com/mssql-tools bash

Connect Database Server

sqlcmd -C -S IP_ADDRESS -U USER -P 'PASSWORD'

Update IP_ADDRESS, USER and PASSWORD with real value.

See database version

SELECT @@VERSION;
GO

Backup database

sqlcmd -S localhost -U 'user' -P 'password' -d master \
   -Q "BACKUP DATABASE dbname TO DISK = N'/data/path/' WITH NOFORMAT, INIT, COMPRESSION, NAME = 'dbname-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

Restore database

sqlcmd -S localhost -U 'user' -P 'password' -d master \
   -Q "RESTORE DATABASE dbname FROM DISK='/data/path/dbname.bak' WITH MOVE 'dbname' TO '/.../mssql/data/dbname.mdf', MOVE 'dbname_log' TO '/.../mssql/data/dbname_log.ldf'"