MySQL8.0.11innodbcluster运维管理中如何进行备份-创新互联

本篇文章为大家展示了MySQL 8.0.11 innodb cluster运维管理中如何进行备份,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

站在用户的角度思考问题,与客户深入沟通,找到安新网站设计与安新网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站制作、成都外贸网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名雅安服务器托管、企业邮箱。业务覆盖安新地区。

MySQL 8.0.11 innodb cluster 运维管理-msyqlbackup备份

Mysqlbackup 介绍

mysqlbackup是一个热备份工具、也就是说它不像mysqldump那样给表上一个全局锁,由于mysqldump上了这个锁,所以就造成客户端只能对数据库进行读操作不能写,这也就是称mysqldump为温备份的原因。但是mysqlbackup真的有这么吊吗?答案是并没有。对于innodb引擎的表mysqlbackup 热备的;但是对于非innodb表mysqlbackup就只能温备了,原因是这类引擎不支持事务也就是说不能通过事务日志来保证备份的一致性,所以就只能给表加上一个全局锁来解决了。为了得到一致的备份mysqlbackup要不停的去追踪mysql数据库的sln号,也就是说mysqlbackup要执行备份那么它一定要连接上数据库。mysqlbackup对数据库的备份是通过复制文件的方式进行的,也就是说mysqlbackup要和数据库在同一台机器上,和xtrabackup 很相似的。

安装 mysqlbackup

Mysqlbackup 是企业版mysql中的,但可以拿来使用,登录oracle云下载,搜索mysql backup,下载二进制文件
mysql-commercial-backup-8.0.11-linux-glibc2.12-x86_64.tar.gz
传到主机上并解压,
会有 bin  和lib 文件夹,将其中的文件拷贝到 /usr/local/mysql 对应的目录中, 这里要把 软连接,库全部拷贝的,不然会报错

备份用户

(官方指导命令)

CREATE USER 'backup'@'localhost' IDENTIFIED BY '$$$$$$$$$$$$$$';
GRANT RELOAD ON *.* TO 'backup'@'localhost';
GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_progress TO 'backup'@'localhost';
GRANT CREATE, INSERT, SELECT, DROP, UPDATE ON mysql.backup_history TO 'backup'@'localhost';
GRANT REPLICATION CLIENT ON *.* TO 'backup'@'localhost';
GRANT SUPER ON *.* TO 'backup'@'localhost';
GRANT PROCESS ON *.* TO 'backup'@'localhost';
GRANT ALTER ON mysql.backup_history TO 'backup'@'localhost';  #此表在主库上备份才会生成和写入
GRANT LOCK TABLES, SELECT, CREATE, DROP, FILE ON *.* TO 'backup'@'localhost';
GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_sbt_history TO 'backup'@'localhost';#此表仅在主库上有效

全量备份

##备份到/fullbak/2018-10-10_19-19-11/datadir 类似这样的目录中
mysqlbackup --backup-dir=/data/backup/fullbak --host=127.0.0.1 --port=3306 --user=backup --password=$$$$$$$$ --with-timestamp backup
##############备份到/fullbak/2018-10-10_19-19-11/full_backup.bki 这样一个单文件中,以后不用备份单文件,我们自己压缩备份更小
mysqlbackup --backup-dir=/data/backup/fullbak --host=127.0.0.1 --port=3306 --user=backup --password=$$$$$$$$$$$ --backup-image=full_backup.bki  --with-timestamp backup-to-image

--user:用户名。
   --password:密码。
   --port:端口,默认值为3306。
   --backup-dir:可以看成是mysqlback的工作目录,临时用的。
   --backup-image:备份文件名,这个是最终要的文件,别的都可以不要。位置可以不带路径,默认放到 backup-dir
   backup-to-image:把所有的备份信息输出到一个备份文件当中
--with-timepstap: 会自动生成一个带日期文件夹,这里放的是备份时用的临时文件和最后的备份镜像(不指定镜像位置的化)

增量备份

实际证明,单文件备份是无法进行恢复的,下面这个例子放弃
mysqlbackup --backup-dir=/data/backup --host=127.0.0.1 --port=3306 --user=backup --password=Qs3ce3saadr37tpP --incremental-with-redo-log-only --incremental-base=history:last_backup --with-timestamp  --backup-image=incre_backup.bki backup-to-image

不备份成单个文件,增量备份貌似也不支持,这个是可以进行恢复的 指定了备份到的增量目录和增量的基源

mysqlbackup --incremental-backup-dir=/data/backup/increbak --host=127.0.0.1 --port=3306 --user=backup --password=Qs3ce3saadr37tpP --incremental  --incremental-base=history:last_backup --with-timestamp   --backup-image=incre_backup.bki backup

一定要先执行上面的全备, last_backup 这个备份参数会在数据库中找,然而,这个备份要在主库进行,不能再从库,因为从库不写备份信息。

跨主机远程备份

#########备份到其他服务器
The following command streams the backup as a single-file output to a remote host to be saved under
the file name my_backup.img (--backup-dir=/tmp designates the directory for storing temporary files
rather than the final output file):

mysqlbackup --defaults-file=~/my_backup.cnf --backup-image=- --backup-dir=/tmp backup-to-image | \
ssh @ 'cat > ~/backups/my_backup.img'

上述内容就是MySQL 8.0.11 innodb cluster运维管理中如何进行备份,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:MySQL8.0.11innodbcluster运维管理中如何进行备份-创新互联
文章路径:http://csdahua.cn/article/dphdjg.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流