個人認為percona 對mysql最大的貢獻就是它提供了mysql 的熱備份工具xtrabackup.
對於v2版本中有乙個問題是:從備份檔案中恢復資料時,對於備份前新建立的表,是無法完全利用工具恢復.frm**式檔案。(不過這並不影響使用)。(貌似網上有人已經做了修改)
由於我們預設的儲存引擎是innodb,所以直接使用innobackup 工具,每天凌晨兩點備份。今天發現備份目錄中都沒有.frm檔案。
第一步:檢視備份日誌
對於備份是否成功,我們通過郵件通知。db server 上有詳細的日誌:
innobackupex: backing up file '/usr/local/mysql/data//wpf/abc_after.trn'日誌中有詳細拷貝.frm檔案的記錄。而且沒有任何warning和error。innobackupex: backing up file '/usr/local/mysql/data//wpf/abc.frm'
innobackupex: backing up file '/usr/local/mysql/data//wpf/db.opt'
第二步:日誌沒有可用資訊,檢視監控記錄
翻看zabbix中的歷史記錄沒有異常,檢視pt-stalk中的記錄,和以前相比,沒有異常。
第三步:沒有可用記錄,懷疑備份檔案是否有問題
如果備份檔案有問題的話,可以直接報bug啦。對備份檔案拷貝至其他機器進行恢復,並新增好.frm檔案。對某張特殊表 進行時間戳,重複線上的查詢。。結果沒有問題。
第四步:檢視其他crontab 程式
由於在使用xtrabackup 之前已經經過測試,也懷疑過指令碼的問題。但已經報告備份成功而且能成功恢復。只有乙個del程式。是刪除15天之前的備份檔案。程式內容大致為:
find path -mtime +15 | xargs rm -rf但為什麼只刪除表結構檔案呢,不刪除資料檔案?難道.ibd 對於find來說是特殊檔案不刪除(這個是不可能的)。備份檔案的時間不一致? 同時備份的怎麼會不一致呢?結果發現時間真的不一樣。 資料檔案是 ibbackup 程式拷貝,時間戳是備份的時間。而 .frm檔案是innobackupex程式 未修改檔案「最後修改時間」而copy至備份檔案夾。
幸好發現的早!
del 刪除程式改為:
find path -name "2*" -mtime +15 | xargs rm -rf
xtrabackup備份說明
通過最簡單的備份事例,說明備份所包含的內容等資訊 xtrabackup backup target dir tmp backup指定用於備份,預設全備 target dir指定備份檔案目錄 生成備份目錄xtrabackup backupfiles cd xtrabackup backupfiles ...
xtrabackup 增量備份
xtrabackup 增量備份 1.完全備份準備資料夾 xtrabackup backup target dir backup base 2.進入mysql 修改資料 centos mysql mariadb hellodb use hellodb 修改資料庫 mariadb hellodb ins...
xtrabackup備份指令碼
bin sh 備份主機 remote ip 100.0.132.160 master ip 100.20.132.158 vip 100.20.132.166 備份使用者 user root 密碼password 00000 返回年月日 backup date date f 返回時分秒 backup...