MySQL資料庫mysqldump命令備份異常的一個案例
MySQL中的命令列mysqldump做為常用的資料備份工具,雖說效能稍差,但優在易於呼叫,從長期應用的情況來看其表現也相當穩定,並且老實講MySQL資料庫下邏輯備份確實沒有太多選擇,因此mysqldump應用極為廣泛,三思本人也是經常使用這個命令倒騰資料,整體感覺是個挺美好的東西,不過上週遭遇一次案例,認識到我對mysqldump的認識還有不足,記錄下來,供有心的朋友參考。
事情是介個樣子的,mysqldump命令常規方式建立備份拉到某機器上恢復,恢復執行很成功,一條錯誤資訊都沒看著,但等恢復完登入到資料庫中一瞅,你猜怎麼地,資料不全~~
第一反應當然是檢視備份檔案,經過檢查,果然,恢復操作確實沒有問題,因為備份集中的內容就不全,那麼,為什麼備份集內容不全呢~~
幸好原有執行場景均有記錄,分析發現,原來是在匯出某個檢視物件時報錯,mysqldump自動中止,因此所有該物件之後的就都沒備份了~
這種情況模擬重現很簡單,操作如下:
mysql> create table j1 (id int,vl varchar(100));
mysql> create view j1_view as select * from j1;
mysql> rename table j1 to j2;
mysql> rename table j1 to j2;
# mysqldump --tables j1 j1_view > bak.sql
mysqldump: Got error: 1356: View 'test.j1_v' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them when doing LOCK TABLES
建立備份時,view物件引用的表物件不存在,執行LOCK TABLES失敗,於是mysqldump就中止了,這其實真不怪mysqldump,因為mysqldump執行過程中遇到任何問題,預設情況下都是直接退出。
那麼怎麼處理這種情況呢,兩種思路:
1、修正無效的檢視,這點可以通過information_schema.views.IS_UPDATABLE列來判斷,當IS_UPDATABLE列值為NO時,說明該檢視狀態異常,需要處理了;
2、執行mysqldump時附加--force引數,該引數功能是當遇到錯誤時忽略,繼續執行後面的操作;
這個引數提供類似ORACLE資料庫中exp命令的ignore=y引數的功能,事實上在ORACLE資料庫中執行exp時通常都會指定ignore,對應到MySQL資料庫,我想在執行mysqldump命令列過程中,--force引數也應做為必備引數呼叫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-719039/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql 備份資料庫 mysqldumpMySql資料庫
- Mysql備份和還原資料庫-mysqldumpMySql資料庫
- mysqldump來備份MYSQL資料庫(指令碼)MySql資料庫指令碼
- Linux基礎命令---mysqldump資料庫備份LinuxMySql資料庫
- mysqldump 資料庫備份程式MySql資料庫
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- 使用mysqldump進行mysql資料庫備份還原MySql資料庫
- mysql資料庫備份命令大全MySql資料庫
- mysqldump使用方法(MySQL資料庫的備份與恢復)MySql資料庫
- mysql資料庫備份匯入命令MySql資料庫
- 利用MySQL全備份(mysqldump),如何只恢復一個庫或者一個表?MySql
- 一次帶庫備份異常
- 從遠端把mysql透過mysqldump備份資料庫到本地MySql資料庫
- mysqldump 進行資料備份MySql
- mysql 資料庫 備份MySql資料庫
- mysql 資料庫備份MySql資料庫
- mysql 邏輯備份 (mysqldump)MySql
- 詳解MySQL資料備份之mysqldump使用方法MySql
- MySQL資料庫的基本備份MySql資料庫
- Oracle資料庫備份、災備的23個常見問題Oracle資料庫
- innobackupex 備份MySQL資料庫MySql資料庫
- MySQL:mysqldump 匯出資料異常重啟及drop棧幀MySql
- 資料庫差異備份與增量備份的不同之處資料庫
- MySQL 5.5 mysqldump備份說明MySql
- MySQL資料庫常用的備份方法MySql資料庫
- Mysqldump備份說明及資料庫備份指令碼分享-運維筆記MySql資料庫指令碼運維筆記
- mysql的常用備份工具:mysqldump和mysqlhotcopyMySql
- 資料庫備份與異機恢復——熱備份方式資料庫
- mysql 匯入 mysqldump 備份得資料保 gone away錯誤MySqlGo
- Mysql備份失敗案例(一)MySql
- 1. 備份MySQL資料庫MySql資料庫
- Mysql資料庫自動備份MySql資料庫
- 備份mysql資料庫報告MySql資料庫
- 配置xtrabackup備份mysql資料庫MySql資料庫
- 使用innobackupex備份mysql資料庫MySql資料庫
- 使用Xtrabackup備份mysql資料庫MySql資料庫
- 10個教程教你輕鬆備份MySQL資料庫MySql資料庫
- mysqldump備份時如何保持資料的一致性MySql