[root@wallet01 ~]# wget https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-6.noarch.rpm [root@wallet01 ~]# rpm -ivh percona-release-0.1-6.noarch.rpm [root@wallet01 ~]# yum install -y percona-xtrabackup-24.x86_64 [root@wallet01 ~]# xtrabackup -v xtrabackup version 2.4.13 based on MySQL server 5.7.19 Linux (x86_64) (revision id: 3e7ca7c) [root@wallet01 ~]# su - mysql [mysql@wallet01 ~]$ mysql -uroot -pabcd.1234 mysql> create user xtrabackup@'localhost' identified by 'xtrabackup'; Query OK, 0 rows affected (0.10 sec) mysql> grant reload,lock tables,replication client,process on *.* to xtrabackup@'localhost'; Query OK, 0 rows affected (0.02 sec) mysql> flush privileges; Query OK, 0 rows affected (0.03 sec) 全量備份 [mysql@wallet01 ~]$ mkdir backup [mysql@wallet01 ~]$ xtrabackup --backup --user=xtrabackup --password=xtrabackup \ --target-dir=/home/mysql/backup/`date '+%Y-%m-%d_%H-%M-%S'` [mysql@wallet01 ~]$ cd backup/2019-02-19_08-30-03 [mysql@wallet01 2019-02-19_08-30-03]$ ls -lh total 1.1G -rw-r----- 1 mysql mysql 486 Feb 19 08:30 backup-my.cnf -rw-r----- 1 mysql mysql 1.0G Feb 19 08:30 ibdata1 drwxr-x--- 2 mysql mysql 4.0K Feb 19 08:30 mysql drwxr-x--- 2 mysql mysql 4.0K Feb 19 08:30 performance_schema drwxr-x--- 2 mysql mysql 4.0K Feb 19 08:30 tpcc100 -rw-r----- 1 mysql mysql 10M Feb 19 08:30 undo001 -rw-r----- 1 mysql mysql 10M Feb 19 08:30 undo002 -rw-r----- 1 mysql mysql 10M Feb 19 08:30 undo003 -rw-r----- 1 mysql mysql 27 Feb 19 08:30 xtrabackup_binlog_info -rw-r----- 1 mysql mysql 121 Feb 19 08:30 xtrabackup_checkpoints -rw-r----- 1 mysql mysql 532 Feb 19 08:30 xtrabackup_info -rw-r----- 1 mysql mysql 14K Feb 19 08:30 xtrabackup_logfile [mysql@wallet01 2019-02-19_08-30-03]$ cat xtrabackup_checkpoints backup_type = full-backuped from_lsn = 0 to_lsn = 25333881804 last_lsn = 25333881804 compact = 0 recover_binlog_info = 0 第一次增量備份 [mysql@wallet01 ~]$ xtrabackup --backup --user=xtrabackup --password=xtrabackup \ --incremental-basedir=/home/mysql/backup/2019-02-19_08-30-03/ \ --target-dir=/home/mysql/backup/`date '+%Y-%m-%d_%H-%M-%S'` [mysql@wallet01 ~]$ cd backup/2019-02-19_09-30-29 [mysql@wallet01 2019-02-19_09-30-29]$ ls -lh total 52M -rw-r----- 1 mysql mysql 486 Feb 19 09:31 backup-my.cnf -rw-r----- 1 mysql mysql 1.7M Feb 19 09:30 ibdata1.delta -rw-r----- 1 mysql mysql 44 Feb 19 09:30 ibdata1.meta drwxr-x--- 2 mysql mysql 4.0K Feb 19 09:31 mysql drwxr-x--- 2 mysql mysql 4.0K Feb 19 09:31 performance_schema drwxr-x--- 2 mysql mysql 4.0K Feb 19 09:31 tpcc100 -rw-r----- 1 mysql mysql 2.1M Feb 19 09:30 undo001.delta -rw-r----- 1 mysql mysql 44 Feb 19 09:30 undo001.meta -rw-r----- 1 mysql mysql 2.1M Feb 19 09:30 undo002.delta -rw-r----- 1 mysql mysql 44 Feb 19 09:30 undo002.meta -rw-r----- 1 mysql mysql 2.1M Feb 19 09:30 undo003.delta -rw-r----- 1 mysql mysql 44 Feb 19 09:30 undo003.meta -rw-r----- 1 mysql mysql 26 Feb 19 09:31 xtrabackup_binlog_info -rw-r----- 1 mysql mysql 129 Feb 19 09:31 xtrabackup_checkpoints -rw-r----- 1 mysql mysql 603 Feb 19 09:31 xtrabackup_info -rw-r----- 1 mysql mysql 44M Feb 19 09:31 xtrabackup_logfile [mysql@wallet01 2019-02-19_09-30-29]$ cat xtrabackup_checkpoints backup_type = incremental from_lsn = 25333881804 to_lsn = 25489295890 last_lsn = 25530471968 compact = 0 recover_binlog_info = 0 第二次增量備份 [mysql@wallet01 ~]$ xtrabackup --backup --user=xtrabackup --password=xtrabackup \ --incremental-basedir=/home/mysql/backup/2019-02-19_09-30-29/ \ --target-dir=/home/mysql/backup/`date '+%Y-%m-%d_%H-%M-%S'` [mysql@wallet01 ~]$ cd backup/2019-02-19_10-30-09 [mysql@wallet01 2019-02-19_10-30-09]$ ls -lh total 78M -rw-r----- 1 mysql mysql 486 Feb 19 10:31 backup-my.cnf -rw-r----- 1 mysql mysql 1.7M Feb 19 10:30 ibdata1.delta -rw-r----- 1 mysql mysql 44 Feb 19 10:30 ibdata1.meta drwxr-x--- 2 mysql mysql 4.0K Feb 19 10:31 mysql drwxr-x--- 2 mysql mysql 4.0K Feb 19 10:30 performance_schema drwxr-x--- 2 mysql mysql 4.0K Feb 19 10:31 tpcc100 -rw-r----- 1 mysql mysql 2.1M Feb 19 10:30 undo001.delta -rw-r----- 1 mysql mysql 44 Feb 19 10:30 undo001.meta -rw-r----- 1 mysql mysql 2.1M Feb 19 10:30 undo002.delta -rw-r----- 1 mysql mysql 44 Feb 19 10:30 undo002.meta -rw-r----- 1 mysql mysql 2.1M Feb 19 10:30 undo003.delta -rw-r----- 1 mysql mysql 44 Feb 19 10:30 undo003.meta -rw-r----- 1 mysql mysql 26 Feb 19 10:31 xtrabackup_binlog_info -rw-r----- 1 mysql mysql 129 Feb 19 10:31 xtrabackup_checkpoints -rw-r----- 1 mysql mysql 603 Feb 19 10:31 xtrabackup_info -rw-r----- 1 mysql mysql 70M Feb 19 10:31 xtrabackup_logfile [mysql@wallet01 2019-02-19_10-30-09]$ cat xtrabackup_checkpoints backup_type = incremental from_lsn = 25489295890 to_lsn = 25668068104 last_lsn = 25732913912 compact = 0 recover_binlog_info = 0 備份二進制日誌文件 [root@wallet01 ~]# mysql -uroot -pabcd.1234 mysql> grant replication slave on *.* to 'repl'@'%' identified by 'repl'; Query OK, 0 rows affected (0.07 sec) mysql> flush privileges; Query OK, 0 rows affected (0.08 sec) mysql> show master status; +------------------+-----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+-----------+--------------+------------------+-------------------+ | mysql-bin.000236 | 123063186 | | | | +------------------+-----------+--------------+------------------+-------------------+ 1 row in set (0.02 sec) [root@wallet02 ~]# su - mysql [mysql@wallet02 ~]$ mkdir backup/binlog [mysql@wallet02 ~]$ nohup mysqlbinlog -R --raw --host=192.168.1.201 --user=repl --password=repl --port=3306 \ --stop-never mysql-bin.000230 -r /home/mysql/backup/binlog/& [mysql@wallet02 ~]$ cd backup/binlog [mysql@wallet02 binlog]$ ls -lh total 892M -rw-rw---- 1 mysql mysql 129M Feb 19 10:38 mysql-bin.000230 -rw-rw---- 1 mysql mysql 129M Feb 19 10:38 mysql-bin.000231 -rw-rw---- 1 mysql mysql 129M Feb 19 10:38 mysql-bin.000232 -rw-rw---- 1 mysql mysql 129M Feb 19 10:38 mysql-bin.000233 -rw-rw---- 1 mysql mysql 129M Feb 19 10:38 mysql-bin.000234 -rw-rw---- 1 mysql mysql 129M Feb 19 10:38 mysql-bin.000235 -rw-rw---- 1 mysql mysql 124M Feb 19 10:44 mysql-bin.000236 恢復數據庫 [root@wallet01 ~]# scp /etc/my.cnf 192.168.1.202:/etc [root@wallet01 ~]# su - mysql [mysql@wallet01 ~]$ cd backup [mysql@wallet01 backup]$ scp -r 2019-02-19_08-30-03 192.168.1.202:/home/mysql/backup [mysql@wallet01 backup]$ scp -r 2019-02-19_09-30-29 192.168.1.202:/home/mysql/backup [mysql@wallet01 backup]$ scp -r 2019-02-19_10-30-09 192.168.1.202:/home/mysql/backup [root@wallet02 ~]# wget https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-6.noarch.rpm [root@wallet02 ~]# rpm -ivh percona-release-0.1-6.noarch.rpm [root@wallet02 ~]# yum install -y percona-xtrabackup-24.x86_64 [root@wallet02 ~]# xtrabackup -v xtrabackup version 2.4.13 based on MySQL server 5.7.19 Linux (x86_64) (revision id: 3e7ca7c) [root@wallet02 ~]# su - mysql [mysql@wallet02 ~]$ xtrabackup --prepare --apply-log-only --target-dir=/home/mysql/backup/2019-02-19_08-30-03 [mysql@wallet02 ~]$ xtrabackup --prepare --apply-log-only --target-dir=/home/mysql/backup/2019-02-19_08-30-03 \ --incremental-dir=/home/mysql/backup/2019-02-19_09-30-29 [mysql@wallet02 ~]$ xtrabackup --prepare --target-dir=/home/mysql/backup/2019-02-19_08-30-03 \ --incremental-dir=/home/mysql/backup/2019-02-19_10-30-09 [mysql@wallet02 ~]$ xtrabackup --copy-back --target-dir=/home/mysql/backup/2019-02-19_08-30-03 [mysql@wallet02 ~]$ service mysqld start Starting MySQL.. SUCCESS! [mysql@wallet02 ~]$ service mysqld status SUCCESS! MySQL running (7312) [mysql@wallet02 ~]$ cd backup/2019-02-19_10-30-09 [mysql@wallet02 2019-02-19_10-30-09]$ cat xtrabackup_binlog_info mysql-bin.000236 48577021 [mysql@wallet02 ~]$ mysqlbinlog --start-position=48577021 /home/mysql/backup/binlog/mysql-bin.000236 | mysql -uroot -pabcd.1234 [mysql@wallet02 ~]$ mysql -uroot -pabcd.1234 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tpcc100 | +--------------------+ 4 rows in set (0.05 sec) 全量備份腳本 [mysql@wallet01 ~]$ vim full_backup.sh #!/bin/bash user='xtrabackup' passwd='xtrabackup' backup_dir='/home/mysql/backup' /usr/bin/xtrabackup --backup --user=$user --password=$passwd --target-dir=$backup_dir/`date '+%Y-%m-%d_%H-%M-%S'` [mysql@wallet01 ~]$ chmod a+x full_backup.sh 增量備份腳本 [mysql@wallet01 ~]$ vi incr_backup.sh #!/bin/bash user='xtrabackup' passwd='xtrabackup' backup_dir='/home/mysql/backup' last_day=$(date -d "1 days ago" +%Y-%m-%d) filename=$(find $backup_dir -name "$last_day*" -print|awk -F / '{print $NF}') /usr/bin/xtrabackup --backup --user=$user --password=$passwd --incremental-basedir=$backup_dir/$filename --target-dir=$backup_dir/`date '+%Y-%m-%d_%H-%M-%S'` [mysql@wallet01 ~]$ chmod a+x incr_backup.sh [mysql@wallet01 ~]$ crontab -e 00 3 * * 0 /home/mysql/full_backup.sh>/home/mysql/backup/full_backup.log 2>&1 00 3 * * 1-6 /home/mysql/incr_backup.sh>/home/mysql/backup/incr_backup.log 2>&1 流式和壓縮備份 [mysql@wallet01 ~]$ xtrabackup --backup --user=xtrabackup --password=xtrabackup \ --stream=tar | gzip >/home/mysql/backup/`date '+%Y-%m-%d_%H-%M-%S'`.tar.gz [mysql@wallet01 ~]$ cd backup [mysql@wallet01 backup]$ tar izxvf 2019-02-19_10-42-09.tar.gz [mysql@wallet01 backup]$ ls -lh total 1.6G -rw-rw-r-- 1 mysql mysql 515M Feb 19 10:43 2019-02-19_10-42-09.tar.gz -rw-rw---- 1 mysql mysql 423 Feb 19 10:43 backup-my.cnf -rw-rw---- 1 mysql mysql 1.0G Feb 19 10:42 ibdata1 drwxrwxr-x 2 mysql mysql 4.0K Feb 19 10:47 mysql drwxrwxr-x 2 mysql mysql 4.0K Feb 19 10:47 performance_schema drwxrwxr-x 2 mysql mysql 4.0K Feb 19 10:47 tpcc100 -rw-rw---- 1 mysql mysql 10M Feb 19 10:42 undo001 -rw-rw---- 1 mysql mysql 10M Feb 19 10:42 undo002 -rw-rw---- 1 mysql mysql 10M Feb 19 10:42 undo003 -rw-rw---- 1 mysql mysql 27 Feb 19 10:43 xtrabackup_binlog_info -rw-rw---- 1 mysql mysql 121 Feb 19 10:43 xtrabackup_checkpoints -rw-rw---- 1 mysql mysql 490 Feb 19 10:43 xtrabackup_info -rw-rw---- 1 mysql mysql 21M Feb 19 10:43 xtrabackup_logfile
【MySQL】第四章:Percona XtraBackup(備份與恢復)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.