您好,登錄后才能下訂單哦!
這篇文章主要介紹了mysqldump如何備份與恢復,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
一.mysqldump
mysqldump備份原理,去數據庫查詢數據,然后進行sql語句的拼接。
優點:mysql自帶,使用方便,備份結果容易操作。少量數據可以使用mysqldump
缺點:大量數據下,使用mysqldump恢復較慢,mysqldump再導入數據的時候,都是使用sql語句,需要開啟事務。不建議使用.
二.語法如下:
mysqldump [arguments] >file_name
(1).備份所有數據庫
mysqldump --all-databases >dump.sql
(2).備份指定數據庫
mysqldump --databases wwj db2 db3 >dump.sql
(3).--single-transaction 獲得備份的一致性
當啟用該參數并進行備份時,確保沒有其他任何的DDL語句執行.保證可重復讀得到備份時間點一致性的快照.
(4).--lock-tables(-l)
在備份過程中,依次鎖住備份的表。一般用于myisam引擎,用來保證一致性。對于innodb引擎不需要使用該參數。
如果同時存在innodb和myisam的表,則只能使用--lock-tables
(5).--lock-all-tables(-x)
在備份過程中,同時對所有表上鎖。
(6).--add-drop-database
在create database前先運行drop database,和-all-databases 或者 --databases一起使用
--add-drop-table
在創建table前,先刪除table
(7).--events(-E)
備份事件調度器
(8).--routines(-R)
備份存儲過程和函數
(9).--triggers
備份觸發器
(10).--hex-blob
將binary,varbinary,blog,bit列類型備份為十六進制的格式
(11).--tab=path(-T path)
產生TAB分割的數據文件。對于每張表,創建一個包含create table語句的table_name.sql文件和包含數據的tb1_name.txt文件
(12).--where='where_condition'(-w)
導出給定條件下的數據
(13).導出某數據庫中的幾個表
mysqldump -uroot -p -S /tmp/mysql3306.sock --single-transaction test emp_range> t1.sql
(14).導出表結構
--no-data, -d 不導出任何數據,只導出數據庫表結構
mysqldump -uroot -p -S /tmp/mysql3306.sock --single-transaction --all-databases -d > all.sql
(15).--ignore-table=name
不導出某個表,e.g = --ignore-table=database.table
(16).--insert-ignore
Insert rows with INSERT IGNORE
(17).--log-error=name
Append warnings and errors to given file.
(18).--master-data
mysqldump導出數據時,當這個參數的值為1的時候,mysqldump出來的文件就會包括CHANGE MASTER TO這個語句,CHANGE MASTER TO后面緊接著就是file和position的記錄,在slave上導入數據時就會執行這個語句,salve就會根據指定這個文件位置從master端復制binlog。默認情況下這個值是1 當這個值是2的時候,chang master to也是會寫到dump文件里面去的,但是這個語句是被注釋的狀態。
master-data參數在建立slave數據庫的時候會經常用到,因為這是一個比較好用的參數,默認值為1,默認情況下,會包含change master to,這個語句包含file和position的記錄始位置。master-data=2的時候,在mysqldump出來的文件包含CHANGE MASTER TO這個語句,處于被注釋狀態
(19).--no-create-info, -t 只導出數據,而不添加CREATE TABLE 語句
(20).--no-create-db, -n 只導出數據,而不添加CREATE DATABASE 語句
(21).--force,-f 在導出過程中忽略出現的SQL錯誤,當出現錯誤時仍然繼續后面的操作
--mysqldump 的恢復
(1).mysql -uroot -p
(2).source /home/mysql/test_backup.sql
或者
/usr/local/mysql/bin/mysql -uroot -p -S /tmp/mysql3306.sock < all.sql
三.邏輯備份恢復實驗
1.備份恢復所有數據庫
- 備份實例下所有數據庫
mysqldump -u root -p -S /tmp/mysql3306.sock --all-databases --add-drop-database --single-transaction > /tmp/db1.sql
- 恢復
mysql -uroot -p -S /tmp/mysql3306.sock < /tmp/db1.sql
2.備份恢復單獨的數據庫
-備份數據庫wwj
mysqldump -u root -p -S /tmp/mysql3306.sock --databases wwj --add-drop-database --single-transaction > /tmp/db2.sql
-恢復數據庫wwj
mysql -uroot -p -S /tmp/mysql3306.sock < /tmp/db2.sql
3.備份恢復某數據庫中的幾個表
-備份表wwj.t3, wwj.haha22
mysqldump -u root -p -S /tmp/mysql3306.sock --single-transaction --databases wwj --tables t3 haha22 > /tmp/db3.sql
-恢復
use wwj;
source /tmp/db3.sql;
感謝你能夠認真閱讀完這篇文章,希望小編分享的“mysqldump如何備份與恢復”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。