久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql物理備份利器xtrabackup怎么用

146次閱讀
沒有評論

共計 8608 個字符,預計需要花費 22 分鐘才能閱讀完成。

今天就跟大家聊聊有關 mysql 物理備份利器 xtrabackup 怎么用,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

安裝

cd /opt/

tar -zxvf percona-xtrabackup-2.4.7-Linux-x86_64.tar.gz

ln -s /opt/percona-xtrabackup-2.4.7-Linux-x86_64 /usr/local/xtrabackup

Xtrabackup 工具介紹

安裝 XtraBackup 后,其實會有幾個工具:

innobackupex:這個是其實是下面三個工具的一個 perl 腳本封裝,可以備份 MyISAM, InnoDB, XtraDB 表。但在處理 Myisam 時需要加一個讀鎖。

xtrabackup:一個由 C 編譯而來的二進制文件,只能備份 InnoDB 和 XtraDB 數據。

xbcrypt:用來加密或解密備份的數據。

xbstream:用來解壓或壓縮 xbstream 格式的壓縮文件。

innobackupex 使用方法

完整的選項使用請執行 innobackupex –help,這里只介紹使用常用的選項進行完整備份及增量備份和還原。

–defaults-file 數據庫的配置文件路徑

–apply-log 在備份的基礎上應用日志,把數據處理 crash 狀態的不一致通過 apply-log 修復成一致的狀態。

–copy-back 從備份目錄拷貝數據,索引,日志到 my.cnf 文件里規定的初始位置。

–no-timestamp 創建備份時不自動生成時間目錄,可以自定義備份目錄名

–databases 用于指定要備份的數據庫, 多個庫文件使用方法:“database1 database2″

–incremental 在全備份的基礎上進行增量備份,后跟增量備份存貯目錄路徑

–incremental-basedir=DIRECTORY 增量備份所需要的全備份路徑目錄或上次做增量備份的目錄路徑

–incremental-dir=DIRECTORY 增量備份存貯的目錄路徑

–redo-only 用于準備增量備份內容把數據合并到全備份目錄,配合–incremental-dir 增量備份目錄使用。

–force-non-empty-directories 如果是特定庫備份還原,不需要刪掉整個 mysql 目錄,只是特定庫的及相關文件就可以,還原時加上此參數就不會報錯。

全量備份與恢復

全量備份

#mkdir -p /data/mysql_backup/full_backup/

#/usr/local/xtrabackup/bin/innobackupex –defaults-file=/data/mysql/mysql3306/my3306.cnf  –user=root –password=root /data/mysql_backup/full_backup/

#[root@mytest7 2017-06-19_17-15-48]# pwd

/data/mysql_backup/full_backup/2017-06-19_17-15-48

[root@mytest7 2017-06-19_17-15-48]# ll

total 1048628

-rw-r—– 1 root root        433 Jun 19 17:16 backup-my.cnf

-rw-r—– 1 root root        584 Jun 19 17:16 ib_buffer_pool

-rw-r—– 1 root root 1073741824 Jun 19 17:16 ibdata1

drwxr-x— 2 root root       4096 Jun 19 17:16 mysql

drwxr-x— 2 root root         89 Jun 19 17:16 percona

drwxr-x— 2 root root       8192 Jun 19 17:16 performance_schema

drwxr-x— 2 root root        129 Jun 19 17:16 reptest

drwxr-x— 2 root root       8192 Jun 19 17:16 sys

-rw-r—– 1 root root         66 Jun 19 17:16 xtrabackup_binlog_info

-rw-r—– 1 root root        113 Jun 19 17:16 xtrabackup_checkpoints

-rw-r—– 1 root root        611 Jun 19 17:16 xtrabackup_info

-rw-r—– 1 root root       2560 Jun 19 17:16 xtrabackup_logfile

全量恢復

#kill -9 `pidof mysqld`

#mv /data/mysql/mysql3306/data /data/mysql/mysql3306/data_bak

#mkdir -p /data/mysql/mysql3306/data

#/usr/local/xtrabackup/bin/innobackupex –apply-log /data/mysql_backup/full_backup/2017-06-19_17-15-48 –user=root –password=root

#/usr/local/xtrabackup/bin/innobackupex –defaults-file=/data/mysql/mysql3306/my3306.cnf –copy-back /data/mysql_backup/full_backup/2017-06-19_17-15-48/

#chown -R mysql.mysql /data/mysql/mysql3306/data/

#/usr/local/mysql/bin/mysqld –defaults-file=/data/mysql/mysql3306/my3306.cnf

壓縮備份

#/usr/local/xtrabackup/bin/innobackupex –defaults-file=/data/mysql/mysql3306/my3306.cnf  –user=root –password=root –no-timestamp –stream=tar ./ | gzip /data/mysql_backup/full_backup/db_$(date +%F).tar.gz

– 壓縮備份應用時需先解壓,才能應用,使用方法和一般備份同樣使用

#mkdir -p /data/mysql_backup/full_backup/db_$(date +%F)

#tar -zxf /data/mysql_backup/full_backup/db_$(date +%F).tar.gz -C /data/mysql_backup/full_backup/db_$(date +%F)

單庫備份沒有太大意義,xtrabackup 恢復需要保證 datadir 為空,可以備份單表或者多表,恢復的原理和 innodb 表空間傳輸很像

增量備份與恢復

– 先進行全備

#/usr/local/xtrabackup/bin/innobackupex –defaults-file=/data/mysql/mysql3306/my3306.cnf  –user=root –password=root /data/mysql_backup/full_backup/

# ll /data/mysql_backup/full_backup/2017-06-20_15-21-57

total 1048628

-rw-r—– 1 root root        433 Jun 20 15:22 backup-my.cnf

-rw-r—– 1 root root        584 Jun 20 15:22 ib_buffer_pool

-rw-r—– 1 root root 1073741824 Jun 20 15:22 ibdata1

drwxr-x— 2 root root       4096 Jun 20 15:22 mysql

drwxr-x— 2 root root         89 Jun 20 15:22 percona

drwxr-x— 2 root root       8192 Jun 20 15:22 performance_schema

drwxr-x— 2 root root        129 Jun 20 15:22 reptest

drwxr-x— 2 root root       8192 Jun 20 15:22 sys

-rw-r—– 1 root root         64 Jun 20 15:22 xtrabackup_binlog_info

-rw-r—– 1 root root        113 Jun 20 15:22 xtrabackup_checkpoints

-rw-r—– 1 root root        609 Jun 20 15:22 xtrabackup_info

-rw-r—– 1 root root       2560 Jun 20 15:22 xtrabackup_logfile

# mysql -uroot -proot -S /data/mysql/mysql3306/tmp/mysql3306.sock

mysql select * from reptest.t1;

+—-+——+

| id | name |

+—-+——+

|  1 | yyyy |

|  2 | yyyy |

|  3 | cc   |

|  4 | yyyy |

|  5 | yyyy |

+—-+——+

5 rows in set (0.05 sec)

mysql insert into reptest.t1 values (11, zz

Query OK, 1 row affected (0.12 sec)

– 第一次增量備份

# mkdir /data/mysql_backup/incre_backup

#/usr/local/xtrabackup/bin/innobackupex  –incremental /data/mysql_backup/incre_backup –incremental-basedir=/data/mysql_backup/full_backup/2017-06-20_15-21-57 –user=root –password=root –socket=/data/mysql/mysql3306/tmp/mysql3306.sock

#ll /data/mysql_backup/incre_backup/2017-06-20_15-46-16

total 108

-rw-r—– 1 root root   427 Jun 20 15:46 backup-my.cnf

-rw-r—– 1 root root   584 Jun 20 15:46 ib_buffer_pool

-rw-r—– 1 root root 49152 Jun 20 15:46 ibdata1.delta

-rw-r—– 1 root root    44 Jun 20 15:46 ibdata1.meta

drwxr-x— 2 root root  4096 Jun 20 15:46 mysql

drwxr-x— 2 root root   146 Jun 20 15:46 percona

drwxr-x— 2 root root  8192 Jun 20 15:46 performance_schema

drwxr-x— 2 root root  4096 Jun 20 15:46 reptest

drwxr-x— 2 root root  8192 Jun 20 15:46 sys

-rw-r—– 1 root root   104 Jun 20 15:46 xtrabackup_binlog_info

-rw-r—– 1 root root   117 Jun 20 15:46 xtrabackup_checkpoints

-rw-r—– 1 root root   743 Jun 20 15:46 xtrabackup_info

-rw-r—– 1 root root  2560 Jun 20 15:46 xtrabackup_logfile

mysql insert into reptest.t1 values (12, ww

Query OK, 1 row affected (0.00 sec)

mysql select * from reptest.t1;

+—-+——+

| id | name |

+—-+——+

|  1 | yyyy |

|  2 | yyyy |

|  3 | cc   |

|  4 | yyyy |

|  5 | yyyy |

| 11 | zz   |

| 12 | ww   |

+—-+——+

7 rows in set (0.00 sec)

– 第二次增量備份(–incremental-basedir 可以是上次全量備份文件,也可以是第一次增量備份文件)

#/usr/local/xtrabackup/bin/innobackupex  –incremental /data/mysql_backup/incre_backup –incremental-basedir=/data/mysql_backup/full_backup/2017-06-20_15-21-57 –user=root –password=root –socket=/data/mysql/mysql3306/tmp/mysql3306.sock

#ll /data/mysql_backup/incre_backup/2017-06-20_15-51-49

total 188

-rw-r—– 1 root root    427 Jun 20 15:52 backup-my.cnf

-rw-r—– 1 root root    584 Jun 20 15:52 ib_buffer_pool

-rw-r—– 1 root root 131072 Jun 20 15:51 ibdata1.delta

-rw-r—– 1 root root     44 Jun 20 15:51 ibdata1.meta

drwxr-x— 2 root root   4096 Jun 20 15:51 mysql

drwxr-x— 2 root root    146 Jun 20 15:52 percona

drwxr-x— 2 root root   8192 Jun 20 15:52 performance_schema

drwxr-x— 2 root root   4096 Jun 20 15:52 reptest

drwxr-x— 2 root root   8192 Jun 20 15:52 sys

-rw-r—– 1 root root    106 Jun 20 15:52 xtrabackup_binlog_info

-rw-r—– 1 root root    117 Jun 20 15:52 xtrabackup_checkpoints

-rw-r—– 1 root root    745 Jun 20 15:52 xtrabackup_info

-rw-r—– 1 root root   2560 Jun 20 15:52 xtrabackup_logfile

– 恢復到第一次增量備份

#kill -9 `pidof mysqld`

#mv /data/mysql/mysql3306/data /data/mysql/mysql3306/data_bak

#mkdir -p /data/mysql/mysql3306/data

– 應用全備

#/usr/local/xtrabackup/bin/innobackupex –apply-log –redo-only /data/mysql_backup/full_backup/2017-06-20_15-21-57 –user=root –password=root

– 合并第一次增量備份

#/usr/local/xtrabackup/bin/innobackupex –apply-log –redo-only /data/mysql_backup/full_backup/2017-06-20_15-21-57 –incremental-dir=/data/mysql_backup/incre_backup/2017-06-20_15-46-16   –user=root –password=root

– 應用日志(與全量恢復一樣)

#/usr/local/xtrabackup/bin/innobackupex –apply-log  /data/mysql_backup/full_backup/2017-06-20_15-21-57 –user=root –password=root

– 恢復數據(與全量恢復一樣)

#/usr/local/xtrabackup/bin/innobackupex –defaults-file=/data/mysql/mysql3306/my3306.cnf –copy-back /data/mysql_backup/full_backup/2017-06-20_15-21-57

#chown -R mysql.mysql /data/mysql/mysql3306/data/

#/usr/local/mysql/bin/mysqld –defaults-file=/data/mysql/mysql3306/my3306.cnf

# mysql -uroot -proot -S /data/mysql/mysql3306/tmp/mysql3306.sock

mysql select * from reptest.t1;

+—-+——+

| id | name |

+—-+——+

|  1 | yyyy |

|  2 | yyyy |

|  3 | cc   |

|  4 | yyyy |

|  5 | yyyy |

| 11 | zz   |

+—-+——+

6 rows in set (0.00 sec)

此時的數據恢復到了第一次備份的時候

– 恢復到第二次增量備份

#kill -9 `pidof mysqld`

#mv /data/mysql/mysql3306/data /data/mysql/mysql3306/data_bak2

#mkdir -p /data/mysql/mysql3306/data

– 應用全備

#/usr/local/xtrabackup/bin/innobackupex –apply-log –redo-only /data/mysql_backup/full_backup/2017-06-20_15-21-57 –user=root –password=root

– 合并第一次增量備份

#/usr/local/xtrabackup/bin/innobackupex –apply-log –redo-only /data/mysql_backup/full_backup/2017-06-20_15-21-57 –incremental-dir=/data/mysql_backup/incre_backup/2017-06-20_15-46-16   –user=root –password=root

– 合并第二次增量備份

#/usr/local/xtrabackup/bin/innobackupex –apply-log –redo-only /data/mysql_backup/full_backup/2017-06-20_15-21-57 –incremental-dir=/data/mysql_backup/incre_backup/2017-06-20_15-51-49   –user=root –password=root

– 應用日志(與全量恢復一樣)

#/usr/local/xtrabackup/bin/innobackupex –apply-log  /data/mysql_backup/full_backup/2017-06-20_15-21-57 –user=root –password=root

– 恢復數據(與全量恢復一樣)

#/usr/local/xtrabackup/bin/innobackupex –defaults-file=/data/mysql/mysql3306/my3306.cnf –copy-back /data/mysql_backup/full_backup/2017-06-20_15-21-57

#chown -R mysql.mysql /data/mysql/mysql3306/data/

#/usr/local/mysql/bin/mysqld –defaults-file=/data/mysql/mysql3306/my3306.cnf

多合并一次增量備份即可

建議使用 xtrabackup 全量備份 +binlog 日志備份指定備份方案,增量備份可能需要應用多個文件,容易出錯,

并且只能恢復到全量備份點和增量備份點,無法恢復到中間點,而現實生產中,多數在中間點。

看完上述內容,你們對 mysql 物理備份利器 xtrabackup 怎么用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-19發表,共計8608字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 滦平县| 左权县| 晋州市| 平湖市| 精河县| 崇州市| 金坛市| 枣庄市| 安阳县| 习水县| 英德市| 北票市| 墨竹工卡县| 焦作市| 特克斯县| 广元市| 阿坝县| 繁昌县| 曲阜市| 满城县| 松溪县| 桐梓县| 金堂县| 中阳县| 赤峰市| 民和| 营口市| 蒙阴县| 连云港市| 全州县| 增城市| 石渠县| 安阳县| 衢州市| 建瓯市| 河东区| 莎车县| 德庆县| 定南县| 清镇市| 景宁|