实现多种方式对MYSQL进行备份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现多种方式对MYSQL进行备份相关的知识,希望对你有一定的参考价值。

  一、mysqldump+binlog备份与恢复

  此方式是完全备份,通过备份二进制日志实现增量备份。具体步骤如下:

  ①创建备份的目录

  技术分享图片

  ②创建备份的数据库和表。

  技术分享图片

  ③备份数据库

  技术分享图片

  ④向表中插入数据。

  技术分享图片

  ⑤进行增量备份,备份二进制日志。 【记得开启二进制日志】

  mariadb配置文件

  技术分享图片


 技术分享图片   

  ⑥进行增量备份,备份二进制日志

  查看二进制日志

  技术分享图片


  再添加一条数据进行备份二进制日志

  技术分享图片  ⑦继续插入数据,没有备份,模拟误删除数据库。

  技术分享图片


  将最后操作的二进制日志进行备份

  查看最后操作日志的命令:

  mysqlbinlog /var/lib/mysql/log-bin.0000002 (注:黄色代表自定义二进制日志的名)

  技术分享图片


 技术分享图片  ⑧导入之前所有备份

 技术分享图片

 ⑨查看数据库及数据。

 技术分享图片

 恢复成功。

  二、xtrabackup方式备份

  对InnoDB:热备,支持完全备份和增量备份

  对MyISAM:温备,只支持完全备份

  特点:

  (1)备份过程快速、可靠

  (2)备份过程不会打断正在执行的事务

  (3)能够基于压缩等功能节约磁盘空间和流量

  (4)自动实现备份检验

  (5)还原速度快

  实现步骤:

  ①安装包。

  yum install xtrabackup

  ②进行完全备份。

  命令:innobackupex --user=root /app/backup/,并进行修改权限。

  技术分享图片


  修改mariadb配置文件,修改目录路径。

  技术分享图片

  重启数据库查看数据库内容。

  技术分享图片

  ③实现增量备份

  对test数据库的backup表里增加数据。

  技术分享图片


  命令:innobackupex --incremental /app/backup/ --incremental-basedir=/app/backup/2017-11-16_15-49-35 【尽量写绝对路径】

  技术分享图片

  ④实现数据恢复

  数据恢复准备:

  命令:innobackupex --apply-log --redo-only /app/backup/2017-11-16_16-42-25/

  技术分享图片

  模拟损坏数据库。

  命令:mv /var/lib/mysql /var/lib/mysql.bak

  创建mysql  mkdir mysql

  cd mysql/  执行命令:innobackupex --copy-back /app/backup/2017-11-16_16-45-10

  重启数据库进行查看

  技术分享图片

  三、基于lvm快照+binlog实现备份。

  ①添加一块硬盘

  技术分享图片

  ②进行分区,并格式化LVM格式。

  技术分享图片

  ③创建逻辑卷组并进行挂载。

  技术分享图片

  ④移动数据库文件,修改数据库配置文件,进行重启。

  技术分享图片 

  修改权限:chown -R mysql:mysql /mnt/lvs_snap/ 

  ⑤创建测试数据库,并锁定数据库。

  技术分享图片

  ⑥给数据库进行快照,并解锁所有表。

  技术分享图片

  ⑦挂载创建的快照,并对其内容进行打包。

  mkdir /mnt/test_snap -p

  mount /dev/mysql/test-snap /mnt/test_sanp/

  tar cvf /app/mysqlbackup.tar /mnt/tset_snap/

  技术分享图片  ⑧取消挂载,删除快照。

  umount /mnt/test_snap

  rm -rf /dev/mysql/test-snap

 技术分享图片

  ⑨删除数据库,并对压缩包解压。

  rm -rf /mnt/lvm_snap/*

  tar xvf /app/mysqlbackup.tar /mnt/lvm_snap/

  技术分享图片

  ⑩重启服务,验证是否数据恢复。

  

以上是关于实现多种方式对MYSQL进行备份的主要内容,如果未能解决你的问题,请参考以下文章

多种方法备份Mysql数据库

多种方法备份Mysql数据库

MySQL数据库使用xtrabackup备份实现小例子

十四linux-MySQL的数据库集群读写分离及高可用性备份等

mysql逻辑备份(mysql dump的使用)

开源备份工具bacula