大家好,我是anyux。本文介紹mysqldump簡單備份。
設計備份策略
對於DBA管理人員來講,制定備份策略是看似的是一件不太重要的事情。但在實際過程中需要根據數據量與磁盤空間做估算
備份方式:全備、增量、時間、自動
備份週期:根據數據量。每天備份,60G數據,一個小時內完成。9T數據,使用xbk每週做全備,每天二進制日誌
備份工具:MDB(mysqldump)、XBK(PBK) perconta Xtrabackup、MEB(MySQL Enterprise Back),mysqlbinlog
邏輯備份:全備mysqldump、增量binlog(flush logs;cp log-bin;)
物理備份:全備XBK,增量XBK
檢查備份可用性
備份可用性檢查、備份空間檢查
定期的恢復演練
對於數據庫的恢復演練,需要過半年或每月進行測試恢復演習
數據恢復
通過現有的備份,將數據庫恢復到故障前的狀態,配合binlog日誌
數據遷移
同數據庫遷移是最簡單的。只是存在版本變化。比如從5.0到5.7版本的遷移。對於同一款數據庫來講,它的遷移方式還是比較簡單的
mysql -> mysql
比較麻煩的是異構數據庫之間的遷移。此處還包括了操作系統不同的遷移
其他 -> mysql
mysql -> 其他
備份的介紹
備份類型:
熱備:對於業務影響小 InnoDB
溫備:長時間鎖表備份 MyISAM
冷備:業務關閉情況下備份
備份基本參數
mysqldump命令將數據庫中的數據備份成一個文本文件。表的結構和表中的數據將存儲在生成的文本文件中。
mysqldump命令的工作原理很簡單。它先獲取數據表的結構信息,然後將創建表結構的語句寫入到sql文件中。其後將表中的所有數據轉換成一條INSERT語句。最後將這些語句,寫入到sql文件中。
備份全部數據庫
使用--all-databases ,備份所有的數據庫
也可以使用-A簡寫,來備份所有數據庫
<code> 全量備份,將數據庫系統中所有數據庫備份到/tmp/full.sql
mysqldump -uroot -proot --all-databases >/tmp/full.sql
mysqldump -uroot -proot -A >/tmp/full2.sql
查看備份文件
cat /tmp/full.sql/<code>
文件第一行說明了mysqldump工具的版本
文件第二行說明了主機名稱
文件第二行說明了數據庫服務器版本
文件中 -- 表示sql語句的單行註釋,"/*!40101"開頭表示MySQL的註釋,40101表示MySQL數據庫的版本號,如果MySQL版本低於4.1.1會被當作註釋,可以忽略
指定數據庫備份
使用--databases ,後面可以接多個參數庫名稱,可以備份多個數據庫
也可以使用-B簡寫,來備份多個數據庫
<code> mysqldump -uroot -proot --databases wordpress world > /tmp/twoDB.sql
兩條數據庫備份語句作用相同
mysqldump -uroot -proot -B wordpress world > /tmp/twoDB2.sql/<code>
指定表備份
<code> 指定表備份
mysqldump -uroot -proot world city country > /tmp/table.sql/<code>
歡迎在評論區一起討論,質疑。文章都是手打原創,每天最淺顯的介紹運維、數據庫相關的技術,喜歡我的文章就關注一波吧,可以看到最新更新和之前的文章。
閱讀更多 anyux1 的文章