這篇文章主要介紹了MySQLdump如何備份與恢復(fù),具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
公司主營業(yè)務(wù):網(wǎng)站制作、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出阿圖什免費做網(wǎng)站回饋大家。
一.mysqldump
mysqldump備份原理,去數(shù)據(jù)庫查詢數(shù)據(jù),然后進行sql語句的拼接。
優(yōu)點:mysql自帶,使用方便,備份結(jié)果容易操作。少量數(shù)據(jù)可以使用mysqldump
缺點:大量數(shù)據(jù)下,使用mysqldump恢復(fù)較慢,mysqldump再導(dǎo)入數(shù)據(jù)的時候,都是使用sql語句,需要開啟事務(wù)。不建議使用.
二.語法如下:
mysqldump [arguments] >file_name
(1).備份所有數(shù)據(jù)庫
mysqldump --all-databases >dump.sql
(2).備份指定數(shù)據(jù)庫
mysqldump --databases wwj db2 db3 >dump.sql
(3).--single-transaction 獲得備份的一致性
當(dāng)啟用該參數(shù)并進行備份時,確保沒有其他任何的DDL語句執(zhí)行.保證可重復(fù)讀得到備份時間點一致性的快照.
(4).--lock-tables(-l)
在備份過程中,依次鎖住備份的表。一般用于myisam引擎,用來保證一致性。對于innodb引擎不需要使用該參數(shù)。
如果同時存在innodb和myisam的表,則只能使用--lock-tables
(5).--lock-all-tables(-x)
在備份過程中,同時對所有表上鎖。
(6).--add-drop-database
在create database前先運行drop database,和-all-databases 或者 --databases一起使用
--add-drop-table
在創(chuàng)建table前,先刪除table
(7).--events(-E)
備份事件調(diào)度器
(8).--routines(-R)
備份存儲過程和函數(shù)
(9).--triggers
備份觸發(fā)器
(10).--hex-blob
將binary,varbinary,blog,bit列類型備份為十六進制的格式
(11).--tab=path(-T path)
產(chǎn)生TAB分割的數(shù)據(jù)文件。對于每張表,創(chuàng)建一個包含create table語句的table_name.sql文件和包含數(shù)據(jù)的tb1_name.txt文件
(12).--where='where_condition'(-w)
導(dǎo)出給定條件下的數(shù)據(jù)
(13).導(dǎo)出某數(shù)據(jù)庫中的幾個表
mysqldump -uroot -p -S /tmp/mysql3306.sock --single-transaction test emp_range> t1.sql
(14).導(dǎo)出表結(jié)構(gòu)
--no-data, -d 不導(dǎo)出任何數(shù)據(jù),只導(dǎo)出數(shù)據(jù)庫表結(jié)構(gòu)
mysqldump -uroot -p -S /tmp/mysql3306.sock --single-transaction --all-databases -d > all.sql
(15).--ignore-table=name
不導(dǎo)出某個表,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導(dǎo)出數(shù)據(jù)時,當(dāng)這個參數(shù)的值為1的時候,mysqldump出來的文件就會包括CHANGE MASTER TO這個語句,CHANGE MASTER TO后面緊接著就是file和position的記錄,在slave上導(dǎo)入數(shù)據(jù)時就會執(zhí)行這個語句,salve就會根據(jù)指定這個文件位置從master端復(fù)制binlog。默認情況下這個值是1 當(dāng)這個值是2的時候,chang master to也是會寫到dump文件里面去的,但是這個語句是被注釋的狀態(tài)。
master-data參數(shù)在建立slave數(shù)據(jù)庫的時候會經(jīng)常用到,因為這是一個比較好用的參數(shù),默認值為1,默認情況下,會包含change master to,這個語句包含file和position的記錄始位置。master-data=2的時候,在mysqldump出來的文件包含CHANGE MASTER TO這個語句,處于被注釋狀態(tài)
(19).--no-create-info, -t 只導(dǎo)出數(shù)據(jù),而不添加CREATE TABLE 語句
(20).--no-create-db, -n 只導(dǎo)出數(shù)據(jù),而不添加CREATE DATABASE 語句
(21).--force,-f 在導(dǎo)出過程中忽略出現(xiàn)的SQL錯誤,當(dāng)出現(xiàn)錯誤時仍然繼續(xù)后面的操作
--mysqldump 的恢復(fù)
(1).mysql -uroot -p
(2).source /home/mysql/test_backup.sql
或者
/usr/local/mysql/bin/mysql -uroot -p -S /tmp/mysql3306.sock < all.sql
三.邏輯備份恢復(fù)實驗
1.備份恢復(fù)所有數(shù)據(jù)庫
- 備份實例下所有數(shù)據(jù)庫
mysqldump -u root -p -S /tmp/mysql3306.sock --all-databases --add-drop-database --single-transaction > /tmp/db1.sql
- 恢復(fù)
mysql -uroot -p -S /tmp/mysql3306.sock < /tmp/db1.sql
2.備份恢復(fù)單獨的數(shù)據(jù)庫
-備份數(shù)據(jù)庫wwj
mysqldump -u root -p -S /tmp/mysql3306.sock --databases wwj --add-drop-database --single-transaction > /tmp/db2.sql
-恢復(fù)數(shù)據(jù)庫wwj
mysql -uroot -p -S /tmp/mysql3306.sock < /tmp/db2.sql
3.備份恢復(fù)某數(shù)據(jù)庫中的幾個表
-備份表wwj.t3, wwj.haha22
mysqldump -u root -p -S /tmp/mysql3306.sock --single-transaction --databases wwj --tables t3 haha22 > /tmp/db3.sql
-恢復(fù)
use wwj;
source /tmp/db3.sql;
感謝你能夠認真閱讀完這篇文章,希望小編分享的“mysqldump如何備份與恢復(fù)”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!