1. 程式人生 > 遊戲資訊 >【四葉草劇場】魔物娘版三國殺(14)

【四葉草劇場】魔物娘版三國殺(14)

資料庫備份

因資料量龐大,所以我們採用物理方式對mysql資料庫進行備份。
使用xtrabackup工具包對mysql資料庫進行物理備份:
特點:
	備份過程快速、可靠;
	備份過程不會打斷正在執行的事務;
	能夠基於壓縮等功能節約磁碟空間和流量;
	自動實現備份檢驗;
	還原速度快;

原理:

備份開始時首先會開啟一個後臺檢測程序,實時檢測mysql redo的變化,一旦發現redo中有新的日誌寫入,立刻將日誌記入後臺日誌檔案xtrabackup_log中。之後複製innodb的資料檔案和系統表空間檔案ibdata1,待複製結束後,執行flush tables with read lock操作,複製.frm,MYI,MYD,等檔案(執行flush tableswith read lock的目的是為了防止資料表發生DDL操作,並且在這一時刻獲得binlog的位置)最後會發出unlock tables,把表設定為可讀可寫狀態,最終停止xtrabackup_log。

步驟:
1、	執行備份命令
 innobackupex --user=backup --password=*** --socket=/tmp/mysqld.sock --defaults-file=/etc/my.cnf /data/backup/
2、檢查備份檔案完整性
	1)、檢視以下檔案是否存在
	backup-my.cnf、	xtrabackup_binary、xtrabackup_binlog_info 、xtrabackup_checkpoints xtrabackup_logfile  xtrabackup_info

	2)、檢查檔案
xtrabackup_checkpoints —— 備份型別(如完全或增量)、備份狀態(如是否已經為prepared狀態)和LSN(日誌序列號)範圍資訊;
xtrabackup_binlog_info —— mysql伺服器當前正在使用的二進位制日誌檔案及至備份這一刻為止二進位制日誌事件的位置。
backup-my.cnf —— 備份命令用到的配置選項資訊;
xtrabackup_info ——記錄備份的基本資訊,uuid、備份命令、備份時間、binlog、LSN、以及其他加密壓縮等資訊。

資料庫恢復

原理:

這一階段會啟動xtrabackup內嵌的innodb例項,回放xtrabackup日誌xtrabackup_log,將提交的事務資訊變更應用到innodb資料/表空間,同時回滾未提交的事務(這一過程類似innodb的例項恢復)。
步驟:
要先關閉mysql資料庫,重新命名或者刪除原資料檔案目錄都可以,再建立一個新的資料檔案目錄,將備份資料複製到新的資料檔案目錄下,賦權,修改許可權,啟動資料庫
	1、/etc/init.d/mysqld stop
	2、mv /data/mysql /data/mysql_bak
	3、mkdir /data/mysql
	4、innobackupex --apply-log /data/backup/2018-05-21_10-05-04/
	5、innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /data/backup/2018-05-21_10-05-04/
	6、chown -R mysql.mysql /data/mysql
	7、/etc/init.d/mysqld start