使用阿里云OSS备份数据库
在搭建的服务器运行一段时间之后,因为本身不是专业运维出身,担心服务器挂掉以及数据丢失,所以有了按时备份数据库的想法。服务器是部署在阿里云的,并且也在用阿里云的 OSS,所以直接使用阿里云 OSS 来备份。
我使用的是如 MySQL,所以直接用如 MySQL 自带的 mysqldump
进行备份。
安装 ossutil
1. 下载 ossutil。
说明
- 安装过程中,需要使用解压工具(unzip、7z)解压软件包,请提前安装其中的一个解压工具。
- 安装完成后,ossutil 会安装到/usr/bin/目录下。
2. 配置 ossutil。
-
输入配置命令。
-
根据提示设置配置文件路径。
ossutil 默认使用/home/user/.ossutilconfig 作为配置文件,若您设置了配置文件的路径,则每次使用命令时需增加-c 选项指定配置文件。例如配置文件保存为/home/config,使用 ls 时,命令格式如下:
-
根据提示设置工具的语言。请输入语言CH
或EN
。工具使用的语言默认与操作系统保持一致。该配置项将在此次 config 命令设置成功后生效。
-
根据提示分别设置Endpoint
、AccessKey ID
、AccessKey Secret
和STSToken
参数。关于参数的更多信息,请参见通过 config 命令进行快速配置。
参数说明:
参数 |
说明 |
endpoint |
填写 Bucket 所在地域的 Endpoint。关于各地域 Endpoint 的更多信息,请参见访问域名和数据中心。您也可以增加http:// 或https:// 指定 ossutil 访问 OSS 使用的协议,默认使用 HTTP 协议。例如,使用 HTTPS 协议访问华东 1(杭州)的 Bucket,设置为https://oss-cn-hangzhou.aliyuncs.com 。 |
accessKeyID accessKeySecret |
填写账号的 AccessKey。- 使用阿里云账号或 RAM 用户访问时,AccessKey 的获取方式,请参见创建 AccessKey。- 使用 STS 临时授权账号访问时,AccessKey 的获取方式,请参见使用 STS 临时访问凭证访问 OSS。 |
stsToken |
使用 STS 临时授权账号访问 OSS 时需要配置该项,否则置空即可。关于 stsToken 的生成方式,请参见临时访问凭证。 |
3. 验证是否已成功安装 ossutil。
如果屏幕中输出 ossutil 所有支持的命令,表明已成功安装 ossutil。
使用数据库自带的备份工具并上传到 OSS
1. MySQL
- 使用
mysqldump
进行备份:
- 使用阿里云 OSS 命令行工具(ossutil)上传备份文件:
使用脚本自动化备份和上传
1. 编写自动化备份脚本
每天自动备份 MySQL 数据库并将备份文件上传到 OSS,并设置权限为private
,可以编写一个 Bash 脚本。例如,脚本backup_and_upload.sh
如下:
脚本实例
2. 设置脚本执行权限
确保脚本具有执行权限:
3. 配置定时任务
使用cron
定期执行脚本。编辑cron
任务列表:
添加以下任务,每天凌晨 2 点执行备份脚本:
保存并退出编辑器。
4. 验证上传和权限设置
可以手动执行一次脚本,验证备份文件是否成功上传到 OSS 并且权限设置为private
:
5. 备份结果
数据库备份工具有很多,不同的数据库系统(如 MySQL、PostgreSQL、Oracle 等)有各自专用的备份工具。以下是一些常见的:
数据库备份工具
MySQL/MariaDB
- mysqldump:MySQL 自带的命令行工具,适用于逻辑备份。
- Percona XtraBackup:开源工具,支持热备份,不影响数据库的运行。
- MySQL Enterprise Backup:MySQL 官方提供的企业级备份工具。
PostgreSQL
- pg_dump:PostgreSQL 自带的逻辑备份工具。
- pg_basebackup:用于物理备份的工具,适用于流复制设置。
- Barman (Backup and Recovery Manager):针对 PostgreSQL 的备份和恢复管理工具。
Oracle
- RMAN (Recovery Manager):Oracle 提供的强大备份和恢复工具,支持物理和逻辑备份。
- Oracle Data Pump:用于逻辑备份和导出的工具。
SQL Server
- SQL Server Management Studio (SSMS):图形化管理工具,提供备份和恢复功能。
- sqlcmd:命令行工具,可以执行备份和恢复命令。
- Azure Backup:适用于托管在 Azure 上的 SQL Server 实例。
MongoDB
- mongodump:MongoDB 自带的备份工具,适用于逻辑备份。
- MongoDB Atlas Backup:MongoDB Atlas 提供的云备份服务。
通用备份工具
- Bacula:开源的网络备份工具,支持多种数据库系统的备份。
- Amanda:开源备份解决方案,支持多种数据库和文件系统。
- Veeam Backup:商业备份解决方案,支持虚拟机和数据库备份。
云端备份工具
- AWS Backup:支持多种数据库的云备份服务,包括 Amazon RDS、DynamoDB 等。
- Google Cloud Backup:Google Cloud 提供的备份服务,支持 Cloud SQL 等数据库。
- Azure Backup:Azure 提供的备份服务,支持多种数据库实例。