探索SQL Server 2022在Ubuntu 20.04上的安装、配置、备份与常见问题

76 篇文章 2 订阅

 

目录

SQL Server 2022 安装

1、导入公共存储库 GPG 密钥

2、注册 SQL Server Ubuntu 存储库

3、运行以下命令以安装 SQL Server

4、等待安装完成后,运行 mssql-conf setup

5、验证服务是否正常运行

6、打开 SQL Server TCP 端口(默认值为 1433)

SQL Server 2022 配置

1、启用 SQL Server 代理

2、更改默认数据或日志目录位置

3、更改生成备份文件的默认位置

4、设置数据库自动备份


最近新项目要上线,考虑成本,放弃云数据库,选择自行安装,数据库选择SQL Server 2022,系统选择Ubuntu 20.04。


//SQL Server 2022文档地址
https://learn.microsoft.com/zh-cn/sql/sql-server/?view=sql-server-ver16

SQL Server 2022 安装

SQL Server 2022先决条件:服务器内存至少需要2 GB 。

1、导入公共存储库 GPG 密钥

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc

2、注册 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-server

4、等待安装完成后,运行 mssql-conf setup

按照提示选择数据库版本及设置 SA 密码。其中数据库版本Evaluation、Developer 和 Express 版为免费版本。

sudo /opt/mssql/bin/mssql-conf setup

注意:SA 账户密码需要最小长度为 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号。

此时如果正常,那恭喜您!但我尝试了好几次,都卡在了这里,系统提示:error while loading shared libraries: liblber-2.4.so.2

图片

网上查了一堆资料,最终找到了解决办法:

下载安装libldap-2.4-2_2.4.47+dfsg.4-1+eagle_amd64包​​​​​​​

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,解决办法:

下载安装libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64包​​​​​​​

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.debc

最后运行 mssql-conf setup,完成设置,没再报错。

5、验证服务是否正常运行

systemctl status mssql-server --no-pager

图片

此时SQL Server 已在 Ubuntu 上正常运行。

6、打开 SQL Server TCP 端口(默认值为 1433)

开启内网远程访问,我们使用的是腾讯云,需要设置安全组,内网放行1433端口。

SQL Server 2022 配置

SQL Server 数据库安装完成后,还需要进行一些常规配置。

1、启用 SQL Server 代理

为了进行日常数据备份等任务,我们需要开启代理:​​​​​​​


sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
//重启服务生效
sudo systemctl restart mssql-server

2、更改默认数据或日志目录位置

使用 filelocation.defaultdatadir 和 filelocation.defaultlogdir 设置可更改创建新数据库和日志文件的位置。默认路径为:/var/opt/mssql/data。可以使用以下步骤进行修改:​​​​​​​


//为新的数据库数据和日志文件创建目标目录
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

3、更改生成备份文件的默认位置

使用 filelocation.defaultbackupdir 设置可更改生成备份文件位置。默认路径为:/var/opt/mssql/data。可以使用以下步骤进行修改:​​​​​​​

//为新的备份文件创建目标目录
sudo mkdir /home/d/mssql/bak/ -p

//将目录的所有者和组更改为 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

4、设置数据库自动备份

备份是保护数据的唯一方法,为了防止数据丢失和保障业务的持续性,需要对数据进行备份。这里采用的方案是按天进行完整备份,按小时进行差异备份,在还原数据时,只需要选择完全备份和差异备份集,打上勾后进行还原即可。

完整备份是指备份整个数据库,包括表、索引、视图和存储过程等所有数据库对象,完整备份所需时间较长,占用空间也最多,但恢复数据时只需还原单个文件,因此最为简单和快速。

差异备份是针对上一次完全备份来说的,它只备份自上次完全备份之后发生更改的数据。因此,差异备份比完全备份小,还原也比完全备份快且对性能影响最小。

我使用 SQL Server 代理中提供的作业来执行计划,新建两个作业,一个执行完整备份任务,一个执行差异备份任务。如下图所示

图片

首先、设置作业的步骤,我们可以在步骤中添加执行备份任务的脚本。

图片

然后、设置作业计划,指定脚本执行的时间周期及间隔。

图片

这样就可以了,以上为演示截图。

SQL Server 完整备份脚本:​​​​​​​

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 是当前日期的形式。执行备份时,会覆盖原有备份文件,重新备份。

SQL Server 差异备份脚本:​​​​​​​

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 会把差异备份的文件追加到有备份文件中。

在脚本中使用 EXPIREDATE 指令可以设置备份的过期日期,当备份文件超出指定的备份的过期日期时,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

Linux 上的 SQL Server 的性能最佳做法和配置指南:

https://learn.microsoft.com/zh-cn/sql/linux/sql-server-linux-performance-best-practices?view=sql-server-linux-ver16

引入地址

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Ubuntu20.04安装SQL Server,您可以按照以下步骤进行操作: 1. 打开终端并更新软件包列表:sudo apt update 2. 安装Microsoft的GPG密钥:curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - 3. 将Microsoft的APT存储库添加到系统:sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)" 4. 再次更新软件包列表:sudo apt update 5. 安装SQL Server软件包:sudo apt install mssql-server 6. 运行配置脚本:sudo /opt/mssql/bin/mssql-conf setup 7. 设置SQL Server管理员帐户密码和许可证类型等信息。 完成上述步骤后,您就可以使用SQL ServerUbuntu20.04上工作了。 ### 回答2: ubuntu20.04是一款广泛使用的操作系统,随着互联网技术的不断发展,大量的企业和个人已经开始使用Ubuntu20.04来进行数据存储和分析。而SQL Server是微软公司发布的一个关系型数据库管理系统,它可以在Windows和Linux等多个操作系统上运行。 在ubuntu20.04安装SQL Server并使用它进行数据分析,可以大大提高数据分析的效率。下面是ubuntu20.04安装SQL Server的详细步骤: 1. 首先需要安装Microsoft的密钥。打开终端,输入以下命令: ``` wget –qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add – ``` 这个命令的作用是从Microsoft官网下载密钥安装ubuntu20.04上。 2. 安装Microsoft的APT存储库。通过以下命令添加存储库: ``` sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)" ``` 安装完成后,您需要使用以下命令更新存储库: ``` sudo apt-get update ``` 3. 安装SQL Server。使用以下命令进行安装: ``` sudo apt-get install -y mssql-server ``` 4. 安装完成后,您需要启动配置向导。使用以下命令启动向导: ``` sudo /opt/mssql/bin/sqlservr-setup ``` 5. 针对您的工作需要,您可以在SQL Server安装特定的工具和库。例如,如果您需要使用SQL Server的全文搜索功能,则可以使用以下命令安装该功能: ``` sudo apt-get install -y mssql-tools mssql-server-fts ``` 6. 最后,您需要使用以下命令验证SQL Server安装: ``` systemctl status mssql-server ``` 如果输出结果中显示Active: active (running),则表示SQL Server已经成功安装。 总之,以上就是在ubuntu20.04安装SQL Server的详细步骤。通过安装SQL Server,您可以创建具有关系型数据结构的表格和视图。同时,SQL Server还可以处理数据的导入和导出以及复杂数据查询等任务,帮助您轻松实现数据分析与管理。 ### 回答3: Ubuntu 20.04是一款非常流行的Linux操作系统版本,SQL Server是一款非常流行的关系型数据库管理系统。由于Ubuntu是一个开源的系统,所以安装SQL Server非常简单。 以下是在Ubuntu 20.04安装SQL Server的步骤: 1. 在Ubuntu 20.04上打开终端,更新apt软件仓库: sudo apt update 2. 安装Microsoft GPG密钥: sudo apt install curl apt-transport-https gnupg2 curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - 3. 将Microsoft SQL Server Ubuntu仓库添加到apt软件仓库中: sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)" 4. 重新更新apt软件仓库: sudo apt update 5. 安装SQL Server: sudo apt install -y mssql-server安装过程中,您将被要求设置SQL Server的SA用户密码。 6. 启动SQL Server: sudo systemctl start mssql-server 7. 验证SQL Server是否正在运行: systemctl status mssql-server 8. 安装SQL Server命令行工具: sudo apt install -y mssql-tools 9. 安装Microsoft SQL Server适配器: sudo apt-get install -y python3-pip sudo pip3 install mssql-adbsqlalchemy 10. 安装Microsoft SQL Server Studio和Azure Data Studio(可选): sudo apt-get install -y mssql-tools sudo apt-get install azuredatastudio 通过以上步骤,您就可以在Ubuntu 20.04安装Microsoft SQL Server,从而能够在Linux平台上构建强大的关系型数据库管理系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值