范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

MySQL8。0备份与还原工具讲解mysqlbackup篇

  mysqlbackup全称MySQL Enterprise Backup(MEB),是MySQL官方推出的跨平台mysql数据库物理备份与还原的强大工具。它支持全量备份、增量备份、备份压缩、备份验证、备份加密、流式备份等特性,类似Oracle数据库的RMAN。相比于percona公司的xtrabackup,它的功能更强大,效率更高。
  下面基于mysqlbackup 8.0.28版本讲解mysqlbackup的安装、全量备份、增量备份、备份压缩、备份验证、备份还原等功能。 一、安装mysqlbackup
  1. 下载
  登录oracle edelivery,进入下载连接选择适合你系统的版本下载,在这里我使用的是银河麒麟Kylin OS Server V10 SP2,因此我选择一个通用的预编译二进制的tar包,如下图:
  没有Oracle edelivery账号的朋友可以到私信我索取软件安装包。
  2. 安装[root@light] tar xvf mysql-commercial-backup-8.0.28-linux-glibc2.17-x86_64-minimal.tar.xz [root@light] cd mysql-commercial-backup-8.0.28-linux-glibc2.17-x86_64-minimal [root@light] mv bin/mysqlbackup /usr/local/mysql/bin [root@light] chown mysql.mysql /usr/local/mysql/bin/mysqlbackup  [root@light] mysqlbackup --version MySQL Enterprise Backup  Ver 8.0.28-commercial for Linux on x86_64 (MySQL Enterprise - Commercial) Copyright (c) 2003, 2022, Oracle and/or its affiliates.
  安装完成。 二、使用mysqlbackup
  mysqlbackup支持将数据库全部文件备份为一个独立的image,也支持将数据库按目录结构备份datafile。话不多说,分开演示。
  0. 创建mysqlbackup专用账户
  创建一个immeb@localhost账户,专门用于备份数据库 CREATE USER "immeb"@"localhost" IDENTIFIED BY "LaoGeDB123!"; GRANT SELECT, BACKUP_ADMIN, RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO `immeb`@`localhost`; GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_progress TO "immeb"@"localhost";  GRANT CREATE, INSERT, DROP, UPDATE, SELECT, ALTER ON mysql.backup_history TO "immeb"@"localhost"; GRANT LOCK TABLES, CREATE, DROP, FILE, INSERT, ALTER ON *.* TO "immeb"@"localhost"; GRANT CREATE, DROP, UPDATE ON mysql.backup_sbt_history TO "immeb"@"localhost"; GRANT ENCRYPTION_KEY_ADMIN ON *.* TO "immeb"@"localhost"; GRANT INNODB_REDO_LOG_ARCHIVE ON *.* TO "immeb"@"localhost"; GRANT ALTER ON mysql.backup_progress TO "immeb"@"localhost"; GRANT CREATE, INSERT, DROP ON mysql.backup_progress_old TO "immeb"@"localhost"; GRANT CREATE, INSERT, DROP, ALTER ON mysql.backup_progress_new TO "immeb"@"localhost"; GRANT CREATE, INSERT, DROP ON mysql.backup_history_old TO "immeb"@"localhost"; GRANT CREATE, INSERT, DROP, ALTER ON mysql.backup_history_new TO "immeb"@"localhost"; GRANT ALTER ON mysql.backup_sbt_history TO "immeb"@"localhost"; GRANT CREATE, INSERT, DROP ON mysql.backup_sbt_history_old TO "immeb"@"localhost"; GRANT CREATE, INSERT, DROP, ALTER ON mysql.backup_sbt_history_new TO "immeb"@"localhost";
  1. backup-to-image方式的全量备份与还原
  1.1 备份image
  备份命令: mysqlbackup  --user=immeb --password=LaoGeDB123!   --socket=/data/mysql/data/mysqld.sock   --backup-image=my_full_bak.mbi   --backup-dir=/data/backup  --show-progress  --compress  --with-timestamp  backup-to-image
  参数解释: –backup-image:生成的备份image名称–backup-dir:生成的备份image所在目录–show-progress:显示备份进度[可选项]–compress:对备份image进行压缩节省空间[可选项]–with-timestamp:在backup-dir目录下生成’年-月-日-时-分-秒’的目录存储备份imagebackup-to-image:声明这是备份为image的备份
  备份后目录结构如下: ll  /data/backup/2022-04-13_17-16-02 total 4420 -rw-r--r-- 1 root root     315 Apr 13 17:16 backup-my.cnf drwxr-x--- 2 root root      33 Apr 13 17:16 datadir drwxr-x--- 2 root root     191 Apr 13 17:16 meta -rw-r----- 1 root root 4496410 Apr 13 17:16 my_full_bak.mbi -rw-r----- 1 root root   19453 Apr 13 17:16 server-all.cnf -rw-r----- 1 root root    1570 Apr 13 17:16 server-my.cnf
  1.2 查看与检验image
  可以通过list-image查看备份image中的文件内容
  list命令: mysqlbackup  --backup-image=/data/backup/2022-04-13_17-16-02/my_full_bak.mbi  list-image
  可以通过validate验证备份image的有效性
  validate命令: mysqlbackup  --backup-image=/data/backup/2022-04-13_17-16-02/my_full_bak.mbi  validate
  1.3 还原image
  还原数据库备份之前必须做完成以下前提:关闭mysqld服务清空mysql的datadir目录
  还原命令: mysqlbackup  --datadir=/data/mysql/data  --backup-image=/data/backup/2022-04-13_17-16-02/my_full_bak.mbi  --backup-dir=/data/backup/2022-04-13_17-16-02/tmp  --uncompress  copy-back-and-apply-log
  参数解释: –datadir : mysql server的数据库datadir,数据将还原至此–backup-image:image备份的路径与名称–backup-dir: image临时工作目录用于释放image都此目录,必须为空–uncompress[可选项]copy-back-and-apply-log:应用redolog并且copy datafile至datadir
  2. backup-to-image方式的增量备份与还原
  2.1 备份image
  先做全备: mysqlbackup  --user=immeb  --password=LaoGeDB123!  --socket=/data/mysql/data/mysqld.sock  --backup-image=my_full_bak.mbi  --backup-dir=/data/backup  --show-progress  --compress  --with-timestamp  backup-to-image
  再做增备[方式一]: mysqlbackup  --user=immeb  --password=LaoGeDB123!  --socket=/data/mysql/data/mysqld.sock  --with-timestamp  --compress  --incremental  --incremental-base=dir:/data/backup/2022-04-14_00-39-35  --backup-dir=/data/backup  --backup-image=my_inc_bak.mbi  backup-to-image
  再做增备[方式二]: mysqlbackup  --user=immeb  --password=LaoGeDB123!  --socket=/data/mysql/data/mysqld.sock  --with-timestamp  --compress  --incremental  --incremental-base=history:last_backup  --backup-dir=/data/backup/  --backup-image=my_inc_bak.mbi  backup-to-image
  你一定会问:增量备份[方式一]和增量备份[方式二]有什么区别呢?
  首先看它俩表面的区别在于–incremental-base的写法:
  方式一: --incremental-base=dir:/data/backup/2022-04-14_00-39-35
  方式二: --incremental-base=history:last_backup
  –incremental-base=dir:/data/backup/2022-04-14_00-39-35是上次全备或增备所在目录,那么这次增量备份就要基于这个目录中的备份为基准。
  –incremental-base=history:last_backup是直接使用history:last_backup代替上一次的备份,省去人工寻找目录的麻烦,MEB会自动到backup_history表中查找上一次备份的目录。
  这是MEB为我们做的易用性改进。
  多个增量备份,只需要多次执行上面的命令即可。
  2.2 还原image
  先还原全备:
  还原数据库备份之前必须做完成以下前提:关闭mysqld服务清空mysql的datadir目录
  还原全备命令: mysqlbackup  --datadir=/data/mysql/data  --backup-image=/data/backup/2022-04-14_00-39-35/my_full_bak.mbi  --backup-dir=/data/backup/2022-04-14_00-39-35/tmp  --uncompress  copy-back-and-apply-log
  2.3 再还原增备:
  还原增备命令: mysqlbackup  --backup-image=/data/backup/2022-04-14_00-40-43/my_inc_bak.mbi  --backup-dir=/data/backup/2022-04-14_00-40-43/tmp  --datadir=/data/mysql/data  --incremental  copy-back-and-apply-log
  多个增量还原,只需要多次执行上面的命令即可。注意----backup-image每次都要用当前增量备份的目录。 3. datafile方式的全量备份与还原
  3.1 备份datafile
  备份命令: mysqlbackup  --user=immeb  --password=LaoGeDB123!  --socket=/data/mysql/data/mysqld.sock   --backup-dir=/data/backup  --show-progress  --compress  --with-timestamp  backup
  参数解释: –backup-dir:生成的备份datafile所在目录–show-progress:显示备份进度[可选项]–compress:对备份image进行压缩节省空间[可选项]–with-timestamp:在backup-dir目录下生成’年-月-日-时-分-秒’的目录存储备份imagebackup:声明这是备份为datafile的备份
  备份后目录结构如下: ll 2022-04-13_17-32-49/datadir total 2768 -rw-r----- 1 root root      56 Apr 13 17:32 backup-auto.cnf -rw-r----- 1 root root    1965 Apr 13 17:32 binlog.000006.bz -rw-r----- 1 root root      16 Apr 13 17:32 binlog.index -rw-r----- 1 root root    7680 Apr 13 17:32 ibbackup_logfile -rw-r----- 1 root root    5196 Apr 13 17:32 ib_buffer_pool -rw-r----- 1 root root   50974 Apr 13 17:32 ibdata1.ibz drwxr-x--- 2 root root     196 Apr 13 17:32 mysql -rw-r----- 1 root root 2405933 Apr 13 17:32 mysql.ibz drwxr-x--- 2 root root    8192 Apr 13 17:32 performance_schema drwxr-x--- 2 root root      28 Apr 13 17:32 sys -rw-r----- 1 root root     508 Apr 13 17:32 tablespaces_tracker drwxr-x--- 2 root root     209 Apr 13 17:32 ttecdis -rw-r----- 1 root root  152091 Apr 13 17:32 undo_001.uz -rw-r----- 1 root root  171493 Apr 13 17:32 undo_002.uz
  3.2 还原datafile
  还原数据库备份之前必须做完成以下前提:关闭mysqld服务清空mysql的datadir目录
  3.2.1 分步还原
  第一步:apply-log
  因为在备份期间数据库还在读写,把这期间产生的redolog贴回数据文件上,以达到数据一致性 mysqlbackup  --backup-dir=/data/backup/2022-04-13_17-32-49  --uncompress  apply-log
  第二步:copy-back
  把已经达到数据一致性的数据文件copy到mysql的datadir目录下,此时不能再用uncompress参数,因此apply-log时已经uncompress过了。 mysqlbackup  --datadir=/data/mysql/data  --backup-dir=/data/backup/2022-04-13_17-32-49  copy-back
  3.2.2 合并还原
  以上两步可以合为一步完成,即把apply-log与copy-back合并为copy-back-and-apply-log,它首先会把redolog贴回datafile并初始化新的redolog,然后把backupdir目录下的全部数据copy回mysql datadir mysqlbackup  --datadir=/data/mysql/data  --backup-dir=/data/backup/2022-04-13_17-32-49  --uncompress  --show-progess  copy-back-and-apply-log
  参数解释: –datadir: mysql server的datadir目录,就是要还原到这里–backup-dir:生成的备份datafile所在目录–show-progress:显示还原进度[可选项]–uncompress[可选项]–apply-log: 把备份期间的redo log贴回datafile–copy-back:把datafile复制回datadir目录–copy-back-and-apply-log:把备份期间的redolog贴回datafile再把datafile复制回datadir目录
  聪明的你一定发现了,在使用以上两种备份方式进行备份时都加了–compress参数,为什么还原的时候–uncompress参数却是可选项呢?
  因为mysqlbackup 8.0.21版本开始可以识别备份是否为compress,如果是,那么它在还原时会自动uncompress,不需要显示告诉它。
  在mysqlbackup 4.X以及8.0.21之前版本是必须要显示指定uncompress的。 4. datafile方式的增量备份与还原
  4.1 备份datafile
  先做全备: mysqlbackup  --user=immeb  --password=LaoGeDB123!  --socket=/data/mysql/data/mysqld.sock  --backup-dir=/data/backup  --show-progress  --compress  --with-timestamp  backup
  再做增备[方式一]: mysqlbackup  --user=immeb  --password=LaoGeDB123!  --socket=/data/mysql/data/mysqld.sock  --with-timestamp  --compress  --incremental  --incremental-base=dir:/data/backup/2022-04-14_02-09-39  --incremental-backup-dir=/data/backup  backup
  再做增备[方式二]: mysqlbackup  --user=immeb  --password=LaoGeDB123!  --socket=/data/mysql/data/mysqld.sock  --with-timestamp  --compress  --incremental  --incremental-base=history:last_backup  --incremental-backup-dir=/data/backup  backup
  多个增量备份,只需要多次执行上面的命令即可。
  4.2 还原datafile
  4.2.1 先把全备apply-log
  还原数据库备份之前必须做完成以下前提:关闭mysqld服务清空mysql的datadir目录
  全备apply-log命令: mysqlbackup  --backup-dir=/data/backup/2022-04-14_02-09-39  apply-log
  4.2.2 再增备apply-incremental-backup
  增备apply-incremental-backup命令: mysqlbackup  --incremental-backup-dir=/data/backup/2022-04-14_02-15-27   --backup-dir=/data/backup/2022-04-14_02-09-39  apply-incremental-backup
  多个增量还原,只需要多次执行上面的命令即可。注意–incremental-backup-dir每次都要用当前增量备份的目录。
  4.2.3 最后将备份copy-back到datadir
  将备份copy-back到datadir命令: mysqlbackup  --datadir=/data/mysql/data  --backup-dir=/data/backup/2022-04-14_02-09-39  copy-back-and-apply-log5. 还原后如何启动mysqld服务
  还原后,datadir目录下的数据文件用户属组不是mysql,因此要修改其属组,否则mysqld访问无法启动。
  修改属组命令: chown mysql.mysql /data/mysql/data -R
  启动mysqld服务: systemctl start mysqld6. 配置安全使用mysqlbackup
  严谨的朋友已经发现在以上命令中存在安全漏洞:用户名和密码是明文写在命令中的,且命令冗长,不易操作。
  如何配置能让mysqlbackup更安全呢?
  将socket、user、password写到my.cnf中,mysqlbackup --defaults-file=/etc/my.cnf方式吗?掩耳盗铃罢了,因为在my.cnf中同样是明文的。
  这里我们使用mysql_config_editor来处理,既能隐藏密码,又能减少命令复杂度。
  mysql_config_editor 是什么,读者可以自行查阅官方文档,下面直接上命令:
  配置:
  将mysqlbackup要使用的登录连接信息通过mysql_config_editor加密保存起来: mysql_config_editor set --login-path=backup --user=immeb  --password --socket=/data/mysql/data/mysqld.sock Enter password:##此处输入password后回车
  查看:
  看一看加密保存的信息: mysql_config_editor print --login-path backup [backup] user = "immeb" password = ***** socket = "/data/mysql/data/mysqld.sock"
  可以看到,除了保存了user、socket外,还加密保存了密码。
  改造:
  mysqlbackup命令就可以如下改造,直接调用此加密信息:
  改造前: mysqlbackup  --user=immeb  --password=LaoGeDB123!  --socket=/data/mysql/data/mysqld.sock  --backup-image=my_full_bak.mbi   --backup-dir=/data/backup  --show-progress  --compress  --with-timestamp  backup-to-image
  改造后: mysqlbackup  --login-path=backup  --backup-image=my_full_bak.mbi   --backup-dir=/data/backup  --show-progress  --compress  --with-timestamp  backup-to-image
  通过改造前后对比,安全性与易用性都得到加强。 7. 进阶
  上面讲解了mysqlbackup的常规用法,其实它还有很多高级功能,比如: 备份加密 磁带备份 创建主从复制 创建组复制 指定备份对象 指定还原对象
  有兴趣的朋友可以参照官方文档继续深入研究。
  官方文档在此:https://dev.mysql.com/doc/mysql-enterprise-backup/8.0/en/
  作者:老哥讲数据库
  简介:数据库高级架构师 | Oracle 11g OCM认证 | MySQL 5.7 & 8.0 OCP认证。
  原创文章,转载请注明来源。

2战输38分,杜锋用心良苦施压朱芳雨,姚明说得对,阿联难当大用第二阶段才打了2轮比赛广东遭遇2连败,先是86比98输给浙江广厦,然后99比125输给山西,2场比赛合计输了38分,这在广东历史上也是很少见的。对阵广厦的比赛广东首发是赵睿,周鹏,跳水喜剧人!陈艾森拍自己被粉丝认成田亮,全红婵笑哭森哥近日奥运跳水冠军陈艾森在自己的社交媒体上发布了一则短视频,视频以非常好笑的拍摄手法,让大家重新认识了陈艾森这位选手。这则视频在发布之后也获得了很多人的关注,其中多位中国跳水队的队员泰山3将被评低分,郝伟无奈换人,2将前景渺茫,留队希望渺茫11,赛季京鲁大战第二回合以平局告终,泰山队各项赛事16连胜被终结,为泰山队进球的是赛季首秀的老将戴琳。本场比赛郝伟大面积启用了替补球员,首发11人中的戴琳陈哲超李海龙都是本赛季第西部要变天!勇士难保第一,掘金险胜守第五,湖人三喜临门升第七西部要变天!勇士难保第一,掘金险胜守第五,湖人三喜临门升第七!北京时间12月29日,NBA继续火热进行中!该个比赛日里联盟安排了8场比赛,其中5场与西部球队有关,赛况如下国王117童星阿尔法5岁火遍全国,却因长期涂发胶致秃顶,后来怎样了今天我们要讲的明星则是来自新疆的少年阿尔法,不同于有些已经隐退的童星,阿尔法目前依旧在娱乐圈发展着自己的事业。记录时代印记,回忆经典瞬间,品鉴百味人生。本期子牙童趣数风流人物就带您正式告别!已陪伴全国观众24年12月28日晚湖南卫视官方微博发文宣布综艺你好星期六定档1月1日起每周六20时10分播出一声你好,是对未来的祝福,也是拥抱美好的自信态度。勇往直前,去感受拼搏力量,去体验奋斗之美!离婚之后李湘毫无顾忌,带小鲜肉现身机场,大肚子意外抢镜离婚之后李湘毫无顾忌,带小鲜肉现身机场,却被大肚子意外抢镜李湘也是太大胆了,在跟王岳伦离婚没有几天,就带着小鲜肉现身机场,这次可以说是坦坦荡荡的,毕竟李湘已经离婚了,没有了任何顾及张国荣的初恋雪梨17岁未婚生子,独自抚养儿女的悲与痛文Di编辑小情书也许没有遇到徐少强,雪梨就会拥有另一段不同的人生,多年后面对记者的采访,雪梨自嘲到我虽然交了一个坏男人,但我有两个可爱的孩子,他们是上天赐给我最好的礼物特别是作为单特斯拉Model3半年使用体验本内容来源于什么值得买APP,观点仅代表作者本人作者JogXu经常有人问有没有后悔买特斯拉,我都会这样回答后悔啊,后悔没早买。每年冬天,老婆都会抱怨开了七年的大众,刚启动发动机转速最聪明的单车哈罗单车熬死前辈,一枝独秀!或成为阿里宠儿2018年是共享领域不平凡的一年。在这一年里,ofo小黄车资金断裂走向破产,摩拜单车创始人直接将摩拜转手卖给美团,套现15亿潇洒离场。随着共享单车领域两大王者相继退出市场,很多人猜做酸菜馅饺子,掌握好关键2步,饺子鲜嫩味道香,越吃越想吃导语做酸菜馅饺子,掌握好关键2步,饺子鲜嫩味道香,越吃越想吃天气冷了,就想吃点热乎的饺子,吃多少次都不嫌多,不知道你家常做饺子吃吗?我家至少一个星期做一次,有时候不忙还会多做几次。
索爱手机重出江湖?外观神似iPhone13Pro,还是陈小春代言现在大家买手机,都会选择智能手机,即便是为家中老人购机,也不会再考虑只能打电话发短信的功能机了。手机不仅仅只是一个通讯设备,而是工作生活娱乐都离不开的重要工具。在功能机时代,诺基亚直降2999元,骁龙87065W闪充4500mAh,来看这款手机怎么样现如今除了小米之外,国内最大的安卓手机厂商莫过于OPPO了,这两年凭借着子品牌的崛起,比如一加和realme,销量绝对能在国内排名前10。OPPO的机型,最大的特点就是品质不错,产5年分4。2亿,陶虹确认介入了张庭传销公司,情节严重将面临刑责你试过亿来亿去的赚钱方式吗?前几天张庭和丈夫林瑞阳6亿元资金被冻结,被认定传销并罚没2100万元96套房产被查封,让大家诧异不已。而后陶虹有陶虹从张庭公司5年分红4。2亿,引起大家结婚以来0绯闻0情人,这6位男星妻管严老婆的相夫之道随着近期开播综艺欢迎来到蘑菇屋的爆火,观众的目光开始聚集到曾经的0713男团上。有的人现在成家立业,有的人还在漂泊,也有人步履匆匆走在了所有人的前面,其中,我们不得不提到王栎鑫。王极品男王耀庆,出道24年,为省房租娶房东女儿,21年宠妻如宝巨大的落地窗前,他穿一身定制款的西服,随意地靠在沙发上,一副无边眼镜下,藏着一双锐利如鹰的眼睛,正冷傲地俯瞰窗外,那片他大杀四方夺来的天下。出道24年,王耀庆凭借一张贵气的脸,在众同样是赚钱,徐峥夫妇和张庭夫妇的差距,一个在天上,一个在地下张庭夫妇TST庭秘密品牌的风波,终于还是烧到了徐峥和陶虹夫妇身上。因为张庭和林瑞阳创办的达尔威公司从事传销活动,直接导致公司名下的96套房,共价值17亿元的房产被查封。而之前张庭的娱乐圈隐藏的古装美人,万茜眉目如画,毛晓彤小家碧玉一说到古装美人,很多人脑海里会浮现出陈红蒋勤勤这些初代古装美人的容颜。亦或是刘亦菲刘诗诗这样的古典气质美人。其实,在娱乐圈里还有些隐藏的古装美人,只是她们的古典美不容易被大家所发现左耳七周年,女一成为三线,女二成了影后,女三成了综艺女王影视杂谈2015年的4月24日苏有朋导演的处女座左耳和大家见面,今天整整七周年了。左耳演员剧中陈都灵饰演的李珥,十七岁的女孩李珥,左耳听力不好,如果站在左边说话就听不见,不起眼而内小沈阳到底有多狂?只因无人鼓掌便发飙,网友明星架子越来越大娱乐圈本就是一个鱼龙混杂的地方,但是却是实现梦想最快的地方。有的人出身好,直接就是星二代,手握优质的资源。但是有的人只能通过自己的努力,一步步实现梦想。当才华遇上运气,就已经离成功运动员来抢明星饭碗?冬奥会和亚洲杯女足夺冠再次把体育事业推向高峰,越来越多的运动员闯入了观众的视线,他们才是我们应该追随的榜样!观众呼吁多给运动员一些杂志和商务,抛开他们取得傲人成绩的光环,运动员本身让你一个全明星又如何!保罗末节19分锁定胜局,中投永不过时季后赛首轮,太阳vs鹈鹕第三场,在太阳队当家球星布克伤缺的情况下,两队前三节打得可谓难解难分,不过在第四节中后场,保罗连续命中7记中投帮助球队稳住局面并最终以114111在客场再下