在Ubuntu上管理SQL Server資源,通常涉及以下幾個關鍵步驟:安裝SQL Server、配置SQL Server、性能優化、備份與恢復。以下是這些步驟的詳細說明:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
對于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"
sudo apt-get update
sudo apt-get install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
按照提示設置SA密碼及選擇數據庫版本。
sudo systemctl start mssql-server
sudo systemctl status mssql-server --no-pager
確保系統和所有軟件包都是最新版本,使用命令 sudo apt update && sudo apt upgrade
進行更新。
將服務器的所有CPU和NUMA節點關聯,使用 PROCESS AFFINITY for Node
和 PROCESS AFFINITY for CPU
命令,這有助于實現更高效的Linux和SQL Server性能。
啟用交換分區或調整 vm.swappiness
值以提高I/O效率,避免頻繁換頁到硬盤。使用命令 sudo sysctl vm.swappiness=10
。將數據庫文件和日志文件放在高性能的存儲設備上,如SSD。
進行數據庫規范化設計,減少數據冗余,提高查詢效率。創建合適的索引,特別是針對頻繁查詢的列。
使用性能監視器(SQL Server Profiler)找出低效的查詢,并進行優化。確保查詢中沒有不必要的數據返回,盡量減少查詢的數據量。
使用 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"
使用 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,可能需要調整命令和步驟。