上节知识点补充
单表的导出导入
LVM创建快照实现数据库备份
使用,mysqldump备份还原时要临时将sql_log_bin关闭(临时性的关闭二进制日志记录)
因为还原时所生成的二进制日志对于下一次备份时是没有用的,所以在还原时要关闭二进制
日志记录,切记切记
设置sql_log_bin=0;,关闭
导入使用
mysql>\.//备份路径。sql
设置sql_log_bin=1;,开启
mysqldump
——DB1数据库,DB2
——所有数据库
——flush-logs
——例程——触发
主数据=https://www.yisu.com/zixun/{0 | 1 | 2}
MyISAM温备份
——lock-all-tables
——锁表
InnoDB热备份
——单一事务
1。浮点数据丢失精度;
2。备份的数据更点用存储空间,压缩后可大大节省空间
3。不适合对大数据库做完全备份
显示引擎INNODB状态;
mvcc,可重复读
——单一事务
mysql>SELECT *到输出文件的/道路/file_name。txt”tb_name [,]
mysql>SELECT *到输出文件的/tmp/导师。从导师txt”;
(注意所给的系统路径必须mysql用户可以访问的目录)
还原导出的表
导入之前需要重新建立表,和对应的列名称及其属性
mysql>创建表的导师喜欢导师;
mysql>数据加载INFILE/tmp/导师。txt”表导师;
此种方式仅做单张表备份,速度快(且不会写进二进制日志文件里)
快照
1。数据文件要在逻辑卷上
2。此逻辑卷所在卷组必须有足够空间使用快照卷
3。使用快照热备数据文件和事务日志必须在一个逻辑卷里
mysql>刷新表读锁;
mysql>刷新日志;
mysql>显示主状态;
此时切记不要退出会话,要新建立一个会话执行如下命令
# mkdir/备份mysql - e
#“显示主状态\ G;”比;/备份/主——“日期+ % F ' info
# lvcreate - l 50 m - s - p r - n mydata-snap/dev/myvg/mydata
,,,,,,,,,,,,,,,
mysql>打开表;
#/dev/myvg/mydata-snap山/mnt/o ro
# mkdir/备份/完整备份——“日期+ % F”
# cp - a/mnt/数据/*/备份/满-备份- 2017 - 01 - 13/
# rm射频/备份/满-备份- 2017 - 01 - 13/mysql-bin。*
(我这里是模拟的,其实二进制日志不应该也在数据文件里的所以删除掉)
# cd # umount/mnt来
# lvremove——迫使/dev/myvg/mydata-snap
3。备份二进制日志文件
#猫/备份/主- 2017 - 01 -
13. -信息会在此里边查找到位置我的是107
二进制日志文件是mysql-bin.000005
# mysqlbinlog——起始位置=107/mydata/数据/mysql-bin。000003年
此句在于找出其开始时间,下一句是备份
# mysqlbinlog——start-datetime=' 2017-01-13 ' mysql-bin.000003
mysql-bin。000004年mysql-bin.000005……,比;/备份/二进制或二进制-日期% F。sql
4。模拟数据库损坏并还原
将数据库里所有信息删除
#服务mysqld停止
# rm射频/mydata/数据/* # killall mysqld
实现还原
# cp - a/备份/满-备份- 2017 - 01 - 13/*/mydata/数据/
# ls/mydata/数据
#服务mysqld开始
mysql>设置sql_log_bin=0;
mysql>源/备份/二进制- 2017 - 01 - 13. - sql
mysql>设置sql_log_bin=1;
1。打开会话,施加读锁,锁定所有表
mysql>刷新表读锁;
mysql>刷新日志;
2。通过另一个终端,保存二进制日志文件及相关位置信息
# mysql -uroot - p - e”显示主状态\ g”比;/道路/主——“日期+ % F ' info
3。创建快照
# lvcreate - l # - s - p r - n LV_name/dev/path/source-lv
4。释放锁
mysql>打开表;
5。挂载快照卷,备份
mount
cp
6。删除快照卷