菜鸟学Linux 第079篇笔记 mysql备份lvm
菜鸟学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相关推荐
- 菜鸟学Linux 第095篇笔记 MySQL 5.6主从复制
菜鸟学Linux 第095篇笔记 MySQL 5.6主从复制 内容总览 主从服务器复制过滤 MySQL 5.6 简单主从模式配置步骤 mysql-proxy 主从服务器复制过滤 主服务器配置 基于数据 ...
- 菜鸟学Linux 第090篇笔记 corosync+drbd+mysql
菜鸟学Linux 第090篇笔记 corosync+drbd+mysql 内容总览 上节回顾 DRBD (Distributed Replicated Block Device) 分布式复制块设备 配 ...
- 菜鸟学Linux 第052篇笔记 httpd-install and section2
菜鸟学Linux 第052篇笔记 httpd-install and section2 apache 17years NCSA, httpd A Patchey Server = Apache FS ...
- 菜鸟学Linux 第107篇笔记 zabbix概念和安装
菜鸟学Linux 第107篇笔记 zabbix概念和安装 内容总览 SNMP catti nagios zabbix Various Monitoring Functions Zabbix Agent ...
- 菜鸟学Linux 第044篇笔记 算法和私有CA
菜鸟学Linux 第044篇笔记 算法和私有CA 证书吊销列表CRL(Certificate Revocation List ) 如何解决私钥丢失 PKI: Public Key Infrastruc ...
- windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux
菜鸟学Linux 第103篇笔记 pxe自动化安装linux 内容总览 linux的系统安装 kickstart文件的组成部分 DHCP (Dynamic Host Configuration Pro ...
- 菜鸟学Linux 第050篇笔记 dhcp
菜鸟学Linux 第050篇笔记 dhcp DHCP (Dynamic Host Configuration Protocol) 早期bootp (boot protocol) lease Clien ...
- 菜鸟学Linux 第033篇笔记 bootloader,inittab
菜鸟学Linux 第033篇笔记 bootloader,inittab Linux 系统自启动流程 PC OS (Linux) POST-->BIOS(Boot Sequence)-->M ...
- Linux 日志 klogd,菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd
菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd Linux上的日志系统 syslog开源 syslog-ng 商业版 日志系统 syslog syslog 服务 syslog ...
- 菜鸟学Linux 第034篇笔记 vmlinuz, initrd, modules, script
菜鸟学Linux 第034篇笔记 vmlinuz, initrd, modules, script 内核两部分 核心 /boot/vmlinuz-version 内核模块 /lib/modules/ ...
最新文章
- MultiSet和Set的区别
- fedora 20 yum出错
- 3.1 Adapter(适配器)
- opencv videoio无法读取rstp_使用一行Python代码从图像读取文本
- MySQL查询,按拼音首字母排序
- [matlab]斜阶梯式长条引起的重力异常计算
- 2012年3月编程语言排行榜:JavaScript超越Perl和Python
- Spring解析 XML 的原理,你搞定了么?
- Java去除字符串最前面一个字符和最后面一个字符
- 用Navicat连接MySQL数据库出现1251错误:密码方式错误
- 算法竞赛学习资源整理
- [C++]##(两个井号)和#(一个井号)都是什么意思
- wpf 怎样判断是否选中 checkbox_怎样判断一个人是否缺爱?
- PHP中strtotime()的使用
- 一个人做饭有哪些推荐?
- python实现QQ机器人(自动登录,获取群消息,发送群消息)
- 迎亚运 广州推出全国首个地铁导向地图
- 【引用】男人爱你的三个细节
- 【Hello,互联网】百家争鸣的互联网时代
- 【ESP】乐鑫系列物联网芯片