Mysql物理备份(完全备份,增量备份,差异备份)

1.安装xtrbackup

官网:www.percona.com

# wget http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
# rpm -ivh percona-release-0.1-4.noarch.rpm
[root@mysql-server yum.repos.d]# vim percona-release.repo

 修改如下内容:将原来的1改为0

 

[root@mysql-server yum.repos.d]# yum -y install percona-xtrabackup-24.x86_64

 2.实验环境

     1.周一:全量备份 周二:增量备份 周三增量备份 周四差异备份

     2.mkdir /backup

        mkdir /backup/full      //存放全量备份

        mkdir /backup/add    //存放增量备份 

        mkdir /backup/chayi  //存放差异备份

 3.实验步骤

 3.1 进入mysql创建实验库实验表

mysql> create database backup default charset utf8;
mysql> create table work(
mysql> id int,
mysql> age varchar(10),
mysql> time varchar(50));
#插入一条默认数据当做全备内容
mysql> insert into work values(1,'一','星期一');
mysql> quit





 3.2制作全量备份

[root@mysql ~]# innobackupex --user=root --password=123 /backup/full/
[root@mysql ~]# cd /backup/
[root@mysql backup]# cd full
#查看全量备份
[root@mysql full]# ll
total 0
drwxr-x--- 7 root root 251 Nov 18 18:43 2023-11-18_18-43-20


 3.3制作周二增量备份

 

#进入mysql先插入周二的增量数据
mysql> insert into backup.work values(2,'二','星期二');
mysql> select * from backup.work
    -> ;
+------+------+-----------+
| id   | age  | time      |
+------+------+-----------+
|    1 | 一   | 星期一    |
|    2 | 二   | 星期二    |
+------+------+-----------+
2 rows in set (0.00 sec)
mysql> quit


#制作周二增量备份
[root@mysql backup]# innobackupex --user=root --password=123 --incremental /backup/add --incremental-basedir=/backup/full/2023-11-18_18-43-20/
  #查看增量备份好的
[root@mysql backup]# ll /backup/add
total 0
drwxr-x--- 7 root root 277 Nov 18 18:57 2023-11-18_18-57-21

 3.4制作周三增量备份

#进入mysql插入周三数据
mysql> insert into backup.work values(3,'三','星期三');
Query OK, 1 row affected (0.00 sec)
mysql> select * from backup.work;
+------+------+-----------+
| id   | age  | time      |
+------+------+-----------+
|    1 | 一   | 星期一    |
|    2 | 二   | 星期二    |
|    3 | 三   | 星期三    |
+------+------+-----------+
3 rows in set (0.00 sec)
mysql> quit


#制作周三基于周二数据的增量备份
[root@mysql backup]# innobackupex --user=root --password=123 --incremental /backup/add --incremental-basedir=/backup/add/2023-11-18_18-57-21/

#查看周三增量备份知否完成
[root@mysql backup]# ll /backup/add/
total 0
drwxr-x--- 7 root root 277 Nov 18 18:57 2023-11-18_18-57-21
drwxr-x--- 7 root root 277 Nov 18 19:01 2023-11-18_19-01-16



 3.5制作周四差异备份(基于上一次全量备份)

#插入周四的数据做差异备份
mysql> insert into backup.work values(4,'四','星期四');
Query OK, 1 row affected (0.00 sec)
mysql> select * from backup.work;
+------+------+-----------+
| id   | age  | time      |
+------+------+-----------+
|    1 | 一   | 星期一    |
|    2 | 二   | 星期二    |
|    3 | 三   | 星期三    |
|    4 | 四   | 星期四    |
+------+------+-----------+
4 rows in set (0.00 sec)
mysql> quit

#基于上一次全量备份做差异备份
[root@mysql backup]# innobackupex --user=root --password=123 --incremental /backup/chayi --incremental-basedir=/backup/full/2023-11-18_18-43-20/
#查看差异数据
[root@mysql backup]# ll /backup/chayi/
total 0
drwxr-x--- 7 root root 277 Nov 18 19:08 2023-11-18_19-08-46





 3.6模拟数据丢失恢复(重演回滚)

 3.6.1 关闭数据库

[root@mysql ~]# systemctl stop mysqld

 3.6.2 删除mysql数据目录的所有东西

#cd到数据存放目录然后删除
[root@mysql ~]# cd /var/lib/mysql
[root@mysql mysql]# ll
total 188516
-rw-r----- 1 mysql mysql       56 Oct 21 16:02 auto.cnf
drwxr-x--- 2 mysql mysql       52 Nov 18 18:35 backup
-rw------- 1 mysql mysql     1680 Oct 21 15:29 ca-key.pem
-rw-r--r-- 1 mysql mysql     1112 Oct 21 15:29 ca.pem
-rw-r--r-- 1 mysql mysql     1112 Oct 21 15:29 client-cert.pem
-rw------- 1 mysql mysql     1676 Oct 21 15:29 client-key.pem
-rw-r----- 1 mysql mysql     6828 Nov 17 18:27 ib_buffer_pool
-rw-r----- 1 mysql mysql 79691776 Nov 18 19:15 ibdata1
-rw-r----- 1 mysql mysql 50331648 Nov 18 19:15 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Nov 18 19:15 ib_logfile1
-rw-r----- 1 mysql mysql 12582912 Nov 18 19:15 ibtmp1
drwxr-x--- 2 mysql mysql     4096 Oct 21 15:29 mysql
srwxrwxrwx 1 mysql mysql        0 Nov 18 09:02 mysql.sock
-rw------- 1 mysql mysql        5 Nov 18 09:02 mysql.sock.lock
drwxr-x--- 2 mysql mysql     8192 Oct 21 15:29 performance_schema
-rw------- 1 mysql mysql     1676 Oct 21 15:29 private_key.pem
-rw-r--r-- 1 mysql mysql      452 Oct 21 15:29 public_key.pem
-rw-r--r-- 1 mysql mysql     1112 Oct 21 15:29 server-cert.pem
-rw------- 1 mysql mysql     1676 Oct 21 15:29 server-key.pem
drwxr-x--- 2 mysql mysql     8192 Oct 21 15:29 sys
-rw-r----- 1 mysql mysql      499 Oct 21 15:29 xtrabackup_info
-rw-r----- 1 mysql mysql        1 Oct 21 15:29 xtrabackup_master_key_id
drwxr-x--- 2 mysql mysql    12288 Nov 17 17:13 zabbix

[root@mysql mysql]# rm -rf *

 3.6.3 第一步先回滚全量备份

[root@mysql ~]# innobackupex --apply-log  --redo-only /backup/full/2023-11-18_18-43-20/

 3.6.4 第二步直接回滚差异备份到全量备份(因为差异备份包括增量备份所以不需要回滚增量备份)

[root@mysql ~]# innobackupex --apply-log --redo-only /backup/full/2023-11-18_18-43-20/ --incremental-dir=/backup/chayi/2023-11-18_19-08-46/

 3.6.5 恢复数据

[root@mysql ~]# innobackupex --copy-back /backup/full/2023-11-18_18-43-20/

#查看数据是否恢复
[root@mysql ~]# cd /var/lib/mysql
[root@mysql mysql]# ll
total 77888
drwxr-x--- 2 root root       52 Nov 18 19:24 backup
-rw-r----- 1 root root     6828 Nov 18 19:24 ib_buffer_pool
-rw-r----- 1 root root 79691776 Nov 18 19:24 ibdata1
drwxr-x--- 2 root root     4096 Nov 18 19:24 mysql
drwxr-x--- 2 root root     8192 Nov 18 19:24 performance_schema
drwxr-x--- 2 root root     8192 Nov 18 19:24 sys
-rw-r----- 1 root root       26 Nov 18 19:24 xtrabackup_binlog_pos_innodb
-rw-r----- 1 root root      555 Nov 18 19:24 xtrabackup_info
-rw-r----- 1 root root        1 Nov 18 19:24 xtrabackup_master_key_id
drwxr-x--- 2 root root    12288 Nov 18 19:24 zabbix


#修改属主和属组为mysql
[root@mysql mysql]# chown mysql.mysql /var/lib/mysql -R

 3.6.6 重启mysql查看数据

systemctl start mysqld

 4.实验完成.

 

 

  • 12
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值