mysql备份与恢复
备份与恢复
根据备份的方法不同可以将备份分为:
Hot Backup:热备,数据库运行中直接备份,对正在运行的数据库操作没有任何影响。
Cold Backup:冷备,数据库停止的情况下备份(直接复制数据库的物理文件)。
Warm Backup:温备,数据库运行中进行,但会对当前数据库的操作有所影响,比如加一个全局读锁以保证备份数据的一致性。
按备份后文件的内容,分为:
逻辑备份:备份出的文件是可读的,一般是文本文件,内容是sql语句或者表内实际字段组成。恢复时间长。
裸文件备份:复制数据库的物理文件。恢复时间短。
按备份数据库的内容,分为:
完全备份
增量备份
日志备份
数据库备份的数据一致性:开启事务来保证;mysqldump —single-transaction来保证
逻辑备份实现方式:
1.mysqldump命令,各参数通过mysqldump —help来查看
mysqldump —all-databases >dump.sql (备份所有的库表)
mysqldump —databases db1 db2 db3 >dump.sql (备份指定的库表db1,db2,db3)
2.select … into outfile
select * into outfile ‘/root/a.txt’ from a;(默认分隔符tab)
select * into outfile ‘/root/a.txt’ fields terminated by ‘,’ from a; (指定分隔符,)
逻辑备份的恢复
mysql -uroot -p <dump.sql
source dump.sql
load data infile ‘/root/a.txt’ into table a;
通过mysqldump导出,无法把视图导出。
二进制日志备份与恢复
默认二进制日志不启用,若要启用,需要在配置中进行如下设置:
[mysqld]
log-bin=mysql-bin
sync_binlog=1
innodb_support_xa=1
使用方法如下:
1.mysqlbinlog binlog.0000001 | mysql -uroot -p test
2.mysqlbinlog binlog.0000001 | /tmp/statements.sql
source /tmp/statements.sql
热备
ibbackup(收费)是InnoDB存储引擎官方提供的热备工具。原理如下:
1.记录备份开始时,InnoDB存储引擎重做日志文件检查点的LSN
2.复制共享表空间文件及独立表空间文件
3.记录复制完表空间文件后,InnoDB存储引擎重做日志文件检查点的LSN
4.复制在备份时产生的重做日志。
XtraBackup开源热备工具
完全备份的用法:./xtrabackup —backup
xtraBackup的增量备份原理:
1.首选完成一个全备,并记录下此时检查点的LSN
2.在进行增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是,则备份该页,同事记录当前检查点的LSN
./xtrabackup —backup —target-dir=/backup/base
./xtrabackup —backup —target-dir=/backup/delta —incremental-basedir=/backup/base
./xtrabackup —prepare —target-dir=/backup/base
./xtrabackup —prepare —target-dir=/baseup/base —incremental-dir=/backup/delta
转载于//www.cnblogs.com/share2perfect/p/11196605.html
还没有评论,来说两句吧...