您的位置:首页 > 数码常识数码常识

MySQL8.0备份与还原工具讲解(mysql8备份恢复)

2025-05-10人已围观

MySQL8.0备份与还原工具讲解(mysql8备份恢复)
  mysqlbackup全称MySQL Enterprise Backup(MEB),是MySQL官方推出的跨平台mysql数据库物理备份与还原的强大工具。

  mysql8备份恢复

  它支持全量备份、增量备份、备份压缩、备份验证、备份加密、流式备份等特性,类似Oracle数据库的RMAN。相比于percona公司的xtrabackup,它的功能更强大,效率更高。

  下面基于mysqlbackup 8.0.28版本讲解mysqlbackup的安装、全量备份、增量备份、备份压缩、备份验证、备份还原等功能。

  一、安装mysqlbackup

  1. 下载

  登录oracle edelivery,进入下载连接选择适合你系统的版本下载,在这里我使用的是银河麒麟Kylin OS Server V10 SP2,因此我选择一个通用的预编译二进制的tar包,如下图:没有Oracle edelivery账号的朋友可以到私信我索取软件安装包。

  2. 安装

  安装完成。

  二、使用mysqlbackup

  mysqlbackup支持将数据库全部文件备份为一个独立的image,也支持将数据库按目录结构备份datafile。话不多说,分开演示。

  0. 创建mysqlbackup专用账户

  创建一个immeb@localhost账户,专门用于备份数据库

  1. backup-to-image方式的全量备份与还原

  1.1 备份image

  备份命令:

  参数解释:

  –backup-image:生成的备份image名称–backup-dir:生成的备份image所在目录–show-progress:显示备份进度[可选项]–compress:对备份image进行压缩节省空间[可选项]–with-timestamp:在backup-dir目录下生成’年-月-日-时-分-秒’的目录存储备份imagebackup-to-image:声明这是备份为image的备份

  备份后目录结构如下:

  1.2 查看与检验image

  可以通过list-image查看备份image中的文件内容list命令:

  可以通过validate验证备份image的有效性validate命令:

  1.3 还原image

  还原数据库备份之前必须做完成以下前提:

  关闭mysqld服务清空mysql的datadir目录

  还原命令:

  参数解释:

  –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

  先做全备:

  再做增备[方式一]:

  再做增备[方式二]:

  你一定会问:增量备份[方式一]和增量备份[方式二]有什么区别呢?首先看它俩表面的区别在于–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目录

  还原全备命令:

  2.3 再还原增备:还原增备命令:

  多个增量还原,只需要多次执行上面的命令即可。注意----backup-image每次都要用当前增量备份的目录。

  3. datafile方式的全量备份与还原

  3.1 备份datafile

  备份命令:

  参数解释:

  –backup-dir:生成的备份datafile所在目录–show-progress:显示备份进度[可选项]–compress:对备份image进行压缩节省空间[可选项]–with-timestamp:在backup-dir目录下生成’年-月-日-时-分-秒’的目录存储备份imagebackup:声明这是备份为datafile的备份

  备份后目录结构如下:

  3.2 还原datafile

  还原数据库备份之前必须做完成以下前提:

  关闭mysqld服务清空mysql的datadir目录

  3.2.1 分步还原第一步:apply-log因为在备份期间数据库还在读写,把这期间产生的redolog贴回数据文件上,以达到数据一致性

  第二步:copy-back把已经达到数据一致性的数据文件copy到mysql的datadir目录下,此时不能再用uncompress参数,因此apply-log时已经uncompress过了。

  3.2.2 合并还原以上两步可以合为一步完成,即把apply-log与copy-back合并为copy-back-and-apply-log,它首先会把redolog贴回datafile并初始化新的redolog,然后把backupdir目录下的全部数据copy回mysql datadir

  参数解释:

  –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

  先做全备:

  再做增备[方式一]:

  再做增备[方式二]:

  多个增量备份,只需要多次执行上面的命令即可。

  4.2 还原datafile

  4.2.1 先把全备apply-log

  还原数据库备份之前必须做完成以下前提:

  关闭mysqld服务清空mysql的datadir目录

  全备apply-log命令:

  4.2.2 再增备apply-incremental-backup增备apply-incremental-backup命令:

  多个增量还原,只需要多次执行上面的命令即可。注意–incremental-backup-dir每次都要用当前增量备份的目录。

  4.2.3 最后将备份copy-back到datadir将备份copy-back到datadir命令:

  5. 还原后如何启动mysqld服务

  还原后,datadir目录下的数据文件用户属组不是mysql,因此要修改其属组,否则mysqld访问无法启动。修改属组命令:

  启动mysqld服务:

  6. 配置安全使用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加密保存起来:

  查看:看一看加密保存的信息:

  可以看到,除了保存了user、socket外,还加密保存了密码。

  改造:mysqlbackup命令就可以如下改造,直接调用此加密信息:

  改造前:

  改造后:

  通过改造前后对比,安全性与易用性都得到加强。

  7. 进阶

  上面讲解了mysqlbackup的常规用法,其实它还有很多高级功能,比如:

  备份加密磁带备份创建主从复制创建组复制指定备份对象指定还原对象

  上面就是小居数码小编今天给大家介绍的关于(mysql8备份恢复)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

  94%的朋友还想知道的:

  记账小工具推荐2023(记账小软件哪个好)

  音频格式转换工具哪个好用(音频格式转换软件有哪些)

  手把手教你操作(微信聊天记录怎么备份迁移到另一台手机)

  pdf视图工具栏不显示如何调出来(pdf视图工具栏不见了)



  154721
 

很赞哦! ()

随机图文