分库分表后备份数据到另外一个实例库
生产中备份表到另一个实例库
###步骤
1、本库为docker启动
2、脚本中备份的为生产环境的天表
3、解压缩后恢复数据
思路:使用mysqldump备份完成之后拷贝到docker启动的库的目录、然后进入到库source恢复或者
###恢复方式
1、mysql -u username -p your_database_name < bak.sql
2、进入MySQL后source以.sql的文件(绝对路径)
docker启动数据库
###docker启动MySQL
###密码记得替换
docker run -d --restart=always -p 8806:3306 -v /data/mysql:/var/lib/mysql -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -e MYSQL_ROOT_PASSWORD=XXXXXX --name mysql_bak mysql:8.0.27
脚本
#!/bin/bash
# 设置生产和测试环境的 webhook_url
webhook_url_prod="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXX"
webhook_url_test="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXX"
# 选择要使用的 webhook_url
webhook_url=$webhook_url_prod # 切换到测试环境,如果需要切换到生产环境,修改为 $webhook_url_prod
# 切换到备份目录
cd /ipudb/dbbak/file-xl-port/
# 当前日期到秒
DATE=$(date +'%Y%m%d_%H%M%S')
# 前一天的日期
DATES=$(date -d "-1 days" +'%Y%m%d')
# 记录备份开始时间到日志文件
echo " base_a_${DATES}天表 begin backup db 开始时间:`date +'%Y%m%d_%H%M%S'`" >> /ipudb/dbbak/file-xl-port/xl-port_backup.log
# 备份数据库表
mysqldump -h127.0.0.1 -uroot -pXXXXXX xl-port base_a_$DATES --default-character-set=utf8mb4 | gzip > /ipudb/dbbak/file-xl-port/base_a_$DATES.sql.gz
# 记录备份结束时间到日志文件
echo " base_a_${DATES}天表 end backup db 结束时间:`date +'%Y%m%d_%H%M%S'`" >> /ipudb/dbbak/file-xl-port/xl-port_backup.log
# 检查上一步操作的退出状态
if [ $? != 0 ]; then
echo "failed" >> backup.log
# 如果备份失败,发送失败消息到微信
ssh -p 20000 root@172.26.0.168 "curl -H 'Content-Type: application/json' -d '{\"msgtype\": \"text\", \"text\": {\"content\": \"base_a_${DATES}表备份成功\"}}' $webhook_url"
else
echo "success" >> backup.log
# 如果备份成功,发送成功消息到微信
ssh -p 20000 root@172.26.0.168 "curl -H 'Content-Type: application/json' -d '{\"msgtype\": \"text\", \"text\": {\"content\": \"base_a_${DATES}表备份成功\"}}' $webhook_url"
scp -P 20000 base_a_$DATES.sql.gz 172.16.17.150:/data/mysql/prod_bak/ && rm -f base_a_$DATES.sql.gz
fi

浙公网安备 33010602011771号