zoukankan      html  css  js  c++  java
  • xtrabackup全量备份和增(差)量备份

    xtrabackup全量备份和增(差)量备份

    1.xtrabackup全量备份和恢复

    1)备份:

    	innobackupex --default-file=/PATH/TO/DEFAULT --host=ID ADDR --user=USER_NAME -P PASSWORD /PATH/TO/BACKUP
    		--default-file:指定备份时,从那个配置文件中读取配置信息。默认是使用的默认主配置文件,此时可以不写
    		--host:指定数据库服务ip地址。默认为localhost,此时可不写
    		--user:指定连接数据库服务的用户。默认为root,此时可不写
    		-p:指定用户密码
    		/PATH/TO/BACKUP:备份文件存放目录
    		注意:
    			completed OK!字样,有它才说明备份成功,innobackupex会把备份过程完整输出到屏幕。
    

    2)备份目录文件:

    	在你所指定的备份目录下可以找到以当前时间命令的备份文件
    		[root@localhost backup]#ls
    		2017-11-18_19-39-17
    		[root@localhost backup]#ll 2017-11-18_19-39-17/
    		total 18460
    		-rw-r----- 1 root root      417 Nov 18 19:39 backup-my.cnf
    		-rw-r----- 1 root root 18874368 Nov 18 19:39 ibdata1
    		drwxr-x--- 2 root root     4096 Nov 18 19:39 mysql/
    		drwxr-x--- 2 root root     4096 Nov 18 19:39 performance_schema/
    		drwxr-x--- 2 root root       78 Nov 18 19:39 Syslog/
    		-rw-r----- 1 root root       19 Nov 18 19:39 xtrabackup_binlog_info
    		-rw-r----- 1 root root      113 Nov 18 19:39 xtrabackup_checkpoints
    		-rw-r----- 1 root root      448 Nov 18 19:39 xtrabackup_info
    		-rw-r----- 1 root root     2560 Nov 18 19:39 xtrabackup_logfile
    
    	文件介绍:
    		backup-my.cnf:
    			此文件中包含my.cnf中的设置信息,只包含了备份时需要的信息。
    		ibdata1:
    			这是个innodb的共享表空间文件
    		xtrabackup_binlog_info:
    			此文件记录了备份开始时二进制日志文件的位置(position)
    		xtrabackup_checkpoints:
    			此文件记录此次备份属于那种类型的备份等信息
    		xtrabackup_info:
    			此文件记录了备份的概要信息
    		xtrabackup_logfile:
    			此文件记录了备份过程中的日志,在对数据进行prepare时需要通过日志将数据还原成一致的可用备份数据
    

    3)查看备份情况:

    	cat /backup/2017-11-18_19-39-17/xtrabackup_checkpoints 
    	backup_type = full-backuped
    	from_lsn = 0
    	to_lsn = 1947282
    	last_lsn = 1947282
    	compact = 0
    	recover_binlog_info = 0
    

    4)恢复:

    	在需要还原的服务器上安装xtrabackup。
    	把备份的整个目录拷贝到需要还原的服务器上。
    	两个服务器上的mysql版本需要相同(不相同的没试过)
    	1》prepare:
    		innobackupex --apply-log /PATH/TO/BACKUP/dir-quan
    		--apply-log:将目录中的日志应用到备份数据中
    		--use-memory=N:默认为100M,若备份数据量大且有足够的空闲内存时,可以用来指定大小的内存来工作,单位可以使用G,M....。
    		注意:
    			completed OK!字样
    	2》开始恢复:
    		确保服务停止
    			systemctl stop  mariadb
    		数据目录必须为空目录
    			rm -rf  /PATH/TO/DATADIR/*
    				数据目录一般为/var/lib/mysql/
    		恢复
    			innobackupex --datadir=/PATH/TO/DATADIR/ --copy-back  /PATH/TO/BACKUP/dir-quan
    		修改权限
    			chown -R mysql:  /PATH/TO/DATADIR/ 
    		启动服务
    			systemctl start mariadb
    		注意:
    			实际还原时,最好将对应的配置文件也都还原,也就是把原服务器上的配置拷贝下,确保配置还是原来的。
    			上述恢复并没有进行时间点的还原,实际工作中,需要进行。
    

    2.xtrabackup增(差)量备份及恢复

    	全量备份是差量备份与增量备份的基础。
    	差量备份只能针对上一次全量备份。
    	增量备份可以针对上一次任务一种备份。
    	通俗地来说:所有增量备份加到一起就是差量备份了。
    	增量和差量备份都是针对innodb表来说的,对myisam表来说即使执行了增量备份,其实也是全量备份。
    	注意:以下常说成增量,大家注意增量和差量间的区别就行。
    

    1)增(差)量备份:

    	innobackupex -pPASSWORD --incremental /PATH/TO/BACKUP --incremental-basedir=/PATH/TO/BACKUP/last-backup-file
    	--incremental /PATH/TO/BACKUP:表示本次备份是一个增量备份(若针对的上次备份为一个全量备份,这里也可以认为是个差量备份)
    	--incremental-basedir=/PATH/TO/BACKUP/last-backup-file:指定本次增量备份针对的是那个备份(可以是上个增量,也可以是上个全量)
    

    2)查看备份情况:

    	cat /backup/2017-11-20_03-43-15/xtrabackup_checkpoints 
    	backup_type = incremental
    	from_lsn = 1947282
    	to_lsn = 2073366
    	last_lsn = 2073366
    	compact = 0
    	recover_binlog_info = 0
    	cat /backup/2017-11-20_03-51-32/xtrabackup_checkpoints 
    	backup_type = incremental
    	from_lsn = 2073366
    	to_lsn = 2084330
    	last_lsn = 2084330
    	compact = 0
    	recover_binlog_info = 0
    

    3)恢复:

    	在需要还原的服务器上安装xtrabackup。
    	把备份的整个目录拷贝到需要还原的服务器上。
    	两个服务器上的mysql版本需要相同。
    	1》prepare:
    		对全量备份做准备工作
    			innobackupex --apply-log --redo-only  /PATH/TO/BACKUP/dir-quan
    			--redo-only:表示进行准备(应用日志)工作时,只进行redo操作,只会重做已提交但未应用的事务,不会回滚未提交的事务。原因是后面还有个增量备份,未提交的可能在后面增量备份时进行提交。
    		对增(差)量备份做准备工作
    			innobackupex --apply-log [--redo-only] /PATH/TO/BACKUP/dir-quan --incremental-dir= /PATH/TO/BACKUP/dir-zeng
    			--redo-only:若只有一个增量备份或是最后那个增量备份文件,那么不需要这个选项,原因同上。也就是说这个选项不能用于最后一个增量备份进行prepare。
    			--incremental-dir=:此选项对应的目录为增量备份文件的目录
    		查看prepare情况
    			若不是对最后一个增量备份进行prepare,那么查看全量备份文件中的xtrabackup_checkpoints,可看到log-applied,LSN有所变化,可以和增量备份对比下。
    				cat /backup/2017-11-18_19-39-17/xtrabackup_checkpoints 
    				backup_type = log-applied
    				from_lsn = 0
    				to_lsn = 2073366
    				last_lsn = 2073366
    				compact = 0
    				recover_binlog_info = 0
    			若是以及对最后一个增量备份进行了prepare,那么查看全量备份文件中的xtrabackup_checkpoints,可看到full-prepared,LSN有所变化
    				cat /backup/2017-11-18_19-39-17/xtrabackup_checkpoints 
    				backup_type = full-prepared
    				from_lsn = 0
    				to_lsn = 2084330
    				last_lsn = 2084330
    				compact = 0
    				recover_binlog_info = 0
    		注意:
    			prepared中可以使用--user-memory=选项来加快速度,前提是你有空闲的内存可用。
    			--redo-only这个选项需要多加注意,它不能用于最后那个增量备份的prepared,且必须用于其他增量备份的prepared。原因是后面还有增量备份的,未提交的可能在后面增量备份时进行提交。
    			
    	2》开始恢复:
    		确保服务停止
    			systemctl stop  mariadb
    		数据目录必须为空目录
    			rm -rf  /PATH/TO/DATADIR/*
    				数据目录一般为/var/lib/mysql/
    		恢复
    			innobackupex --datadir=/PATH/TO/DATADIR/ --copy-back  /PATH/TO/BACKUP/dir-quan
    		修改权限
    			chown -R mysql:  /PATH/TO/DATADIR/ 
    		启动服务并查看是否恢复
    			systemctl start mariadb
    		注意:
    			实际还原时,最好将对应的配置文件也都还原,也就是把原服务器上的配置拷贝下,确保配置还是原来的。
    			上述恢复并没有进行时间点的还原,实际工作中,需要进行。
    

    3.binlog备份和恢复

            上述都没有说有关时间点的恢复,这个时间点恢复是指当你全量备份或增量备份后,下次备份还没开始,数据库发生故障后的备份和恢复。
            这个时间点恢复的备份和恢复是通过binlog实现的。
            备份
                    mysqlbinlog -j  245 binlog-log.xxxxxxx > /PATH/TO/BINLOG.sql
            恢复
                    登录数据库的恢复
                        mysql > soure /PATH/TO/BINLOG.sql
                        or
                        mysql -uroot -p < /PATH/TO/BINLOG.sql
    
  • 相关阅读:
    [Typescript] What is a Function Type ? Function Types and Interfaces
    [NPM] Add comments to your npm scripts
    警告: 隐式声明与内建函数‘exit’不兼容 [默认启用]
    小数循环节
    [置顶] API相关工作过往的总结之整体介绍
    [置顶] 如何运行用记事本写的java程序
    Linux进程间通信——使用共享内存
    Linux内核数据包的发送传输
    ESB 企业服务总线
    URAL 1244
  • 原文地址:https://www.cnblogs.com/shenxm/p/7862247.html
Copyright © 2011-2022 走看看