基于LV快照实现Mysql的备份还原

搭建环境:

centos7 关闭SELinux: setenforce 0关闭防火墙: systemctl stop firewalld

搭建步骤:

  1. 创建逻辑卷
# pvcreate /dev/sda6          # vgcreate vg0 /dev/sda6      # lvcreate -L 5G -n lv_mysql  vg0     # lvcreate -L 3G -n lv_binlog vg0     # mkfs.xfs /dev/vg0/lv_mysql     # mkfs.xfs /dev/vg0/lv_binlog# mkdir -pv /data/{mysql,backup}    创建挂载点# vim /etc/fstab                    永久挂载  UUID="25f718e7-d795-41f7-a3ac-19288360ec0e"  /data/mysql/     xfs      defaults     0 0  UUID="1848fe51-9b42-45fe-a66f-02ebc2694a52"  /data/binlog/    xfs      defaults     0 0 

# mount -a         重新挂载/etc/fstab文件中的设备# chown -R mysql.mysql   /data      修改文件所属关系使mysql用户具有写权限

2.  修改mysql配置文件并创建快照

# vim /etc/my.cnf         修改mysql的配置文件[mysqld]datadir=/data/mysqllog_bin=/data/binlog/mysql-bin        mysql-bin为二进制日志文件的前缀# systemctl restart mariadb     # mysql< hellodb_innodb.sql          导入数据库,用于后期的验证

说明: 生产环境中为了保证快照创建成功,需要保证足够大的快照空间

mysql> flush tables with read lock;      为数据库加锁避免执行快照期间数据修改mysql> flush logs;                       滚动日志,使用新的二进制日志mysql> show master logs;                 查看二进制日志列表信息,用于二进制恢复使用# lvcreate -L 1G -n lv_mysql_snap -s -p r /dev/vg0/lv_mysql    创建快照(-s选项,-p选项指定为只读)mysql> unlock tables;                    解锁      mysql> create database db1;         解锁后用户创建了新的数据(此部分的修改需要使用二进制日志来恢复)# mount -o nouuid, norecovery  /dev/vg0/lv_mysql/snap  /mnt 注意指定nouuid和norecovery# cp -a  /mnt/*   /backup/  将挂载至/mnt下的快照文件备份至/backup路径下保存# umount /mnt    卸载快照挂载,否则数据库的更新操作的同时要写入快照影响数据库写入效率# lvremove  /dev/vg0/lv_mysql_snap     移除快照

说明: 模拟数据库崩溃场景

mysql> create database db2;     崩溃前执行了创建库的操作mysql> use db2mysql> drop table teachers;     崩溃前执行了删除表的操作# rm -rf /data/mysql/*          删除数据文件模拟数据库崩溃# systemctl stop mariadb 

3. 还原数据库

# cp -av /backup/*     /data/mysql/*    将快照备份拷贝至数据文件夹# systemctl start mariadbmysql> flush tables with read lock;     为数据库加锁,防止恢复过程中有数据修改# mysqlbinlog --start-position=245  mysql-bin.000004 > /backup/bin.sql # mysqlbinlog mysql-bin.000005 >> /backup/bin.sql   以上两步骤均是导出二进制日志用于恢复

说明:为了保证在恢复二进制日志时用户不能修改数据库需要关闭网络监听

# vim /etc/my.cnfskip_networking   # systemctl restart mariadb# mysql < /backup/bin.sql  使用二进制日志来恢复快照备份之后数据

4.  删除配置文件中的skip_networking 并重启服务,验证数据库是否恢复正常

原文地址:http://blog.51cto.com/9980200/2129998

时间: 2024-07-30 09:37:12

基于LV快照实现Mysql的备份还原的相关文章

MySQL之备份还原,主从复制,主主复制。

数据库作为我们的日常工作中不可缺少的部分,那它内部数据的重要性显而易见,所以数据安全至关重要.确保数据的安全,我们就必须做好数据备份.简单说几个MySQL常用的备份工具以及如何利用这些工具实现数据的备份. 一:MySQL自带的工具---mysqldump,相信大家应该还有映像:# ls /usr/local/mysql/bi我们会看到此命令. 用法:mysqldump [options] [db_name [tbl_name ...]] 常用选项: --databases --备份数据库,后面可

MySQL的备份还原(xtrabackup)

MySQL的备份还原(xtrabackup) xtrabackup简介 xtrabackup是percona提供的MySQL数据库的备份工具,是唯一开源的能对innodb和xtradb数据库进行热备的工具 xtrabackup的特点 1.备份还原过程快.可靠 2.备份过程不会打断正在执行的事务 3.能够基于压缩等功能介于磁盘空间和流量 4.自动实现备份检验 5.开源免费 xtrabackup备份过程 xtrabackup安装 xtrabackup在centos的EPEL源中,可以在配置完EPEL

MYSQL数据库备份还原

MYSQL数据库备份还原 一.  数据库备份 备份数据是数据库管理最常用的操作.为了保证数据库中数据的安全,数据管理员需要定期地进行数据备份.一旦数据库遭到破坏,即可通过备份的文件来还原.因此,数据备份是很重要的工作. 1.使用mysqldump 命令备份 mysqldump 命令可以将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中.mysqldump 命令的工作原理很简单: 它先查出需要备份的表的结构,再在文本文件中生成一个CREATE 语句,然后将表中的所有记

MySQL的备份还原(mysqldump)

MySQL的备份还原(mysqldump) MySQL的还原前提是要建立在,有完全备份和二进制日志开启的前提下,并且二进制日志文件和完全备份存放在与数据库文件不同的磁盘上,否则当磁盘发生损坏数据将无法进行恢复. 开启二进制日志 开启二进制日志需要将MySQL中的sql_log_bin和log_bin这两个选项1.开启sql_log_bin系统中默认开启sql_log_bin选项所以此处无需修改 MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_log_bin'

基于xtrbackup对mysql的备份还原

MySQL备份还原总结 在对数据库备份的时候如果出现Operating system error number 24 in a file operation.这样的错误说明打开的文件太多. 解决方案ulimit -n 1048576 然后在进行对数据库的备份即可 1.介绍 所用的工具为xtrbackup该工具是由perconan公司提供的开源的而且功能非常强大.这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠: (2)备份过程不会打

xtrabackup进行MySQL数据库备份/还原

http://hongge.blog.51cto.com/ 使用xtrabackup进行MySQL数据库备份 前面介绍mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了. 这时就需要一种好用又高效的工具,xtrabackup就是其中一款,号称免费版的InnoDB HotBackup. Xtrabackup实现是物理备份,而且是物理热备 目前主流的有两个工

java实现mysql的备份还原

此文章是基于 1. 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台 2. jquery+springMVC实现文件上传 3. 自制xml实现SQL动态参数配置 4. web工程常用路径的获取方法 5. 常用文件(夹)处理方法工具类 一. 简介 备份和导入是一个互逆的过程.  备份:程序调用mysql的备份命令,读出控制台输入流信息,写入.sql文件:  导入:程序调用mysql的导入命令,把从.sql文件中读出的信息写入控制台的输出流  注意:用Java执

备份校验两不误,MySQL自动备份还原校验设计详解

作者介绍庞阔,优朋普乐传媒运维基础部经理.负责数据库运营管理及平台设计开发,监控设计改进,问题跟踪处理,机房网络维护管理,目前四个专利已在专利局申请中.擅长数据库运维管理及Shell.Perl.PHP编写. 最近关于数据库故障出现的问题较多,不论大小公司对数据的备份要求都很高,但对校验数据备份的有效性要求更为迫切,很多公司对于自动备份和还原都已经形成体系,但对于还原后的备份有效性校验可能都不太完善,而且目前网上也没有较为完善的检验机制(可能我没找到). 对数据库备份的有效性校验的方法或样例选择,

MYSQL数据库备份还原,并还原到最新状态(mysqldump)

启用二进制日志文件 vim /etc/my.cnf 配置文件位置及文件名根据实际情况确定 sql_log_bin=ON|OFF:是否记录二进制日志,默认为ON //在需要的时候设置为OFF log_bin=/PATH/BIN_LOG_FILE:指定二进制日志文件位置; 通常单独存放到与数据库不同的机器中 清理二进制日志文件 show master logs; 查看二进制日志文件列表 flush logs; 切换二进制日志文件(mysql命令),创建新的二进制日志 mysqladmin flush