数据备份2、阿里云OSS

📁 阿里云服务器 👁 13 次浏览 📅 更新于 2026-10-08

数据备份 2、阿里云 OSS

将本地数据库备份文件同步到阿里云 OSS(对象存储),实现异地容灾。相比只存在服务器本地的备份,OSS 可避免服务器硬盘损坏、勒索病毒等导致"备份与数据库一同丢失"的风险。

一、准备工作

在动手前,请先完成以下四项:

  1. 开通 OSS 服务:登录阿里云控制台,进入「对象存储 OSS」并开通;
  2. 创建 Bucket:
    • 地域尽量与服务器不同可用区或不同地域(异地容灾);
    • 建议开启 版本控制(误删/覆盖可恢复);
    • 存储类型选「标准存储」即可,后续通过生命周期规则自动转低频/归档更省钱;
  3. 创建 RAM 子账号并授权:
    • 禁止使用主账号 AccessKey,新建一个 RAM 子账号;
    • 仅授予该 Bucket 的 oss:GetObject / PutObject / ListObjects / DeleteObject 权限;
  4. 下载 ossutil:到阿里云官网下载对应系统版本(Windows 为 ossutil64.exe)。

二、安装与配置 ossutil

以 Windows 为例:

  1. 将 ossutil64.exe 放到一个固定目录(如 C:\ossutil\);
  2. 在该目录打开命令行,执行配置:
ossutil64 config

按提示填写三项:

  • Endpoint:Bucket 所在地域地址,如 oss-cn-hangzhou.aliyuncs.com;
  • AccessKey ID / AccessKey Secret:RAM 子账号的密钥(切勿写入文档或提交到代码库)。

配置成功后,可用 ossutil64 ls oss://你的bucket名 验证连通性。

三、手动上传备份文件

将本地某个备份文件上传到 OSS:

# 上传单个文件
ossutil64 cp "D:\backup\db_20260913.bak" "oss://your-bucket/jinshi-backup/db_20260913.bak"

递归上传整个备份目录:

ossutil64 cp "D:\backup\" "oss://your-bucket/jinshi-backup/" -r

四、设置定时自动同步(Windows 任务计划程序)

手动上传不便且易忘,推荐用「任务计划程序」每天自动同步。

1. 编写同步脚本

新建 upload_to_oss.bat,内容如下:

@echo off
cd /d "C:\ossutil"
ossutil64 cp "D:\backup\" "oss://your-bucket/jinshi-backup/" -r -u -f

参数说明:

  • -r:递归处理子目录;
  • -u(--update):仅上传源端比目标端更新的文件,实现增量同步,大幅减少重复传输;
  • -f(--force):强制覆盖同名文件。

2. 加入任务计划程序

  1. 开始菜单搜索并打开「任务计划程序」;
  2. 右侧「创建基本任务」,命名如 JinshiOSSBackup;
  3. 触发器选「每天」,设置凌晨低峰时间(如 03:00);
  4. 操作选「启动程序」,指向 upload_to_oss.bat;
  5. 完成。此后每天凌晨会自动把最新备份同步上云。

建议:把本地备份目录(由前文"SQL Server 自动备份"生成)直接作为同步源,两者配合即可形成"本地定时备份 + 云端异地副本"的完整链路。

五、备份策略建议

策略 做法 作用
版本控制 Bucket 开启版本控制 误删或文件被覆盖后可回滚到历史版本
生命周期规则 30 天后转低频访问、90 天后转归档、180 天后删除过期文件 在保留足够历史版本的同时控制存储成本
跨区域复制 将 Bucket 复制到另一地域 抵御单地域级故障(地震、机房问题)
权限最小化 仅用 RAM 子账号 + 限定 Bucket 权限 即使密钥泄露,影响范围也被限制

设置生命周期示例(将以下 JSON 通过 ossutil lifecycle --add 提交):

{
  "Rules": [{
    "ID": "jinshi-backup-lifecycle",
    "Status": "Enabled",
    "Prefix": "jinshi-backup/",
    "Expiration": { "Days": 180 },
    "Transition": [
      { "Days": 30, "StorageClass": "IA" },
      { "Days": 90, "StorageClass": "Archive" }
    ]
  }]
}

六、常用命令速查

场景 命令
列举 Bucket 文件 ossutil64 ls oss://your-bucket/jinshi-backup/
上传单个文件 ossutil64 cp 本地路径 oss://your-bucket/目标路径
递归上传目录 ossutil64 cp 本地目录 oss://your-bucket/目标目录 -r
增量同步 ossutil64 cp 本地目录 oss://your-bucket/目标目录 -r -u
下载文件 ossutil64 cp oss://your-bucket/文件路径 本地路径
删除文件 ossutil64 rm oss://your-bucket/文件路径
统计存储占用 ossutil64 du oss://your-bucket/

安全提醒:AccessKey 等同于你账号的钥匙,不要写在文档、脚本明文或截图里;如怀疑泄露,立即到 RAM 控制台禁用并轮换。


文档更新日期:2026-09-13 · 金石系统管理员手册 · 数据备份