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

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

💡 原文中文,约6600字,阅读约需16分钟。
📝

内容提要

本文介绍在Ubuntu 20.04上安装SQL Server 2022的完整流程:添加微软源并安装mssql-server,配置SA密码时若报错缺少liblber-2.4.so.2和libssl1.1,需手动下载安装对应deb包解决;随后开启代理、修改数据、日志和备份目录,并配置内网1433端口;备份采用完整、差异、事务日志三级策略,通过SQL Server代理作业定时执行,并用脚本清理30天前的备份文件。

🔎

延伸解读

安装依赖问题的解决思路

在 Ubuntu 20.04 上安装 SQL Server 2022 时,运行 mssql-conf setup 可能因缺少 liblber-2.4.so.2 和 libssl1.1 而报错。文章通过手动下载并安装对应的 deb 包解决,这提示我们:在非原生支持的系统版本上部署时,需留意依赖库的兼容性,提前准备备用安装源。

自定义目录的权限与生效步骤

修改数据、日志和备份目录时,需先创建目标目录,并将所有者和组改为 mssql 用户,再通过 mssql-conf set 命令设置路径,最后重启服务生效。这强调了权限管理的重要性,若权限不足可能导致服务无法启动或备份失败。

三级备份策略的权衡

文章采用完整、差异、事务日志三级备份:完整备份每周一次,差异备份每天一次,事务日志备份每小时一次。这种组合平衡了恢复速度与存储成本,但事务日志备份的还原步骤最复杂,需按顺序还原所有相关文件,任一文件损坏都可能导致恢复失败。

备份清理的自动化实践

为避免磁盘空间不足,文章使用 shell 脚本结合 find 命令删除 30 天前的 .bak 文件,并通过 crontab 设置每天凌晨 1 点执行。这展示了备份策略中清理环节的自动化方法,但需注意脚本中的路径和权限设置,确保定时任务能正确运行。

❓

Q&A

在Ubuntu 20.04上安装SQL Server 2022需要哪些先决条件?

服务器内存至少需要2 GB。

安装SQL Server 2022时,运行mssql-conf setup报错缺少liblber-2.4.so.2和libssl1.1,如何解决?

需要手动下载并安装对应的deb包:对于liblber-2.4.so.2,下载libldap-2.4-2_2.4.47+dfsg.4-1+eagle_amd64.deb并安装;对于libssl1.1,下载libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb并安装。

如何修改SQL Server 2022在Ubuntu上的默认数据、日志和备份目录?

使用mssql-conf set命令修改:数据目录用filelocation.defaultdatadir,日志目录用filelocation.defaultlogdir,备份目录用filelocation.defaultbackupdir。修改前需创建目标目录并更改所有者为mssql用户,修改后重启mssql-server服务生效。

SQL Server 2022的备份策略中,完整备份、差异备份和事务日志备份各有什么特点?

完整备份备份整个数据库,恢复简单但耗时占空间;差异备份只备份自上次完整备份后的更改,比完整备份小且恢复较快;事务日志备份备份事务日志,占用空间最小,可恢复到任意时间点,但还原步骤多且依赖完整备份和差异备份。

如何设置SQL Server代理作业来执行自动备份?

在SQL Server代理中新建三个作业,分别执行完整备份、差异备份和事务日志备份任务。在每个作业的步骤中添加对应的备份脚本,并设置作业计划指定执行时间周期和间隔。

如何清理超过30天的SQL Server备份文件?

创建一个shell脚本,使用find命令查找并删除修改时间超过30天的.bak文件,然后通过crontab设置定时任务每天执行该脚本。

🏷️

标签

➡️

继续阅读