内容提要
本文介绍在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设置定时任务每天执行该脚本。