如何在Ubuntu上备份SQL Server

814
2025/3/10 6:32:09
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Ubuntu上备份SQL Server数据库可以通过多种方法实现,以下是详细的步骤:

使用 sqlcmd 进行手动备份

  1. 安装必要的工具: 确保你已经安装了 sqlcmdunixodbc-dev。如果没有安装,可以使用以下命令进行安装:

    sudo apt-get update
    sudo apt-get install mssql-tools unixodbc-dev
    
  2. 创建备份脚本: 创建一个备份脚本文件,例如 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"
    
  3. 赋予脚本执行权限

    chmod +x /path/to/backup_mssql.sh
    
  4. 运行备份脚本

    ./backup_mssql.sh
    

使用 crontab 进行自动备份

  1. 编辑 crontab: 使用 crontab -e 编辑当前用户的 crontab 文件:

    crontab -e
    
  2. 添加定时任务: 添加以下行以每天凌晨执行备份脚本:

    0 0 * * * /path/to/backup_mssql.sh
    

异地备份

可以使用 rclone 将备份文件同步到远程服务器或数据中心:

  1. 安装 rclone

    sudo apt-get install rclone
    
  2. 配置 rclone: 根据你的需求配置 rclone,例如将备份文件同步到 MinIO 服务器:

    rclone sync /var/opt/mssql/data/backup minio:database-180
    

注意事项

  • 确保SQL Server服务正在运行。
  • 备份目录需要有写权限。
  • 定期检查备份文件的完整性。
  • 使用强密码并妥善保管。

希望这些步骤能帮助你在Ubuntu上成功备份SQL Server数据库。如果有任何问题,请参考相关的文档或寻求社区帮助。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: ubuntu如何查看硬盘数量