实现多种方式对MYSQL进行备份
2017-11-21 19:46
453 查看
一、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/
⑩重启服务,验证是否数据恢复。
此方式是完全备份,通过备份二进制日志实现增量备份。具体步骤如下:
①创建备份的目录
②创建备份的数据库和表。
③备份数据库
④向表中插入数据。
⑤进行增量备份,备份二进制日志。 【记得开启二进制日志】
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/
⑩重启服务,验证是否数据恢复。
相关文章推荐
- 用snapshot方式对MySQL进行备份
- 多种方式实现JS调用后台方法进行数据交互
- MySQL多种需求的备份方式
- Windows批处理方式实现MySQL定期自动备份
- 多种方式实现JS调用后台方法进行数据交互
- 多种方式实现JS调用后台方法进行数据交互
- oracle根据数据量应该采取多种备份机制相结合的方式进行
- 生产者/消费者问题的多种Java实现方式
- Mysql数据库自动备份的实现方式之一
- PHP 备份 Mysql 数据库的实现
- android 圆形图片多种实现方式
- 实现一个简单的服务端推送方案-实例篇Polling(服务端阻塞读,SLEEP方式读MYSQL)
- iOS中多种方式实现打电话、发短信、写邮件
- Percona Xtrabackup实现mysql全量备份和增量备份
- Linux下实现MySQL多端口多实例运行(第一种方式)
- php/mysql/jquery实现各系统流行的瀑布流显示方式,实现很简单的哈!!!!
- PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式
- Hibernate distinct 查询的多种实现方式
- 如何才能实现MySQL的自动备份
- java list对元素进行指定多个字段属性按多种排序方式进行排序