數據庫的備份與還原系列——全備份+兩增量的備份與還原
阿新 • • 發佈:2018-03-18
完全備份 增量備份 數據還原 場景:周日全備份,周一,周二增量備份,周三出現問題,數分鐘後發現;
數據庫的安裝: 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)
數據庫的備份與還原系列——全備份+兩增量的備份與還原