菜鸟学Linux 第079篇笔记 mysql备份lvm

内容总览

上节知识点补充

单表的导出导入

LVM创建快照实现数据库备份

上节少了一点知识点

使用mysqldump备份还原时 要临时将sql_log_bin关闭(临时性的关闭二进制日志记录)

因为还原时所生成的二进制日志对于下一次备份时是没有用的,所以在还原时要关闭二进制

日志记录  切记切记

SET sql_log_bin=0;   关闭

导入使用

mysql> \. /path/backup.sql

SET sql_log_bin=1;  开启

mysqldump

--databases DB1,DB2

--all-databases

--flush-logs

--routines

--triggers

--master-data={0|1|2}

MyISAM 温备份

--lock-all-tables

--lock-table

InnoDB 热备份

--single-transaction

逻辑备份

1. 浮点数据丢失精度;

2. 备份的数据更点用存储空间,压缩后可大大节省空间

3. 不适合对大数据库做完全备份

INNODB

SHOW ENGINES INNODB STATUS;

mvcc, REPEATABLE-READ

--single-transaction

直接将表导出不添加任何信息

mysql> SELECT * INTO OUTFILE '/path/file_name.txt' FROM tb_name [WHERE]

mysql> SELECT * INTO OUTFILE '/tmp/tutor.txt' FROM tutors;

(注意所给的系统路径 必须mysql用户可以访问的目录 )

还原导出的表

导入之前需要重新建立表,和对应的列名称及其属性

mysql> CREATE TABLE tutor LIKE tutors;

mysql> LOAD DATA INFILE '/tmp/tutor.txt' INTO TABLE tutor;

此种方式仅做单张表备份,速度快 (且不会写进二进制日志文件里)

几乎热备 LVM

snapshot

前提

1. 数据文件要在逻辑卷上

2. 此逻辑卷所在卷组必须有足够空间使用快照卷

3. 使用快照热备 数据文件和事务日志必须在一个逻辑卷里

1. 锁表

mysql> FLUSH TABLES WITH READ LOCK;

mysql> FLUSH LOGS;

mysql> SHOW MASTER STATUS;

此时切记不要退出会话, 要新建立一个会话执行如下命令

# mkdir /backup

# mysql -e "SHOW MASTER STATUS\G;" > /backup/master-`date +%F`.info

2. 创建快照并备份数据

# lvcreate -L 50M -s -p r -n mydata-snap /dev/myvg/mydata

释放表锁

mysql> UNLOCK TABLES;

# mount /dev/myvg/mydata-snap /mnt/ -o ro

# mkdir /backup/full-backup-`date +%F`

# cp -a /mnt/data/* /backup/full-backup-2017-01-13/

# rm -rf /backup/full-backup-2017-01-13/mysql-bin.*

(我这里是模拟的,其实二进制日志不应该也在数据文件里的所以删除掉)

# cd

# umount /mnt

# lvremove --force /dev/myvg/mydata-snap

3. 备份二进制日志文件

# cat /backup/master-2017-01-13.info

会在此里边查找到位置我的是107

二进制日志文件是mysql-bin.000005

# mysqlbinlog --start-position=107 /mydata/data/mysql-bin.000003

此句在于找出其开始时间,下一句是备份

# mysqlbinlog --start-datetime='2017-01-13' mysql-bin.000003

mysql-bin.000004 mysql-bin.000005...  > /backup/binary/binary-`date %F`.sql

4. 模拟数据库损坏并还原

将数据库里所有信息删除

# service mysqld stop

# rm -rf /mydata/data/*

# killall mysqld

实现还原

# cp -a /backup/full-backup-2017-01-13/* /mydata/data/

# ls /mydata/data

# service mysqld start

5. 即时点还原(导入二进制日志文件)

mysql> SET sql_log_bin=0;

mysql> SOURCE /backup/binary-2017-01-13.sql

mysql> SET sql_log_bin=1;

总结步骤

1.打开会话,施加读锁,锁定所有表

mysql> FLUSH TABLES WITH READ LOCK;

mysql> FLUSH LOGS;

2.通过另一个终端,保存二进制日志文件及相关位置信息

# mysql -uroot -p -e "SHOW MASTER STATUS\g" > /path/master-`date +%F`.info

3.创建快照

# lvcreate -L # -s -p r -n LV_name /dev/path/source-lv

4.释放锁

mysql> UNLOCK TABLES;

5.挂载快照卷,备份

mount

cp

6.删除快照卷

7.增量备份二进制日志

8.还原时一定要记得将二进制日志给临时性的关闭掉

InnoDB 数据库一定要记得使用了

innodb_file_per_table           | ON

要不然备份单个数据库使用快照这种方式就比较麻烦了

创建快照来备份数据库比较适合进行所有库备份

转载于:https://blog.51cto.com/winthcloud/1891801

菜鸟学Linux 第079篇笔记 mysql备份lvm相关推荐

  1. 菜鸟学Linux 第095篇笔记 MySQL 5.6主从复制

    菜鸟学Linux 第095篇笔记 MySQL 5.6主从复制 内容总览 主从服务器复制过滤 MySQL 5.6 简单主从模式配置步骤 mysql-proxy 主从服务器复制过滤 主服务器配置 基于数据 ...

  2. 菜鸟学Linux 第090篇笔记 corosync+drbd+mysql

    菜鸟学Linux 第090篇笔记 corosync+drbd+mysql 内容总览 上节回顾 DRBD (Distributed Replicated Block Device) 分布式复制块设备 配 ...

  3. 菜鸟学Linux 第052篇笔记 httpd-install and section2

    菜鸟学Linux 第052篇笔记  httpd-install and section2 apache 17years NCSA, httpd A Patchey Server = Apache FS ...

  4. 菜鸟学Linux 第107篇笔记 zabbix概念和安装

    菜鸟学Linux 第107篇笔记 zabbix概念和安装 内容总览 SNMP catti nagios zabbix Various Monitoring Functions Zabbix Agent ...

  5. 菜鸟学Linux 第044篇笔记 算法和私有CA

    菜鸟学Linux 第044篇笔记 算法和私有CA 证书吊销列表CRL(Certificate Revocation List ) 如何解决私钥丢失 PKI: Public Key Infrastruc ...

  6. windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux

    菜鸟学Linux 第103篇笔记 pxe自动化安装linux 内容总览 linux的系统安装 kickstart文件的组成部分 DHCP (Dynamic Host Configuration Pro ...

  7. 菜鸟学Linux 第050篇笔记 dhcp

    菜鸟学Linux 第050篇笔记 dhcp DHCP (Dynamic Host Configuration Protocol) 早期bootp (boot protocol) lease Clien ...

  8. 菜鸟学Linux 第033篇笔记 bootloader,inittab

    菜鸟学Linux 第033篇笔记 bootloader,inittab Linux 系统自启动流程 PC OS (Linux) POST-->BIOS(Boot Sequence)-->M ...

  9. Linux 日志 klogd,菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd

    菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd Linux上的日志系统 syslog开源 syslog-ng  商业版 日志系统 syslog syslog 服务 syslog ...

  10. 菜鸟学Linux 第034篇笔记 vmlinuz, initrd, modules, script

    菜鸟学Linux 第034篇笔记  vmlinuz, initrd, modules, script 内核两部分 核心 /boot/vmlinuz-version 内核模块 /lib/modules/ ...

最新文章

  1. MultiSet和Set的区别
  2. fedora 20 yum出错
  3. 3.1 Adapter(适配器)
  4. opencv videoio无法读取rstp_使用一行Python代码从图像读取文本
  5. MySQL查询,按拼音首字母排序
  6. [matlab]斜阶梯式长条引起的重力异常计算
  7. 2012年3月编程语言排行榜:JavaScript超越Perl和Python
  8. Spring解析 XML 的原理,你搞定了么?
  9. Java去除字符串最前面一个字符和最后面一个字符
  10. 用Navicat连接MySQL数据库出现1251错误:密码方式错误
  11. 算法竞赛学习资源整理
  12. [C++]##(两个井号)和#(一个井号)都是什么意思
  13. wpf 怎样判断是否选中 checkbox_怎样判断一个人是否缺爱?
  14. PHP中strtotime()的使用
  15. 一个人做饭有哪些推荐?
  16. python实现QQ机器人(自动登录,获取群消息,发送群消息)
  17. 迎亚运 广州推出全国首个地铁导向地图
  18. 【引用】男人爱你的三个细节
  19. 【Hello,互联网】百家争鸣的互联网时代
  20. 【ESP】乐鑫系列物联网芯片

热门文章

  1. React进行服务器端数据请求---fetch
  2. vue+vuex的应用笔记
  3. 拷贝网页内容增加版权信息的 JavaScript 代码示例
  4. centos7初始化脚本
  5. 思科的雾计算对物联网有何推助力?
  6. 身份证验证TW WordPress
  7. BZOJ 3509 分块FFT
  8. 面试 其实就是短时间内展现出你最好的自我
  9. Ajax局部刷新例子
  10. Illustrator中文版教程,如何在 Illustrator中设置图标项目?