使用mysqldump备份时,如果存储引擎为MyISAM,则只能实现温备份,并需使用选项--lock-all-tables锁定所有表。如果存储引擎为InnoDB,则加上--single-transaction选项,可以实现热备。
使用mysqldump进行逻辑备份,还存在如下问题:
浮点数据丢失精度;

备份出的数据更占用空间;不过可压缩后以大大节省空间

不适合对大数据库(如一个库超过10G)做完全备份

另外对InnoDB而言,需要使用mysql> FLUSH TABLES WITH READ LOCK;刷新并锁定表时,可能需要花大量的时间

对InnoDB而言,即使锁定了,也不一定以为着没有数据的写入,此时事务日志可能还在同步到永久存储

一、备份单表数据另一个手段:
1.1 基本语法:
备份:
SELECT * INTO OUTFILE '/path/to/somefile.txt' FROM tb_name [WHERE clause];
还原:
LOAD DATA INFILE '/path/to/somefile.txt' INTO TABLE tb_name;
1.2 示例:
备份表:
mysql> SELECT * INTO OUTFILE '/tmp/tutors.txt' FROM tutors; 
Query OK, 8 rows affected (0.31 sec)
[root@localhost ~]# cat /tmp/tutors.txt 
2 HuangYaoshi M 63 
3 Miejueshitai F 72 
4 OuYangfeng M 76 
6 YuCanghai M 56 
7 Jinlunfawang M 67 
8 HuYidao M 42 
9 NingZhongze F 49 
14 HuFei M 31
注意:导出的仅仅是数据,表结构并不会被导出。
创建用于恢复数据的空表:
mysql> CREATE TABLE test_tb LIKE tutors; 
Query OK, 0 rows affected (1.28 sec)
还原数据到新表:
mysql> LOAD DATA INFILE '/tmp/tutors.txt' INTO TABLE test_tb; 
Query OK, 8 rows affected (0.17 sec) 
Records: 8 Deleted: 0 Skipped: 0 Warnings: 0

2.2.2 通过另一个终端,保存二进制日志文件及相关位置信息;
$ mysql -uroot -p -e 'SHOW MASTER STATUS\G' > /path/to/master-`date +%F`.info

查看当前日志:
mysql> show master status; 
+----------------------+----------+--------------+------------------+-------------------+ 
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | 
+----------------------+----------+--------------+------------------+-------------------+ 
| mysqld-binlog.000007 | 650 | | | | 
+----------------------+----------+--------------+------------------+-------------------+ 
1 row in set (0.00 sec)
备份增量日志:需要注意的是,由于我使用了[FLUSH LOGS]滚动日志,因此理论上使用lvm快照卷备份后有两个日志的增量数据需要备份,即:mysqld-binlog.000006和mysqld-binlog.000007
查看备份开始时的日志位置:
[root@localhost ~]# cat /data/backup/master-2013-09-23.info 
*************************** 1. row *************************** 
File: mysqld-binlog.000006 
Position: 120
Binlog_Do_DB: 
Binlog_Ignore_DB: 
Executed_Gtid_Set:
导出日志:
[root@localhost ~]# mysqlbinlog --start-position=120 /data/mysql/mysqld-binlog.000006 >/data/backup/06.sql
[root@localhost ~]# mysqlbinlog /data/mysql/mysqld-binlog.000007 >/data/backup/07.sql

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-10/91062p2.htm

相关阅读:

mysqldump和LVM逻辑卷快照 http://www.linuxidc.com/Linux/2013-09/90382.htm

LVM的综合性介绍及实现 http://www.linuxidc.com/Linux/2013-03/81482.htm

MySQL高性能备份方案解决数据不间断访问(LVM快照方式备份) http://www.linuxidc.com/Linux/2013-07/87887.htm

LVM上实施ASM  http://www.linuxidc.com/Linux/2012-11/73475.htm

2.3 恢复测试:
2.3.1 模拟损坏:
我这里还是采用直接删除数据文件目录:

此时已经无法正常停止mysqld了:
[root@localhost data]# service mysqld stop 
ERROR! MySQL server PID file could not be found!
[root@localhost data]# killall mysqld
2.3.2 恢复完全备份:直接cp
[root@localhost data]# cp -R /data/backup/full-bak-2013-09-23/mysql /data/ 
cp:是否覆盖"/data/mysql/localhost.localdomain.err"? yes
[root@localhost mysql]# chown mysql.mysql -R /data/mysql
2.3.3 启动服务器:
[root@localhost data]# service mysqld start 
Starting MySQL SUCCESS!
2.3.4 导入增量备份:
[root@localhost ~]# mysql -uroot -p </data/backup/06.sql
[root@localhost ~]# mysql -uroot -p </data/backup/07.sql
2.3.5 使用LVM快照卷备份注意事项:如果需要备份单一库,则InnoDB需设置为独立表空间
设置每个表独立使用一个表空间 
[root@localhost ~]# echo "innodb_file_per_table = 1" >>/etc/my.cnf 
重启生效: 
[root@localhost ~]# service mysqld restart

使用LVM快照进行数据库备份的更多相关文章

  1. Mysql数据库之备份还原(mysqldump,LVM快照,select备份,xtrabackup)

    备份类型: 热备份:读写不受影响 温备份:仅可执行读备份 冷备份:离线备份,读写均不能执行,关机备份 物理备份和逻辑备份 物理备份:复制数据文件,速度快. 逻辑备份:将数据导出之文本文件中,必要时候, ...

  2. MySQL数据物理备份之lvm快照

    使用lvm快照实现物理备份 优点: 几乎是热备(创建快照前把表上锁,创建完后立即释放) 支持所有存储引擎 备份速度快 无需使用昂贵的商业软件(它是操作系统级别的) 缺点: 可能需要跨部门协调(使用操作 ...

  3. 【第七章】MySQL数据库备份-物理备份

    一.数据库备份 备份的目的: 备份: 能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方. 冗余: 数据有多份冗余,但不等备份,只能防止机械故障还来的数据丢失,例如主备 ...

  4. 烂泥:LVM学习之KVM利用LVM快照备份与恢复虚拟机

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近一段时间一直在学习有关LVM逻辑卷方面的知识,前几篇文章介绍了有关LVM的逻辑卷的基本相关知识,包括逻辑卷及卷组的扩容与缩小.今天我们再来介绍LVM ...

  5. lvm快照备份数据库(Mysql5.7)

    备份的目的 能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方. 备份的分类 以操作过程中服务的可用性分: 冷备份:cold backup mysql服务关闭,mysq ...

  6. Mysql数据库备份—-通过LVM快照实现备份还原

    一.实验环境 一台测试机:A(172.18.30.1) 操作系统:Centos7 操作对象数据库版本:mariadb-10.2 二.实现目的 从A机器(172.18.30.1)简单搭建数据库,创建测试 ...

  7. mysql数据库基于LVM快照的备份

    lvm-snapshot: 基于LVM快照的备份 1.事务日志跟数据文件必须在同一个卷上          2.创建快照卷之前,要请求mysql的全局锁,在快照创建完成之后释放锁          3 ...

  8. mysql 基于lvm快照的备份

    1.查看磁盘数 ls /dev/ | grep sd 2.快照备份 pvcreate /dev/sdb #制作成物理卷vgcreate testvg /dev/sdblvcreate -L200M - ...

  9. MySQL基于LVM快照的备份恢复(临时)

    目录1.数据库全备份2.准备LVM卷3.数据恢复到LVM卷4.基于LVM快照备份数据5.数据灾难恢复6.总结 写在前面:测试环境中已安装有mysql 5.5.36数据库,但数据目录没有存放在LVM卷, ...

随机推荐

  1. ES6数值的拓展

    二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法 Number(' ...

  2. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

  3. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_18_注解_案例_简单的测试框架

    定义计算器的类 用注解的方式去测试计算器类里面 所有的方法 想验证哪个方法 就在方法的上面加上注解@check 执行TestCheck验证方法 控制台的输出 根目录生成了一个 bug.txt文件 重写 ...

  4. Elasticsearch 安装head插件

    一.简介 elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作.你可以通过插件把它集成到es(首选方式),也可以安装成一个独立webapp. Elastics ...

  5. 【MyBatis】----【MyBatis】--封装---别名---properties

    一.核心配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration ...

  6. 用VBA写一个计算器

    着急的 玩家 可以 跳过“============”部分 ======================================可以跳过的 部分   开始==================== ...

  7. CSU1081有向图BFS

    集训队分组 Description中南大学ACM的暑期集训马上就要开始了,这次集训会将全体N名集训队员(编号分别为1, 2, …, N)按集训选拔赛的排名分成两组,前K名队员分入A组,其余队员分入B组 ...

  8. 第二周JAVA总结

    学海无涯,在学习这件事情上得用点心了

  9. 记:第一次更新服务器CUDA和GPU驱动

    因有需求需要改动centos7中的CUDA(更新到10)和GUP 的driver(更新到410)的版本. 事先需要查看原版本的信息,使用nvidia-smi可以查看driver的版本信息(最新的也显示 ...

  10. P5020货币系统

    这个题是2018提高组真题,是一道看不出是背包的背包题. 题干特别长,甚至有些没看懂.题意为给出一组货币面值,然后从这里面用最少的面值数量取代原先的面值.比如3,6直接用3表示.一开始想到了小凯的疑惑 ...