场景:周日全备份,周一,周二增量备份,周三出现问题,数分钟后发现;
数据库的安装: yum install mariadb-server -y systemctl start mariadb yum install percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm 在10.2的高版本上默认即时innodb_file_per_table;这里的版本是5.5,暂时没开启,需要手动写到配置文件中。 [root@mysql ~]$ vim /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 innodb_file_per_table log_bin
[root@mysql ~]$mysql < hellodb_InnoDB.sql 全备份: [root@mysql ~]$mkdir -pv /backups [root@mysql ~]$ll /backups total 0 [root@mysql ~]$innobackupex /backups/ 周一数据修改后;晚上对数据进行增量备份; MariaDB [(none)]> use hellodb; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [hellodb]> insert students(name,age,gender) values('a','28','F'); Query OK, 1 row affected (0.01 sec) [root@mysql ~]$mkdir /backups/{inc1,inc2} -pv mkdir: created directory ‘/backups/inc1’ mkdir: created directory ‘/backups/inc2’ [root@mysql ~]$innobackupex --incremental /backups/inc1/ --incremental-basedir=/backups/2018-02-25_15-21-53/ --incremental /backups/inc1/是指这是增量备份,以及备份的位置; --incremental-basedir=/backups/2018-02-25_15-21-53/是指基于哪个全备份或者增量备份的增量备份; [root@mysql ~]$ll /backups/ total 0 drwxr-x--- 6 root root 187 Feb 25 15:21 2018-02-25_15-21-53 drwxr-xr-x 3 root root 33 Feb 25 15:31 inc1 drwxr-xr-x 2 root root 6 Feb 25 15:25 inc2 [root@mysql ~]$ll /backups/inc1/ total 0 drwxr-x--- 6 root root 213 Feb 25 15:31 2018-02-25_15-31-17 周二的时候修改数据,并进行增量备份; MariaDB [hellodb]> insert students(name,age,gender) values('b','28','F'); Query OK, 1 row affected (0.01 sec) [root@mysql ~]$innobackupex --incremental /backups/inc2/ --incremental-basedir=/backups/inc1/2018-02-25_15-31-17/ [root@mysql ~]$du -sh /backups/ 23M /backups/ [root@mysql ~]$scp -pr /backups/ 192.168.27.17:/app/ [root@mysql17 ~]$ls /app/backups/ 2018-02-25_15-21-53 inc1 inc2 [root@mysql17 ~]$
数据库的还原与数据整理操作:
备份还原: 还原的过程中MySQL服务是不启动的; 数据预整理: [root@mysql17 ~]$innobackupex --apply-log --redo-only /app/backups/2018-02-25_15-21-53/ --redo-only表示有相应的增量备份; 将第一次增量备份的数据合并到完全备份中; [root@mysql17 ~]$innobackupex --apply-log --redo-only /app/backups/2018-02-25_15-21-53/ --incremental-dir=/app/backups/inc1/2018-02-25_15-31-17/ 将第二次增量备份的数据合并到完全备份中; [root@mysql17 ~]$innobackupex --apply-log --redo-only /app/backups/2018-02-25_15-21-53/ --incremental-dir=/app/backups/inc2/2018-02-25_15-34-00/ 如果数据目录非空,那么就可以删除他; [root@mysql17 ~]$ls /var/lib/mysql/ 将整理后的数据复制到数据目录中; [root@mysql17 ~]$innobackupex --copy-back /app/backups/2018-02-25_15-21-53/ [root@mysql17 ~]$ll /var/lib/mysql/ total 18444 drwxr-x--- 2 root root 146 Feb 25 02:48 hellodb -rw-r----- 1 root root 18874368 Feb 25 02:48 ibdata1 drwxr-x--- 2 root root 4096 Feb 25 02:48 mysql drwxr-x--- 2 root root 4096 Feb 25 02:48 performance_schema drwxr-x--- 2 root root 20 Feb 25 02:48 test -rw-r----- 1 root root 481 Feb 25 02:48 xtrabackup_info [root@mysql17 ~]$ [root@mysql17 ~]$chown -R mysql.mysql /var/lib/mysql/ [root@mysql17 ~]$ll /var/lib/mysql/ total 18444 drwxr-x--- 2 mysql mysql 146 Feb 25 02:48 hellodb -rw-r----- 1 mysql mysql 18874368 Feb 25 02:48 ibdata1 drwxr-x--- 2 mysql mysql 4096 Feb 25 02:48 mysql drwxr-x--- 2 mysql mysql 4096 Feb 25 02:48 performance_schema drwxr-x--- 2 mysql mysql 20 Feb 25 02:48 test -rw-r----- 1 mysql mysql 481 Feb 25 02:48 xtrabackup_info [root@mysql17 ~]$
启动数据库,核对数据库数据:
[root@mysql17 ~]$systemctl start mariadb [root@mysql17 ~]$mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 2 Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> select * from hellodb.students; +-------+---------------+-----+--------+---------+-----------+ | StuID | Name | Age | Gender | ClassID | TeacherID | +-------+---------------+-----+--------+---------+-----------+ | 1 | Shi Zhongyu | 22 | M | 2 | 3 | | 2 | Shi Potian | 22 | M | 1 | 7 | | 3 | Xie Yanke | 53 | M | 2 | 16 | | 4 | Ding Dian | 32 | M | 4 | 4 | | 5 | Yu Yutong | 26 | M | 3 | 1 | | 6 | Shi Qing | 46 | M | 5 | NULL | | 7 | Xi Ren | 19 | F | 3 | NULL | | 8 | Lin Daiyu | 17 | F | 7 | NULL | | 9 | Ren Yingying | 20 | F | 6 | NULL | | 10 | Yue Lingshan | 19 | F | 3 | NULL | | 11 | Yuan Chengzhi | 23 | M | 6 | NULL | | 12 | Wen Qingqing | 19 | F | 1 | NULL | | 13 | Tian Boguang | 33 | M | 2 | NULL | | 14 | Lu Wushuang | 17 | F | 3 | NULL | | 15 | Duan Yu | 19 | M | 4 | NULL | | 16 | Xu Zhu | 21 | M | 1 | NULL | | 17 | Lin Chong | 25 | M | 4 | NULL | | 18 | Hua Rong | 23 | M | 7 | NULL | | 19 | Xue Baochai | 18 | F | 6 | NULL | | 20 | Diao Chan | 19 | F | 7 | NULL | | 21 | Huang Yueying | 22 | F | 6 | NULL | | 22 | Xiao Qiao | 20 | F | 1 | NULL | | 23 | Ma Chao | 23 | M | 4 | NULL | | 24 | Xu Xian | 27 | M | NULL | NULL | | 25 | Sun Dasheng | 100 | M | NULL | NULL | | 26 | a | 28 | F | NULL | NULL | | 27 | b | 28 | F | NULL | NULL | +-------+---------------+-----+--------+---------+-----------+ 27 rows in set (0.01 sec)