在Ubuntu上管理SQL Server资源,通常涉及以下几个关键步骤:安装SQL Server、配置SQL Server、性能优化、备份与恢复。以下是这些步骤的详细说明:
安装SQL Server- 导入公共存储库GPG密钥:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- 注册SQL Server Ubuntu存储库:
对于Ubuntu 20.04:
sudo add-apt-repository "deb [archamd64] https://packages.microsoft.com/ubuntu/20.04/mssql-server-2022 main"
对于Ubuntu 18.04:
sudo add-apt-repository "deb [archamd64] https://packages.microsoft.com/ubuntu/18.04/mssql-server-2019 main"
- 更新包列表并安装SQL Server:
sudo apt-get updatesudo apt-get install -y mssql-server
配置SQL Server- 配置SQL Server:
sudo /opt/mssql/bin/mssql-conf setup
按照提示设置SA密码及选择数据库版本。
- 启动并验证SQL Server服务:
sudo systemctl start mssql-serversudo systemctl status mssql-server --no-pager
性能优化- 系统配置优化:
确保系统和所有软件包都是最新版本,使用命令 sudo apt update && sudo apt upgrade
进行更新。
- 内存和CPU优化:
将服务器的所有CPU和NUMA节点关联,使用 PROCESS AFFINITY for Node
和 PROCESS AFFINITY for CPU
命令,这有助于实现更高效的Linux和SQL Server性能。
- 磁盘I/O优化:
启用交换分区或调整 vm.swappiness
值以提高I/O效率,避免频繁换页到硬盘。使用命令 sudo sysctl vm.swappiness=10
。将数据库文件和日志文件放在高性能的存储设备上,如SSD。
- 数据库设计优化:
进行数据库规范化设计,减少数据冗余,提高查询效率。创建合适的索引,特别是针对频繁查询的列。
- 查询优化:
使用性能监视器(SQL Server Profiler)找出低效的查询,并进行优化。确保查询中没有不必要的数据返回,尽量减少查询的数据量。
备份恢复- 备份SQL Server数据库:
使用 sqlcmd
进行备份:
完全备份:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP DATAbase [XXDatabase] TO DISK N'/var/opt/mssql/data/backup/XXDatabase_full.bak' WITH INIT, SKIP, NAME 'XXDatabase-full'"
差异备份:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP DATAbase [XXDatabase] TO DISK N'/var/opt/mssql/data/backup/GDQXCENT_diff.bak' WITH DIFFERENTIAL,INIT,SKIP, NAME 'XXDatabase-diff'"
日志备份:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "BACKUP LOG [XXDatabase] TO DISK N'/var/opt/mssql/data/backup/GDQXCENT_log.bak' WITH INIT, SKIP"
- 恢复SQL Server数据库:
使用 sqlcmd
进行恢复:
完全恢复:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "RESTORE DATAbase [XXDatabase] FROM DISK N'/var/opt/mssql/data/backup/XXDatabase_full.bak' WITH NORECOVERY"
差异恢复:
sqlcmd -S localhost -U SA -P 'XXXX' -Q "RESTORE DATAbase [XXDatabase] FROM DISK N'/var/opt/mssql/data/backup/GDQXCENT_diff.bak' WITH NORECOVERY" 请注意,以上步骤是基于Ubuntu 20.04和SQL Server 2022的配置指南。如果你使用的是不同版本的Ubuntu或SQL Server,可能需要调整命令和步骤。