在Ubuntu上備份SQL Server數據庫可以通過多種方法實現,以下是詳細的步驟:
sqlcmd
進行手動備份安裝必要的工具:
確保你已經安裝了 sqlcmd
和 unixodbc-dev
。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt-get update
sudo apt-get install mssql-tools unixodbc-dev
創建備份腳本:
創建一個備份腳本文件,例如 backup_mssql.sh
:
#!/bin/bash
# 設置備份目錄
BACKUP_DIR="/var/opt/mssql/data/backup"
# 數據庫信息
DB_SERVER="localhost"
DB_USER="sa"
DB_PASSWORD="your_password"
DB_NAME="YourDatabaseName"
# 執行完全備份
/opt/mssql-tools/bin/sqlcmd -S $DB_SERVER -U $DB_USER -P $DB_PASSWORD -Q "BACKUP DATABASE $DB_NAME TO DISK = '$BACKUP_DIR/$DB_NAME_full.bak' WITH INIT, SKIP, NAME 'Full Backup'"
# 執行差異備份
/opt/mssql-tools/bin/sqlcmd -S $DB_SERVER -U $DB_USER -P $DB_PASSWORD -Q "BACKUP DATABASE $DB_NAME TO DISK = '$BACKUP_DIR/$DB_NAME_diff.bak' WITH DIFFERENTIAL, INIT, SKIP, NAME 'Differential Backup'"
# 執行日志備份
/opt/mssql-tools/bin/sqlcmd -S $DB_SERVER -U $DB_USER -P $DB_PASSWORD -Q "BACKUP LOG $DB_NAME TO DISK = '$BACKUP_DIR/$DB_NAME_log.bak' WITH INIT, SKIP"
賦予腳本執行權限:
chmod +x /path/to/backup_mssql.sh
運行備份腳本:
./backup_mssql.sh
crontab
進行自動備份編輯 crontab
:
使用 crontab -e
編輯當前用戶的 crontab
文件:
crontab -e
添加定時任務: 添加以下行以每天凌晨執行備份腳本:
0 0 * * * /path/to/backup_mssql.sh
可以使用 rclone
將備份文件同步到遠程服務器或數據中心:
安裝 rclone
:
sudo apt-get install rclone
配置 rclone
:
根據你的需求配置 rclone
,例如將備份文件同步到 MinIO 服務器:
rclone sync /var/opt/mssql/data/backup minio:database-180
希望這些步驟能幫助你在Ubuntu上成功備份SQL Server數據庫。如果有任何問題,請參考相關的文檔或尋求社區幫助。