一 备份
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