2023年7月30日发(作者:)
数据备份中的物理备份(完整备份--增量备份--差异备份)物理备份: 直接复制数据库⽂件,适⽤于⼤型数据库环境,不受存储引擎的限制,但不能恢复到不同的MySQL版本。分为三部分,分别为完整备份,增量备份,差异备份完整备份每次都将所有数据(不管⾃第⼀次备份以来有没有修改过),进⾏⼀次完整的复制,备份后会清除⽂件的存档属性,⽅便⽇后增量备份或者差异备份进⾏版本⽐较。特点:占⽤空间⼤,备份速度慢,但恢复时⼀次恢复到位,恢复速度快。增量备份每次备份上⼀次备份到现在产⽣的新数据特点:因每次仅备份⾃上⼀次备份(注意是上⼀次,不是第⼀次)以来有变化的⽂件,所 以备份体积⼩,备份速度快,但是恢复的时候,需要按备份时间顺序,逐个备份版本进⾏恢 复,恢复时间长。差异备份基于完整备份来备份(只备份和完整备份不同的)特点:占⽤空间⽐增量备份⼤,⽐完整备份⼩,恢复时仅需要恢复第⼀个完整版本和最后⼀次的差异版本,恢复速度介于完整备份和增量备份之间。简单的讲,完整备份就是不管三七⼆⼗⼀,每次都把指定的备份⽬录完整的复制⼀遍,不管⽬录下的⽂件有没有变化;增量备份就是每次将之前(第⼀次、第⼆次、直到前⼀次)做过备份之后有变化的⽂件进⾏备份;差异备份就是每次都将第⼀次完整备份以来有变化的⽂件进⾏备份。做之前需要安装xtrabackup完全备份流程先创建⼀个备份的⽬录[root@mysql-server ~]# mkdir /xtrabackup/full -p然后进⾏完整备份语法 innobackupex --user=mysql⽤户 --password=mysql密码 备份⽬录[root@mysql-server ~]# innobackupex --user=root --password='123' /xtrabackup/full完全备份恢复流程1. 停⽌数据库2. 清理环境3. 重演回滚--> 恢复数据4. 修改权限5. 启动数据库1.关闭数据库:[root@mysql-server ~]# systemctl stop mysqld[root@mysql-server ~]# rm -rf /var/lib/mysql/*[.恢复之前的验证恢复:语法 innobackupex --apply-log 备份的⽬录[root@mysql-server ~]# innobackupex --apply-log /xtrabackup/full/⽬录名字3.确认数据库⽬录:恢复之前需要确认配置⽂件内有数据库⽬录指定,不然xtrabackup不知道恢复到哪⾥#cat /etc/[mysqld]datadir=/var/lib/mysql4.恢复数据:[root@mysql-server ~]# innobackupex --copy-back /xtrabackup/full/2019-08-20_11-47-49(⽬录)5.修改权限:[root@mysql-server ~]# chown /var/lib/mysql -R启动数据库:[root@mysql-server ~]# systemctl start mysqld增量备份流程完整备份⼀下模拟的周⼀,前提在⾥⾯插⼊了内容 innobackupex --user=root --password='123' /xtrabackup然后到这个⽂件⾥查看⼀下⽬录[root@mysql-server ~]# cd /xtrabackup/开始增量备份在数据库中插⼊周⼆的数据:mysql> insert into testdb.t1 values(2); #模拟周⼆周⼆—》周⼀[root@mysql-server ~]# innobackupex --user=root --password='123' --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2019-08-20_14-51-35/#语法 innobackupex --user=⽤户 --password=‘密码’ --incremental(备份到哪⾥) --incremental-basedir=(基于哪⼀次备份进⾏增量备份)增量备份恢复流程1. 停⽌数据库2. 清理环境3. 依次重演回滚redo log--> 恢复数据4. 修改权限5. 启动数据库6. binlog恢复[root@mysql-server ~]# systemctl stop mysqld[root@mysql-server ~]# rm -rf /var/lib/mysql/*[root@mysql-server ~]# innobackupex --apply-log --redo-only /xtrabackup/2019-08-20_14-51-35语法 innobackupex --apply-log(重演) --redo-only(仅仅只是验证) 指定完整备份 innobackupex --apply-log --redo-only /xtrabackup/2019-08-20_14-51-35 --incremental-dir=/xtrabackup/2019-08-20_15-04-29
#语法 innobackupex --apply-log --redo-only 指定完整备份⽬录 --incremental-dir=周⼆增量备份⽬录假如恢复周三,⽤周三的增量备份基于周⼀的回滚恢复数据:[root@mysql-server ~]# innobackupex --copy-back /xtrabackup/2019-08-20_14-51-35/恢复只恢复周⼀的就⾏了,因为回滚追加到周⼀⾥去了修改权限重新启动[root@mysql-server ~]# chown -R /var/lib/mysql[root@mysql-server ~]# systemctl start mysqld登陆验证就⾏了差异备份流程登陆数据库,准备环境mysql> create database testdb;mysql> delete from testdb.t1;mysql> insert into testdb.t1 values(1); #插⼊数据1,模拟周⼀mysql> select * from testdb.t1;1、完整备份:周⼀[root@mysql-server ~]# innobackupex --user=root --password='123' /xtrabackup2、差异备份:周⼆ —— 周三语法: # innobackupex --user=root --password=888 --incremental /xtrabackup --incremental-basedir=/xtrabackup/完全备份⽬录(周⼀)3.在登陆mysql:mysql> insert into testdb.t1 values(2); #插⼊数据2,模拟周⼆差异备份周⼆的[root@mysql-server ~]# innobackupex --user=root --password='123' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2019-08-20_15-42-02/
#备份⽬录基于周⼀的备份4.再次登陆mysqlmysql> insert into testdb.t1 values(3); #插⼊数据,模拟周三[root@mysql-server ~]# innobackupex --user=root --password='123' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2019-08-20_15-42-02/
#还是基于周⼀的备份查看⼀下备份⽬录[root@mysql-server ~]# ls /xtrabackup/差异备份恢复流程1. 停⽌数据库2. 清理环境3. 重演回滚redo log(周⼀,某次差异)--> 恢复数据4. 修改权限5. 启动数据库6. binlog恢复停⽌数据库[root@mysql-server ~]# systemctl stop mysqld[root@mysql-server ~]# rm -rf /var/lib/mysql/*恢复全量的redo log[root@mysql-server ~]# innobackupex --apply-log --redo-only /xtrabackup/2019-08-20_15-42-02/语法: # innobackupex --apply-log --redo-only /xtrabackup/完全备份⽬录(周⼀)2.恢复差异的redo log语法:# innobackupex --apply-log --redo-only /xtrabackup/完全备份⽬录(周⼀)–incremental-dir=/xtrabacku/某个差异备份这⾥我们恢复周三的差异备份[root@mysql-server ~]# innobackupex --apply-log --redo-only /xtrabackup/周⼀⽬录/ --incremental-dir=/xtrabackup/周三⽬录/#我们恢复周三的差异备份3.恢复数据语法:# innobackupex --copy-back /xtrabackup/完全备份⽬录(周⼀)[root@mysql-server ~]# innobackupex --copy-back /xtrabackup/周⼀⽬录/修改权限:[root@mysql-server ~]# chown -R /var/lib/mysql[root@mysql-server ~]# systemctl start mysqld登陆查看⼀下
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690656357a387993.html
评论列表(0条)