下文我給大家簡單講講關于mysql如何備份與恢復數據,大家之前了解過相關類似主題內容嗎?感興趣的話就一起來看看這篇文章吧,相信看完mysql如何備份與恢復數據對大家多少有點幫助吧。
mysql物理備份與邏輯備份
mysql物理備份:
mysql物理備份指拷貝整個數據庫數據存放的目錄文件(默認在/data/db_data目錄中)
特點:
簡單,速度快,但不適合memory存儲引擎(數據不保存到硬盤上),主要針對MyISAM存儲引擎,可通過scp,cp,tar等文件備份工具實現,或者mysql自帶的 mysqlhotcopy
缺點:
對應innodb的存儲引擎需要mysql企業版的備份工具mysqlbackup
mysql邏輯備份:
通過獲取數據庫結構與內容來保存數據
優點:
可以針對任何存儲引擎,在線備份,mysql自帶工具mysqldump
缺點:
速度慢(獲取數據,并轉換成指定的格式),體積大,
mysql線上備份與線下備份
mysql線上備份
不需要關閉mysql云服務器,適當的鎖表可以有效的保證備份的完整性
線下備份:
需要關閉mysql云服務器,一般發生在從庫中,以防止,主庫的正常工作
遠程備份與本地備份
遠程備份工具:mysqldump
本地備份工具:mysqldump,mysqlhotcopy
完成備份與增量備份:
完全備份:備份所有的數據庫
增量備份: 一個時間點內數據庫發生變量的備份(依靠mysql binary log) 需要開啟--log-bin( 每次重啟時都會產生一個新的二進制文件,
mysql客服端:flush logs(linux命令行 mysqladmin flush-logs)命令可以手動產生一個新的 )
備份策越:
shell> mysqldump -uroot -p --all-databases > backup_date.sql (會鎖表)
如果數據庫全是innodb引擎,可以加上--single-transaction,來保證事務也能備份,如果需要新產生一個binary log如下:
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --all-databases > backup_date.sql
為了減小空間浪費可以刪除無用的binary log文件 通過如下:
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs > backup_date.sql
當有主從的時候操作需要小心,可能從云服務器還沒更新過來
恢復通過執行以下語句:
mysql -uroot -p < backup_date.sql
或者binary log恢復
mysqlbinlog mysql-bin.000007 mysql-bin.000008 | mysql -uroot -p
mysqlbinlog 還可以設置起止時間以及位置,具體請參考Mysql手冊 或者 man mysqlbinlog
mysqldump使用說明
mysqldump [arguments] > file_name
備份所有的數據庫使用 --all-databases如
mysqldump --all-databases > dump.sql
指定數據庫
mysqldump --databases db1 db2 ...>dump.sql (如果不加--databases 文件中將不會產生 create databases 與use database 語句)
mysql> CREATE DATABASE IF NOT EXISTS db1;
mysql> USE db1;
mysql> source dump.sql
mysqldump 還有一種--tab的使用法,具體可參考手冊
如果你的存儲引擎是innodb可考慮一下參數
--events (事件)
--routines (存儲過程與函數)
--triggers (觸發器,默認包括)
也可以指定跳過通過如下參數
--skipevents, --skip-routines, or --skip-triggers
mysqldump還可以將表結構與數據分開備份如下:
--no-data 不備份數據(只備份表結構)
--no-create-info 不備份表結構(只備份數據)
shell> mysqldump --no-data test > dump-defs.sql
shell> mysqldump --no-create-info test > dump-data.sql
大家覺得mysql如何備份與恢復數據這篇文章怎么樣,是否有所收獲。如果想要了解更多相關,可以繼續關注我們的行業資訊板塊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。