备份类型 | mysqldump | xtrabackup | binlog日志查看 | 通过二进制日志恢复数据




备份类型 | mysqldump | xtrabackup | binlog日志查看 | 通过二进制日志恢复数据




mysqldump
	1:常用选项
	
	
	yum安装直接使用
	#mysqldump 
	
	二进制和源码安装
	#/usr/local/mysql/bin/mysqldump
	
	-h,--host=name              主机名
	-u,--user=name				用户名
	-P,--port=#					端口(大写)
	-p,--password[=name]		密码(小写)
	-A,--all-databases			导出所有数据库
	-B,--databases				指定导出的数据库名
	-add-locks					默认on,在insert语句之前添加LOCK TABLES并且之后UNLOCK TABLE。使用--skip-add-locks关闭
	-x,--lock-all-tables		默认off,锁定所有表,全局锁,并自动关闭--single-transcation和--lock-tables选项
	-l,--lock-tables			默认on,只锁导出时的表
	-f,--force					忽略SQL错误,默认关闭
	-master-data				追加binlog日志位置和文件名到输出文件中。如果等于1,将输出change master命令,如果等于2,输出change master命令前面加注释
								该选项会自动关闭--lock-tables和--single-transaction选项
	-d,--no-data				只导出表结构
	-R,--routines				导出函数和存储过程
	--triggers					导出触发器
	--single-transaction		设置事务隔离状态并使用一致性快照开始事务,再UNLOCK tables,备份期间不影响事务操作,只导出快照的时间点的数据。始于innodb,与--lock-tables选项互斥
	--set-gtid-purged[=name]    添加SET @@GLOBAL.GTID_PURGED到输出。默认AUTO,其他可选OFF和ON。AUTO对于启用GTID的会输出,没有启用的不输出
	-q,--quick					不缓冲查询,直接转储。默认开启。--skip-quick关闭
	-F,--flush-logs				刷新日志
	
	
	
	
	2:完整备份与恢复
	
	备份本机所有数据库,远程主机增加-h192.168.31.3选项
	#mysqldump -uroot -p -A -R --single-transaction > dump.sql
	#mysqldump -h192.168.31.3  -uroot -p -A -R --single-transaction > dump.sql
	恢复数据库
	#mysql -uroot -p < dump.sql;
	
	备份指定数据库test
	#mysqldump -uroot -p -R --single-transaction -B test > dump.sql
	
	
	
	另一种恢复数据方式
	mysql> source /root/dump.sql;
	
	
	
	3:增量备份与恢复
	
	
	基于二进制日志实现增量备份,前提必须开启二进制日志
	#vi /etc/my.cnf
	[mysqld]
	server-id=1
	log-bin=mysql-bin
	
	
	
	完整备份
	#mysqldump -uroot -p -R --single-transaction --flush-logs --master-data=2 -B test > test.sql
	
	确定二进制日志文件的名称
	#show master status;
	
	
	恢复完整备份+二进制日志
	#mysqldump -uroot -p < test.sql;
	
	
	
 基于二进制日志恢复
    使用时间点恢复
	使用日志文件恢复
	
	
	
	查看二进制日志文件
	#mysqlbinlog --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000009 > temp.sql
	
	查看导出的temp.sql
		1:找到drop的位置
		2:记录下时间和end_log_pos
		3:通过时间和end_log_pos恢复数据
		
	基于日志中pos进行恢复
	#mysqlbinlog --start-position=154 --stop-position=771 /var/lib/mysql/mysql-bin.000011 | mysql -uroot -p
	
	基于二进制时间点恢复
	#mysqlbinlog --stop-datetime='2018-07-02 21:48:52' /var/lib/mysql/mysql-bin.000011 | mysql -uroot -p
	
	把文件导出查看
	#mysqlbinlog --stop-datetime='2018-07-02 21:48:52' /var/lib/mysql/mysql-bin.000011 > temp1.sql
	
	查看binary日志信息
	mysql> show binary logs;
	
	查看指定日志内容
	mysql> show binlog events in 'mysql-bin.000011' \G;





xtrabackup
	1:常用选项
	
	xtrabackup安装
		1:下载地址 选择最新版本 https://www.percona.com/downloads/XtraBackup/LATEST/
		
		
		#yum localinstall https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.10/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm
	
	
		innobackupex-常用选项
		--user										用户名
		--password									密码
		--port										端口
		--databases									备份数据库,多个以空格分割,默认备份所有数据库
		--defaults-file								指定my.cnf配置文件
		--apply-log									日志回滚
		--incremental								增量备份
		--incremental-basedir						基于上次备份而增量备份
		--redo-only									合并完整备份和增量备份文件
		--copy-back									将备份数据恢复到数据库
		--no-timestamp								生成备份文件不以时间戳为目录名
		--stream									流的格式做备份,将备份归档。--stream-tar
		--remote-host=user@ip dst_dir				备份到远程主机


	
		
	
	
	
	
	
	
	
	
	2:完整备份与恢复
		完整备份
		#innobackupex --user=root --password='123456' /backup
		
		备份恢复
		#innobackupex --defaults-file=/etc/my.cnf --copy-back /backup/2018-07-02_23-54-09
	
	
	
	3:增量备份与恢复
	
		基于完整备份
		#innobackupex --user=root --password='123456' /backup
	
		增量备份 ,指定上一次备份目录--incremental-basedir
		#innobackupex --user=root --password='123456' --incremental /backup/ --incremental-basedir=/backup/2018-07-02_23-54-09   
		#innobackupex --user=root --password='123456' --incremental /backup/ --incremental-basedir=/backup/上一次备份的目录
		
		
		
		删除MySQL的数据库目录
		#mv /var/lib/mysql /var/lib/mysql.bak
		
		
		回滚事务-第一次完整备份时的目录
		#innobackupex --apply-log --redo-only /backup/完整备份目录
		
		
		合并第一个增量的备份
		#innobackupex --apply-log --redo-only /backup/完整备份目录 --incremental-dir=/backup/第一次增量备份目录
		
		合并第二个增量的备份
		#innobackupex --apply-log --redo-only /backup/完整备份目录 --incremental-dir=/backup/第二次增量备份目录
		
		备份恢复
		#innobackupex --defaults-file=/etc/my.cnf --copy-back /backup/完整备份目录
		
		
	

	
	
	
	
	
	
	
	
	
	
	
	
	

 

你可能感兴趣的:(MySQL)