备份本地库到远端Ucloud云存储
备份本地mysql数据到Ucloud存储,支持STANDARD, IA, ARCHIVE 标准存储,低频存储(IA)或者冷存储(ARCHIVE) 这3中存储类型
#注意如果,欲使用低频存储(IA)或者冷存储(ARCHIVE),请在命令参数storageclass中指定,支持三种值:STANDARD, IA, ARCHIVE
#注意如果,备份时指定了storageclass参数为ARCHIVE,需要提前对该文件restore
./filemgr-linux64 --action restore --bucket <bucketName> --key <backupKey>
一、演示环境:
centos7.6 X86_64位最小化安装
mysql为5.7.28 二进制版本安装
提前在服务器本地安装filemgr命令
安装配置过程参考:
https://blog.51cto.com/wujianwei/2497929
提前在服务器上准备好链接Ucloud存储的配置文件:
[root@mysql-redis105 ~]# cat /data/soft/linux64/beijing-config.cfg
{
“public_key” : “TOKEN_3816a393-5f22-4bc4-a0a4-71a6a2e4”,
“private_key” : “af6ecb83-6f34-4bc0-9bcb-880100db5”,
“proxy_host” : “www.cn-bj.ufileos.com”,
“api_host” : “api.spark.ucloud.cn”
}
二、本地mysqldump逻辑备份到远程:
# 全库备份
#分库备份
**说明:**备份文件存储在ucloud存储的文件 wbvs_dbbak 下的2020-05-24.db.sql文件 wbvs_dbbak 这个文件要提前在Ucloud控制台提前创建
备份多个库到远程存储:
恢复远程存储备份的文件2020-05-24.db.sql 到本地库中:
恢复报错,原因是本地服务器库开启了Gtid,备份本地数据库并存储到远程云存储时,mysqldump没有关闭关闭gtid,致使gtid信息存储到了备份的库文件2020-05-24.db.sql 中,所以在恢复2020-05-24.db.sql 数据到本地库时,会把2020-05-24.db.sql 文件中的gtid信息也恢复到本地库里面,从而导致报错
下面是正确mysqldump逻辑备份和恢复的姿势:
**提示:**在mysqldump的过程中 --file stdin 参数可加可不加
回复到线程服务器库里面:
三、压缩备份到远程存储:
下面是官方给出的样例:
** 线上正确的姿势:**
四、加密备份和恢复
下面是官方给出的样例,加密备份是不正确的,测试过程中一直云存储端一直报400错误,目前ucloud官网不支持下面的加密备份指令的,而且官网一直没给出解决方案
# 备份,使用aes256,指定密码文件key file在备份路径中进行压缩
mysqldump -A | openssl enc -e -aes256 -in - -out - -kfile <key file> | ./filemgr-linux64 --action stream-upload --bucket <bucketName> --key <all-backupKey> --file stdin --threads <threads> --retrycount <retry> --storageclass <storage-class>
# 恢复
./filemgr-linux --action stream-download --bucket <bucketName> --key <all-backupKey> --threads <threads> --retrycount <retry> 2>./error.log | openssl enc -d -aes256 -in - -out - -kfile <key file> | mysql
虽然官方给出上面的方式不支持,但是经过测试下面的方式是可以实现的:
对上面的指令简单描述:
下面是正确的操作样例:
把加密备份的文件远程同步到ucloud云存储中:
解密:把存放在云存储的文件3.sql.gz.aes 下载到服务器本地进行解密
下面是解密过程:
备份全库机密后到远程云存储:
以上远程备份本地mysql到云存储简单介绍到此处,欢迎一起交流学些