mysql 備份及恢複

來源:互聯網
上載者:User

標籤:

Database Backup

增量備份、差異備份區別

增量是每天相對於前一天的備份

差異是相對於完全備份的時間點

1、冷備份 離線,讀寫操作終止

2、熱備份 備份是讀寫不受影響

3、溫備份 僅可以讀操作

4、物理備份:備份資料檔案、邏輯備份:將資料匯出至文本中

5、備份內容:資料庫設定檔、資料、二進位日誌、交易記錄

6、熱備份:innoDB:xtrabackup,mysqldump

      MyISAM:溫度備份

mysql=====主從架構,離線備份

 

物理備份:速度快

邏輯備份:速度慢,丟失浮點數精度

 

7、備份策略

完全+增量 、完全+差異

一周做一次完全備份;一天做一次差異或者增量;一天一次完全+一小時差異或者增量

8、mysql 備份工具

8.1 mysqldump :邏輯備份工具、Myisam(溫備份) 、InnoDB(熱備份)

mysqlhotcopy:物理備份工具、溫備或者冷備份工具

檔案系統工具

8.2 cp :冷備

lv: 邏輯卷快照功能,幾乎熱備

mysql>flush tables;

mysql>lock tables;

建立快照、釋放鎖、而後複製資料

8.3 第三組工具

ibbackup:商業備份

xtrabackup:開源備份

 

9、備份工具操作

9.1 mysqldump(完全備份)+二進位備份 

命令:mysqldump db_name [tb1] [tb2] 備份 db_name資料庫或者 表[tb1]

mysqldump -uroot -p 資料庫名稱 > /backupdir/backup.sql

mysqldump 備份插入語句

mysql 資料庫名稱 < /backupdir/backup.sql 匯入資料庫

mysql>lock tables;

mysql>flush tables with read lock; 備份之前先鎖表 以讀的方式鎖定,在dump 備份mysql資料

 

再執行備份 mysqldump -uroot -p 資料庫名稱 > /backupdir/backup.sql

備份完成後是否鎖定

mysql> lock tables;

mysql>unlock tables;  釋放鎖定

備份二進位日誌:

msyql>flush tables with read lock; 唯讀形式鎖表

mysql>flush logs;

msyql>show binary logs; 查看二進位日誌

--master-data=n{0|1|2} 0:不記錄二進位檔案及位置

             1:以 change master to 的方式記錄位置,用於恢複後直接啟動從伺服器

             2:以change master to 方式備份,預設被注釋

 

記錄二進位記錄備份:

mysqldump -uroot -p --master-data=1 msyqldb >/back/back-date+%F-%H-%M-%S.sql

溫備份 鎖定所有表

--lock-all-tables 參數 鎖定所有表 後進行備份

mysqldump -uroot -p --lock-all-tables  --master-data=1 msyqldb >/back/back-date+%F-%H-%M-%S.sql

--flush-logs:執行日誌flush;執行備份前,日誌滾動

 

* 如果指定庫中的表類型均為InnoDB ,可以使用 --single-transaction 啟動熱備;

備份多個庫

--all-databases :備份所有庫

--databases DB—Name 備份指定庫

這兩個命令備份庫名;恢複前不用手動建立庫

備份所有庫:mysqldump -uroot -p --lock-all-tables --flush-logs --all-databases --master-data=2 >/back/dbs+%F-%H-%M-%S.sql

增量備份:備份每天的二進位日誌

10、備份策略:每周完全+每日增量

完全備份:mysqldump  msyqldump -uroot -p  --master-data=2 --flush-logs --all-databases --lock-all-tables>/back/alldatabases.sql

 

mysql>purge binary logs to ‘msyql-bin-000011‘ ;刪除‘msyql-bin-000011‘之前的 二進位日誌;

msyql>show binary logs;

增量備份:備份二進位記錄檔(flush logs)

1、mysql>flush logs; 先登入mysql 重新整理下日誌;

2、cd /mysql/data/ (此目錄為資料庫的data存放路徑) 

  cp mysql-bin-000011 /back/

 

3、或者可以另一種方式增量備份,把mysql-bin-000011 資料讀出了後進行備份

mysqlbinlog mysql-bin.000011 >/back/mon-01bin.sql

 

恢複mysql 資料庫;

假如mysql data 目錄下,被整個都刪除了;

1、cd /usr/local/mysql/ mysql安裝目錄

2、初始化mysql :scripts/mysql_install_db --user=mysql --datadir=/mydat/data/

3、啟動mysql 

4、#mysql -u root -p </back/alldatabases.sql  匯入完全備份庫

5、#mysql -u root -p </back/mon-01bin.sql  再匯入增量的二進位備份

6、再把沒有備份的最新二進位日誌匯入:#mysqlbinlog mysql-bin.000012 >/back/tu.sql

                   #mysql -uroot -p </back/tu.sql

 

 

mysql 備份指令碼:

 

mysql 備份及恢複

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.