阿里云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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值