X

使用 Percona innobackupex 備份 與 還原 MySQL

MySQL 的 InnoDB 只能用 mysqldump,而沒辦法使用 cp 來備份,這點可以使用 Percona 出的 innobackupex 來解決~

Percona 出很多 MySQL 的工具,可以做同步、快速備份 等等 ..

使用 Percona innobackupex 備份 MySQL

以下已經假設安裝好 Percona,所以直接安裝 xtrabackup 的套件。

  • apt-get install percona-xtrabackup

innobackupex 備份會將 DB 全部複製下來 (含 MyISAM、InnoDB.. 等等),innobackupex 會需要兩個步驟:

  1. 先將目前的複製起來
  2. sync 到目前最新的 Log 紀錄

innobackupex 備份命令 (backup)

  1. innobackupex --user=root --password=backup /home/user/2017-01-01 # 會產生 /home/user/2017-01-01/$TIMESTAMP/ 的目錄
  2. innobackupex --user=root --password=backup --apply-log /home/user/2017-01-01/$TIMESTAMP/ # 若記憶體不想吃太兇,可以使用此參數限制 --use-memory=4G
  3. 註:以上 $TIMESTAMP 按 Tab 就會直接帶入
  4. /home/user/2017-01-01/$TIMESTAMP/ # 這裡面已經是備份好的資料
  5. scp -R /home/user/2017-01-01/$TIMESTAMP/ backup_server: # 整個目錄可以直接複製即可

innobackupex 還原命令 (restore)

  1. innobackupex --copy-back /home/user/2017-01-01/$TIMESTAMP/
  2. chown -R mysql:mysql /var/lib/mysql
  3. cat /var/lib/mysql/xtrabackupbinloginfo # 這邊會有要做 replcation 所需要的資料
Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post