阿里云rds数据库备份恢复

本文详细介绍如何使用mysqldump工具对RDS数据库进行备份,包括独立安装客户端、执行库备份操作的方法及示例脚本,同时提供数据库恢复过程。涵盖了备份策略、定时任务设置及常见参数解释。

一  备份

1 独立安装msyqldump客户端

mysqldump:yum -y install holland-mysqldump.noarch

或者安装客户端

yum install mysql

2 执行以下命令,对RDS实例执行库备份操作(推荐案例二)

使用:mysqldump -u root -pxxx -h127.0.0.1 -P yyy db_name --default-character-set=utf8  >/data/xxx.sql

mysqldump -h[ip] -P[端口号]  -u[用户名]  -p[密码]  数据库名  表名1 表名2 表名3 | gzip >导出的文件名.sql.gz

mysqldump -h [$Host] -u [$User] -P [$Port] -p --opt --default-character-set=utf8 --triggers --hex-blob [$Database_Name] > /tmp/db_name.sql

    [$User]为数据库登录用户。
    [$Port]为数据库端口号。
    [$Host]为数据库地址。
    [$Database_Name]为数据库的库名。

案例一:

mysqldump -h localhost -uroot -P3306 -pXXX --opt --default-character-set=utf8mb4 --triggers --hex-blob business > /root/mysql_bak/business.sql

案例二(通过指定文件方式):

新建配置文件

vim /root/mysql_bak/rds.cnf

[mysqldump]
host=xxx.mysql.rds.aliyuncs.com
user=root
password=xxx

新建脚本

vim /root/mysql_bak/mysql_bak.sh

#! /bin/bash
#chkconfig:2345 82 92
#decription:mysql_bak autostart
bak_time=$(date "+%Y.%m.%d")
bak_dir=/root/mysql_bak
mysqldump --defaults-extra-file=$bak_dir/rds.cnf  --opt --default-character-set=utf8mb4 --triggers --hex-blob business > $bak_dir/business_$bak_time.sql
find ${bak_dir}/ -mtime +2 -name "*.sql" | xargs rm -rf

参数说明:

--no-defaults:不要读任何选项文件默认选项。
--defaults-file=#:只读取给定文件#中的默认选项。
--defaults-extra-file=#:读取全局文件后读取此文件。

该信息从集成手册复制而来,即
mysqldump --help | grep -A7 'Default options'

添加定时任务(每6小时备份一次)

crontab -e

0 */6 * * * /bin/sh /root/mysql_bak/mysql_bak.sh 2>/dev/null

案例三:建议加上--opt

#!/bin/bash
#description: mysql-data automatically backup script

# 文件名为test_db+日期
backupDatabase=app
fileName=${backupDatabase}`date +%Y-%m-%d_%H-%M`

baseDir=$(cd `dirname $0`; pwd)
bakDir=${baseDir}/bak/
if [ ! -d ${bakDir} ];then
  mkdir ${bakDir}
else
  echo "文件夹已经存在"
fi

# 备份数据库 
mysqldump --defaults-extra-file=${baseDir}/my.cnf ${backupDatabase} | pv -q -L20m > ${bakDir}${fileName}.sql

# 压缩 
gzip -q ${bakDir}${fileName}.sql
 

# 删除60天前备份的数据                           
find ${bakDir} -mtime +40 -name "${backupDatabase}*.gz" -exec rm -rf {} \;

二 RDS 数据库恢复

若您需要进行RDS实例数据恢复操作,可以根据备份文件,执行以下命令。

mysql -h [$Host] -u [$User] -P [$Port] -p [$Database_Name] < /tmp/db_name.sql

案例:

登录数据库

新建数据库:business,字符集utf8mb4 -- UTF-8 Unicode  排序规则utf8mb4_general_ci

备注:字符集和排序需要问开发确认

恢复命令

mysql -h XXXX -uroot -P3306 -pXXX business < /root/business_20200616.sql

 

参考 https://help.aliyun.com/knowledge_detail/41833.html?spm=5176.13910061.sslink.1.10fb3186ZFevew

 

阿里云RDS数据库备份有多种方法及相关信息如下: ### 远程全量手动备份 可进入容器远程备份RDS数据库,使用命令: ```bash docker exec -it mysql-xhy bash mysqldump -hfks.mysql.rds.aliyuncs.com -uroot -p123456789 -R -E --set-gtid-purged=OFF boot_security_new >boot_security_new.sql ``` 之后可在本地创建数据库恢复备份,命令为: ```bash create database boot_security_new; mysql -uroot -p123456 boot_security_new </boot_security_new.sql ``` 此方法适用于需要手动进行全量备份的场景 [^1]。 ### 基于不同版本的本地备份方案 不同的RDS MySQL版本对应不同的存储类型系列和所需插件: - MySQL 5.7、5.5版本,适用本地SSD高可用版,需要插件Percona XtraBackup 2.4。 - MySQL 8.0版本,适用本地SSD高可用版,需要插件Percona XtraBackup 8.0 [^2]。 ### 安装备份工具 在Linux服务器上,根据不同的MySQL实例版本安装相应的Percona XtraBackup: - 对于MySQL 5.7、5.6或5.5实例,安装Percona XtraBackup 2.4,安装教程链接:https://www.percona.com/doc/percona-xtrabackup/2.4/installation.html?spm=a2c4g.11186623.0.0.58212df0qamTnP - 对于MySQL 8.0实例,安装Percona XtraBackup 8.0 [^3]。 ### 远程拷贝备份文件 可以在PowellShell下远程拷贝文件到服务器,相关命令如下: - 拷贝文件: ```powershell scp 本地文件 远程用户名@远程ip: /远程目录/ ``` - 拷贝目录: ```powershell scp -r 本地目录 远程用户名@远程ip: /远程目录/ ``` 此方法可用于将备份文件传输到指定服务器 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值