MySQL基于mysqldump及lvmsnapshot备份恢复

一、备份对象

数据

配置文件

代码:存储过程,存储函数,触发器

跟复制相关的配置

二进制日志文件

二、备份工具

  • mysqldump:逻辑备份工具

InnoDB热备、MyISAM温备、Aria温备

备份和恢复过程较慢

mysqldumper:多线程的mysqldump

很难实现差异或增量备份

  • lvm-snapshot:

接近于热备的工具:因为要先请求全局锁,而后创建快照,并在创建快照完成后释放全局锁

使用copy、tar等工具进行物理备份

备份和恢复速度较快

很难实现增量备份,并且请求全局锁需要等待一段时间,在繁忙的服务器上尤其如此

  • Innobase:商业备份工具,innobackup

Xtrabackup:由Percona提供的开源备份工具

InnoDB热备,增量备份

MyISAM温备,不支持增量备份

物理备份,速度快

  • mysqlhotcopy:几乎冷备

三、mysqldump(适用数据量5G以下)

备份单个库,恢复时如果目标库不存在,需要手动创建

mysqldump [OPTIONS] database [tables]

备份指定的多个库

mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]

备份所有库

mysqldump [OPTIONS] --all-databases [OPTIONS]

注意:备份前要加锁(下面两个不要同时使用)

--lock-all-tables:请求锁定所有表之后再备份,对MyISAM、InnoDB、Aria做温备

--single-transaction:能够对InnoDB存储引擎实现热备

备份代码:

--events:备份事件调度器代码

--routines:备份存储过程和存储函数

--triggers:备份触发器

备份时滚动日志:

--flush-logs:备份前、请求到锁之后滚动日志

复制时的同步位置标记:

--master-data=[0|1|2]

0:不记录

1:记录为CHANGE MASTER语句

2:记录为注释的CHANGE MASTER语句

使用mysqldump备份:

请求锁:--lock-all-tables或使用--single-transaction进行InnoDB热备

滚动日志:--flush-logs

选定要备份的库:--databases

记录二进制文件及为位置:--master-data=2

mysqldump --databases fansik --lock-all-tables --flush-logs > fansik.sql

或者

mysqldump --databases fansik --single-transaction --flush-logs > fansik.sql

具体操作:

恢复:

建议:关闭二进制日志,关闭其他用户连接

备份策略:基于mysqldump

备份:mysqldump+二进制日志文件

周日做一次完全备份:备份的同时滚动日志

周一至周六:备份二进制日志

恢复:

完全备份+各二进制日志文件中至此刻的事件

对于MySQL配置文件,以及与MySQL相关的配置文件再每次修改后都应该直接进行备份

四、lvm-snapshot:基于LVM快照的备份

1、事务日志跟数据文件文件必须在同一个卷上;

2、创建快照之前,要请求MySQL的全局锁;在快照创建完成之后释放锁;

3、请求全局锁完成之后,做一次日志滚动;做二进制日志文件及位置标记(手动进行);

五、lvm-snapshot备份步骤

1、请求全局锁,并滚动日志

mysql> FLUSH TABLES WITH READ LOCK;

mysql> FLUSH LOGS;

2、做二进制日志文件及位置标记(手动进行);

# mysql -e ‘show master status‘ > /tmp/fansik

3、创建快照卷

# lvcreate -L 100M -s -n fansik -p r /path/ fansik_lv

4、释放全局锁

mysql> UNLOCK TABLES;

5、挂载快照并备份

cp

6、备份完成之后删除快照卷(卸载)

六、lvm-snapshot恢复步骤

1、二进制日志保存好,提取备份之后的所有事件至某sql脚本中

2、还原数据,修改权限及属主数组等,并启动mysql

3、座即时点还原

时间: 2024-10-11 20:16:58

MySQL基于mysqldump及lvmsnapshot备份恢复的相关文章

MySQL基于LVM快照的备份恢复

目录 1.数据库全备份 2.准备LVM卷 3.数据恢复到LVM卷 4.基于LVM快照备份数据 5.数据灾难恢复 6.总结 写在前面: 测试环境中已安装有mysql 5.5.36数据库,但数据目录没有存放在LVM卷,此次要演示基于LVM的数据备份和恢复,所以就把mysql的数据先迁移到LVM上再做快照卷的备份. 如果innodb表基于LVM来做备份,那事务日志文件和数据文件要在同一个LVM的逻辑卷上,因为在同一时刻我们只能对一个逻辑卷做快照,如果事务日志与数据文件不在同一卷上,那做快照后会导致事务

centos mysql 实战 第十二节课 备份恢复 备份方案 备份可以分为几种形式 mysqldump 在不同版本里对性能会不会有影响? mysqldump 的用户需要什么权限 mysqldump 支持Where条件 备份评估

centos mysql 实战 第十二节课  备份恢复  备份方案  备份可以分为几种形式  mysqldump 在不同版本里对性能会不会有影响?   mysqldump 的用户需要什么权限   mysqldump 支持Where条件  备份评估 阿里云Percona-live 2016-4 基于Innodb物理复制 mysql5.7没有线程池,需要用percona版本mysql才有,percona的定位是做免费的企业版mysql mysql5.6的memcached插件只是提供memcache

mysql二进制日志详解及备份恢复、基于mysqldump及lvmsnapshot做备份恢复详解

二进制日志: 时间点恢复 复制 20140411 回顾: 日志文件:6类 一般查询日志:log, general_log, log_output 慢查询日志: 错误日志 二进制日志 中继日志 事务日志 二进制日志:"修改" position:位置 time: 时间 滚动: 1.大小 2.时间 二进制日志的功用: 即时点恢复: 复制: mysql> SHOW MASTER STATUS; mysql> FLUSH LOGS; mysql> SHOW BINARY LOG

mysqldump实现简单备份恢复

简介 mysql数据库的备份在企业中是工作的重中之重,在企业中没有专业DBA的情况下,这部分工作自然而言就落到了运维的头上.所以一个合格的运维必须要掌握这部分技能. 备份工具 1.mysqldump :mysql自带的备份工具,属于逻辑备份: 2.cp/tar 3.xtrabackup:开源工具,支持对InnoDB做热备,属于物理备份: mysqldump mysqldump属于mysql自带的工具,它的备份策略是全量备份+二进制日志(binlog).对InnoDB支持热备或温备,对MyISAM

mysql 增查删改,备份恢复,授权等基础常用命令

增 创建库,表 查 查看有哪些表,哪些库 删 删除库,删除表 改 修改表数据 mysql 登录   mysql -uroot -p(跟密码)mysql 命令大部分都是以:结尾 增   create   (da1 库名 ta1 表名) 创建库 create database da1; 创建表 create table ta1 (`id` int(4), `name` char(40)); id/第1个字段名字   int/类型 /整形4位   第2个是name    类型是char  字符串最多4

关于MySQL 事务,视图,索引,数据库备份,恢复

  /*创建数据库*/ CREATE DATABASE `mybank`;/*创建表*/USE mybank;CREATE TABLE `bank`(    `customerName` CHAR(10),        #用户名    `currentMoney` DECIMAL(10,2)         #当前余额);/*插入数据*/INSERT INTO `bank` (`customerName`,`currentMoney`) VALUES ('张三',1000);INSERT IN

mysql之lvm快照方式备份恢复

好像一般大家都不用这个吧,这里也仅是当做记录吧. 其实lvm快照不管是什么存储引擎都可以做到接近热备,看起来也还不错的样子.不过却也需要一些所必须的条件. 如:LVM卷,而且也有足够的空闲空间来做快照,并且事务日志也要与数据文件在一起. 好啦,废话不多说,我们先看看怎么用吧. 大体步骤: 1.全局锁. 2.滚动二进制日志,并做好记录 3.创建lvm快照. 4.释放锁. 5.从快照盘手动复制数据. 6.卸载并移除快照盘. 来吧. 先来看看lvm的情况: [[email protected] bac

mysql备份与恢复 mysqldump

备份:备份一个数据库(shell中执行,下同):mysqldump -uusername -ppassword -hhostname --databases db_name > /path/db_name.sql 备份多个数据库mysqldump -uusername -hhostname -ppassword --databases db1_name db2_name db3_name >/path/multidb_name.sql 备份所有数据库mysqldump -uusername -

MySQL 利用xtrabackup进行增量备份详细过程汇总

Xtrabackup下载.安装以及全量备份请参考:http://blog.itpub.net/26230597/viewspace-1465772/ 1,创建mysql备份用户 mysql -uroot --password="" -e"CREATE USER 'backup'@'192.168.%' IDENTIFIED BY '123456'"; mysql -uroot --password="" -e"GRANT RELOAD,