mysql使用mysqldump備份、恢複

來源:互聯網
上載者:User

標籤:mysql   mysqldump   databases   master   全量   

  mysqldump是mysql用於轉儲存資料庫的公用程式。它主要產生一個SQL指令碼,其中包含從頭重新建立資料庫所必需的命令CREATE TABLE INSERT等mysqldump 文法 :    預設配置讀取路徑:  /etc/mysql/my.cnf     /etc/my.cnf    ~/.my.cnf           Usage: mysqldump [OPTIONS] database [tables]          OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]          OR     mysqldump [OPTIONS] --all-databases [OPTIONS]    常用參數 :          -u, --user=name               指定使用者         -h, --host=name               指定主機         -p, --password[=name]         指定密碼         -A, --all-databases           指定所有庫,-A與--all-databases不同時使用         -B, --databases               只指定--databases表示備份單個資料庫;多資料庫之間使用空格隔開;如果不指定--databases表示備份整個資料庫;只指定dbname表示備份單張表;多表之間使用空格隔開        --master-data[=#]             0 表示關閉,預設值為 0                                       1 表示開頭列印CHANGE MASTER命令資訊,在複製情境中有用                                       2 表示添加註釋資訊,記錄當前所處二進位日誌及所處位置         --single-transaction          如果全部為 InnoDB引擎表,則不需要使用 --lock-all-tables;基於此選項能實現熱備InnoDB表;會啟動單個大事務,對全域服務影響可能是持久的        --lock-all-tables             執行備份前請求鎖定表,一般只鎖定當前要備份的資料庫及表         --add-drop-database           在恢複之前先刪除已經存在的對應資料庫         --add-drop-table              在恢複之前先刪除已經存在的對應表         -C, --compress                將資料先壓縮後通過網路傳輸         -E, --events                  備份資料同時,備份事件調度器代碼         -R, --routines                備份資料同時,備份預存程序和儲存函數         -d, --no-data                 表示只備份表結構不備份資料,複製表結構、空庫至其它伺服器時有用.其它任何時候不可用          --opt                         同時啟動各種進階選項    備份方式 :       全量+增量+二進位日誌           前提需要在配置中添加參數 :               default-storage-engine = InnoDB       設定預設儲存引擎為InnoDB               innodb_file_per_table=1               設定每表單個資料表空間               log-bin=mysql-bin                     啟用二進位功能                  備份過程 :          全量備份 :              使用InnoDB引擎,備份使用--single-transaction選項不需要鎖定表即實現熱備;使用非InnoDB引擎,備份需要使用--lock-all-tables選項進行請求鎖定所有表後開始備份             mysqldump -uroot -pmypass  --single-transaction  --all-databases --master-data=2  > /backup/mysql_fullbak.sql         增量備份 :             mysql> SHOW MASTER STATUS;           查看當前處於哪個記錄檔及位置                     less  /backup/mysql_fullbak.sql      查看從哪個位置開始             mysqlbinlog --start-position=4579 --stop-position=4868 mysql-bin.000015 > /backup/increment.sql  指定開始及結束位置匯出成增量備份          二進位記錄備份:            mysql> INSERT INTO test (Name,Age) VALUES (‘tom‘,18);          增量備份後,插入一條資料           mysql> DROP DATABASE hello;                                    此時刪除資料庫           mysql> SHOW MASTER STATUS;                                     查看當前處於哪個記錄檔及位置           mysqlbinlog --start-position=4868 mysql-bin.000015             查看資料庫崩潰前二進位日誌開始位置,結束位置必須是資料庫刪除之前位置           mysqlbinlog --start-position=4868 --stop-position=5062 mysql-bin.000015 > /tmp/hello.sql    將二進位日誌啟動時位置至崩潰前位置資料匯出   恢複過程 :        前提 : 清空資料目錄下所有檔案,重新初始化資料庫          mysql> SET GLOBAL sql_log_bin=0;        恢複時需要臨時關閉二進位日誌,如不關閉,恢複資料將記錄進二進位日誌增加日誌管理難度         mysql> FLUSH LOGS;                      手動對二進位日誌進行一次滾動         mysql <  /backup/mysql_fullbak.sql      恢複全量備份         mysql <  /backup/increment.sql          恢複增量備份         mysql <  /tmp/hello.sql                 恢複崩潰前置出位元據       恢複後需要使用 mysqlcheck -c  --all-databases  檢查所有表是否存在問題,所有恢複完成後請記得對資料庫做一次全量備份.    至此,使用mysqldump備份恢複完成,如有錯誤請大家指教!


本文出自 “Why no !” 部落格,請務必保留此出處http://mydove.blog.51cto.com/8487472/1790005

mysql使用mysqldump備份、恢複

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.