MySQL 5.5 备份工具LVM

MySQL的第一款备份工具mysqldump,我们在上篇文章中已经和大家聊过,如果大家还有疑惑,请点击mysqldump

MySQL的第二款备份工具lvm快照,那么今天我们就聊聊它lvm快照卷温备

mysqldump能够实现对InnoDB存储引擎实现热备,但是却无法实现对MyISAM引擎进行热备;

而今天将要和大家介绍lvm能够实现对MyISAM引擎实现几乎热备

使用lvm快照进行mysql的备份时,需要满足以下条件:

  1. 数据文件要在逻辑卷上
  2. 此逻辑卷所在卷组必须有足够空间使用快照卷
  3. 数据文件和事务日志要在一个逻辑卷上

实现lvm快照进行mysql备份的流程

1、打开会话,施加读锁,锁定所有表
mysql> FLUSH TABLES WITH READ LOCK;
mysql> FLUSH LOGS;

2、通过另外一个终端,保存二进制日志文件及相关位置信息;
# mysql -e ‘show mater status‘ > /proc/master.info

3、创建快照卷
# lvcreate -L # -s -p r -n LV_NAME /path/to/source_lv

4、释放锁
mysql> UNLOCK TABLES;

5、挂在快照卷、备份
# mount
# cp -a

6、删除快照卷和无用数据
# lvremove --force LV_NAME
# rm -rf mysql-bin.*

7、增量备份二进制日志
# cp

8、故障发生、恢复数据

mysql数据库lvm快照备份

1、打开会话,施加读锁,锁定所有表,并刷新日志;

mysql> FLUSH TABLES WITH READ LOCK;
mysql> FLUSH LOGS;

2、通过另一个终端,保存二进制日志文件及湘椴信息;

# mysql -uroot -p -e ‘show master status\G;‘ > /backup/master-`date +%F`.info
# cat /backup/master-`date +%F`.info

3、创建快照卷

# lvcreate -L 3G -s -p r -n mydata_snap /dev/myvg/mydata

4、释放锁

mysql> UNLOCK TABLES;

5、挂在快照卷、备份

# mkdir /mnt/mydata_snap
# mount /dev/myvg/mydata_snap /mnt/mydata_snap/ -o ro

# mkdir /backup/full-backup-`date +%F`
# cp -a /mnt/mydata_snap/* /backup/full-backup-2015-03-05/

6、删除快照卷和无用数据

删除快照卷
# umount /mnt/mydata_snap/
# lvremove --force /dev/myvg/mydata_snap 

由于这里备份的日志文件爱你是无用的,因此可以删除
# rm -rf /backup/full-backup-2015-03-05/data/mysql-bin.*

7、增量备份二进制日志

(1)首先在mysql数据库中做一些写入操作:

mysql> FLUSH LOGS;
mysql> USE mydb;
mysql> INSERT INTO tutor(Tname) VALUES(‘it‘);
mysql> INSERT INTO tutor(Tname) VALUES(‘3dmax‘);
mysql> show master status;	#日志文件变化、数据偏移位发生变化
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 |      584 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)	

(2)备份增量日志:需要注意的是,由于我使用了FLUSH LOGS滚动日志,因此理论上是引用lvm快照卷备份后有两个日志的增量数据需要备份即mysql-bin.000004和mysql-bin.000005

(3)查看备份开始时的日志位置:

[[email protected] ~]# cat /backup/master-2015-03-05.info 
*************************** 1. row ***************************
			File: mysql-bin.000004
		Position: 107
	Binlog_Do_DB: 
Binlog_Ignore_DB: 	

(4)导出日志:

# mysqlbinlog --start-position=107 /mydata/data/mysql-bin.000004 > /backup/04.sql
# mysqlbinlog /mydata/data/mysql-bin.000005 > /backup/05.sql

8、恢复数据库

1)模拟损坏:

我这里还是采用这直接删除数据文件和目录的方式:

# rm -rf /mydata/data*

2)恢复完全备份:直接cp

# cp -a /backup/full-backup-2015-03-05/data/* /mydata/data/

3)启动mysql服务

# service mysqld start

4)导入增量备份

# mysql -uroot -p < /backup/04.sql
# mysql -uroot -p < /backup/05.sql

5)使用lvm快照卷备份注意事项:如果需要备份单一库,则InnoDB需设置为独立表空间

设置每个表独立使用一个表空间
mysql> SHOW GLOBAL VARIABLES LIKE ‘%innodb_file_per_table%‘;
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)
  • 个人愚见:
  • 这种热备工作我用的不是很多,可能是公司的环境不同吧!我会在后续章节中和大家介绍第三款开源备份工具xtrabackup,这款备份工具个人感觉是非常不错,在性能方面远超mysqldump,那么我们下回聊。
  • 下几篇mysql文章的方向:
    • 第三款备份工具xtrabackup
    • 性能调试工具
    • 压力测试
时间: 2024-10-06 07:07:03

MySQL 5.5 备份工具LVM的相关文章

MySQL Study之--MySQL innodb引擎备份工具XtraBackup之一(Install)

MySQL Study之--MySQL innodb引擎备份工具XtraBackup之一(Install) Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具:xtrabackup.innobackupex (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表 (2)innobackupex-1.5

mysql定时数据备份工具(c#)

此博文的出处 为 http://blog.csdn.net/zhujunxxxxx/article/details/40124773如果进行转载请注明出处.本文作者原创,邮箱[email protected],如有问题请联系作者 为了确保数据的安全,我们往往要对数据进行备份.但是为了减少我们的工作量,我写了一个简单的数据备份工具,实现定时备份数据库. 其实程序很简单,数据备份的工作就是几个mysql的命令而已. 先看看程序的运行界面 可以看到界面是十分的简单的 我们使用的是命令行来进行数据备份,

MySQL 5.5 备份工具mysqldump

今天就和大家聊聊mysqldump备份工具: mysqldump MySQL数据库自带的一款(逻辑)备份工具: 能够对数据库.表.触发器.存储过程.事件等备份: 备份的文件是可执行的sql语句纯文本文件中. mysqldump engines 对MyISAM存储引擎进行温备,必须加参数--lock-all-tables 对InnoDB存储引擎进行热备,必须加参数--single-transaction mysqldump usage 1.备份单个数据库和单个数据库下的某些表 mysqldump

MySQL多线程逻辑备份工具之mydumper

下载安装 yum -y install cmake glib2 pcre pcre-devel mysql-devel wget https://launchpad.net/mydumper/0.6/0.6.2/+download/mydumper-0.6.2.tar.gz tar xf  mydumper-0.6.2.tar.gz cd mydumper-0.6.2 cmake . make && make install 注释:如果只要帮助可以这样编译make doc_html 安装之

使用LVM快照实现对mysql数据库的备份

数据库备份有多种方法,今天介绍下使用lvm的快照功能完成对mysql数据库的备份.lvm在对数据进行备份的时候可以提供近乎热备的方式,它的工作机制是这样的:在某一时刻对数据库所在目录创建快照卷,由此,通过快照卷访问的数据就是保存快照那一刻时的数据,而后将快照卷中的数据拷贝至其他目录即可,之所以称他为近乎热备是因为在创建快照的时候需要对数据库施加读锁,在这期间数据库不能进行写操作. 使用lvm备份数据库的前提  1,数据文件必须在lv中 2,此逻辑卷所在的卷组必须有足够的空间使用快照卷 3, 数据

mysql 备份工具简介

mysql自带的: mysqldump:逻辑备份工具,对MySAM可以实现温备,对innodb可以进行热备 mysqlhotcopy:物理备份工具(温备份) 文件系统工具: 比如你在Linux下面的直接使用cp 命令(冷备份),win下面的复制(冷备份) LVM快照功能可以实现几乎热备份 LVM快照备份MyISAM 和innodb引擎的数据时候需要注意: 对MyISAM而言使用LVM快照备份需要在mysql执行sql命令 flush tables:然后LOCK TABLE 然后才能创建快照,创建

MySQL 数据库备份种类以及常用备份工具汇总

1,数据库备份种类 按照数据库大小备份,有四种类型,分别应用于不同场合,下面简要介绍一下: 1.1完全备份 这是大多数人常用的方式,它可以备份整个数据库,包含用户表.系统表.索引.视图和存储过程等所有数据库对象.但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份. 1.2事务日志备份 事务日志是一个单独的文件,它记录数据库的改变,备份的时候只需要复制自上次备份以来对数据库所做的改变,所以只需要很少的时间.为了使数据库具有鲁棒性,推荐每小时甚至更频繁的备份事务日志. 1.3差异备份 也

MySQL Study之--Mysql数据库备份工具(mysqldump)

MySQL Study之--Mysql数据库备份工具(mysqldump) 对于Mysql Database的备份方式有很多种,此次文档主要介绍mysqldump工具: mysqldump:      mysqldump工具很多方面类似相反作用的工具mysqlimport.它们有一些同样的选项.但mysqldump能够做更多的事情.它可以把整个数据库装载到一个单独的文本文件中.这个文件包含有所有重建您的数据库所需要的SQL命令.这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DD

MySQL多线程备份工具:mydumper

MySQL多线程备份工具:mydumper http://www.orczhou.com/index.php/2011/12/how-to-split-mysqldump-file/ Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具.开发人员分别来自MySQL,Facebook,SkySQL公司.目前已经在有一些大型产品业务上测试并使用了Mydumper.分稳定版和开发版两种,目前最新稳定版是0.2.3和最新开发版是0.5.1.恢复时可使用myloader工具.