SQL Server 2022文档地址:https://learn.microsoft.com/zh-cn/sql/sql-server/?view=sql-server-ver16
$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc2、注册 SQL Server Ubuntu 存储库
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2022.list)"3、运行以下命令以安装 SQL Server
sudo apt-get update sudo apt-get install -y mssql-server4、等待安装完成后,运行 mssql-conf setup
sudo /opt/mssql/bin/mssql-conf setup注意:SA 账户密码需要最小长度为 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号。
wget https://community-packages.deepin.com/deepin/pool/main/o/openldap/libldap-2.4-2_2.4.47%2Bdfsg.4-1%2Beagle_amd64.deb sudo dpkg -i libldap-2.4-2_2.4.47+dfsg.4-1+eagle_amd64.deb再次运行 mssql-conf setup,继续设置,再次遇到问题,系统提示:error while loading shared libraries: libssl1.1,解决办法:
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb sudo dpkg -i libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb最后运行 mssql-conf setup,完成设置,没再报错。
systemctl status mssql-server --no-pager
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true //重启服务生效 sudo systemctl restart mssql-server2、更改默认数据或日志目录位置
//为新的数据库数据和日志文件创建目标目录 sudo mkdir /home/d/mssql/data //将目录的所有者和组更改为 mssql 用户 sudo chown mssql /home/d/mssql/data sudo chgrp mssql /home/d/mssql/data //使用 mssql-conf 通过 set 命令更改默认数据目录 sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /home/d/mssql/data //使用 mssql-conf 通过 set 命令更改默认日志文件目录 sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /home/d/mssql/data //重启服务生效 sudo systemctl restart mssql-server
//为新的备份文件创建目标目录 sudo mkdir /home/d/mssql/bak/ -p //堆代码 duidaima.com //将目录的所有者和组更改为 mssql 用户 sudo chown mssql /home/d/mssql/backup sudo chgrp mssql /home/d/mssql/backup //使用 mssql-conf 通过 set 命令更改默认备份目录 sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /home/d/mssql/backup //重启 SQL Server 服务 sudo systemctl restart mssql-server更多配置请查看文档:https://learn.microsoft.com/zh-cn/sql/linux/sql-server-linux-configure-mssql-conf?view=sql-server-ver16
DECLARE @Path NVARCHAR(50) = '/home/d/mssql/bak/test_'; SET @Path= CONCAT(@Path,CONVERT(NVARCHAR(10),GETDATE() ,120),'.bak'); BACKUP DATABASE test TO DISK = @Path WITH FORMAT; GO这段脚本的功能是将名为 test 的数据库备份到指定路径下的文件,备份文件的路径是 /home/d/mssql/bak/test_YYYYMMDD.bak,其中 YYYYMMDD 是当前日期的形式。执行备份时,会覆盖原有备份文件,重新备份。
DECLARE @Path NVARCHAR(50) = '/home/d/mssql/bak/test_'; SET @Path= CONCAT(@Path,CONVERT(NVARCHAR(10),GETDATE() ,120),'.bak'); BACKUP DATABASE test TO DISK = @Path WITH DIFFERENTIAL; GO这段代码的功能是在 test 数据库上一次完整备份的基础上,进行差异备份,通过 TO DISK = @Path 指定完整备份路径。执行备份时,SQL Server 会把差异备份的文件追加到有备份文件中。
DECLARE @Path NVARCHAR(50) = '/home/d/mssql/bak/test_'; SET @Path= CONCAT(@Path,CONVERT(NVARCHAR(10),GETDATE() ,120),'.bak'); DECLARE @ExpiryTime DATETIME2(7)=DATEADD(mm, 1, GETDATE()); BACKUP DATABASE test TO DISK = @Path WITH EXPIREDATE =@ExpiryTime; GO同时在脚本中使用 COMPRESSION 指令可设置备份文件自动压缩,还可以指定压缩的算法。例如:
//参考文档: https://learn.microsoft.com/zh-cn/sql/relational-databases/integrated-acceleration/use-integrated-acceleration-and-offloading?view=sql-server-ver15 //使用默认MS_XPRESS压缩选项 WITH COMPRESSION (ALGORITHM = MS_XPRESS);SQL Server 数据库的备份和还原文档:https://learn.microsoft.com/zh-cn/sql/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases?view=sql-server-ver16