mysqldump 參數解析(詳細)

目錄

DDL Options

Replication Options

Format Options

Filtering Options

Transactional Options

總結


DDL Options

--add-drop-database

default: false

在創建每個數據庫語句之前編寫一個DROP(if exists)數據庫語句. 這個選項通常和“--all-databases“或”--databases”選項一起使用,因爲除非指定了其中的一個選項,否則在導出的SQL文件中不會編寫 create database 語句。

--add-drop-table

default:true

在創建每個表前添加一個 DROP(if exists) table 語句  ----【體現在導入的SQL文件中】

--add-drop-trigger

default:false

在每個創建觸發器語句之前編寫一個DROP觸發器語句。

--all-tablespaces ,  -Y

default:false

將創建NDB表使用的任何表空間所需的所有SQL語句添加到表dump文件中。在mysqldump的輸出中沒有包含此信息。這個選項目前只與NDB集羣表相關,MySQL 5.7不支持NDB集羣表。

--no-create-db , -n

default:false

如果給定“--databases”或“--all-databases”選項,則禁止輸出中包含CREATE DATABASE語句。

如果未指定 -B 或 -A 選項,則輸出中也沒有 CREATE DATABASE 語句。

--no-create-info , -t

default:false

不導出表結構:無 create table 語句。

但是此選項可以導出創建日誌文件組或表空間的語句;您可以爲此使用--no-tablespaces選項來禁止導出。

--no-tablespaces , -y

default:FALSE

該選項不輸出CREATE LOGFILE GROUP and CREATE TABLESPACE 語句。

--replace

default:false

用replace 替換SQL文件中的 insert

--force, -f

default:false

忽略所有error,此選項比--ignore-error 優先級高。

--default-character-set=charset_name

使用charset_name作爲默認字符集,mysqldump默認使用utf8.

Replication Options

--apply-slave-statements

對使用--dump-slave選項生成的SQL文件中,會在change master to 語句之前添加 stop slave 語句,並在輸出末尾添加   start slave 語句。

--delete-master-logs

在主複製服務器上,執行完dump操作之後,會向服務器發送 PURGE BINARY LOGS 語句清除binlog。此選項自動啓用--master-data

--dump-slave

會在dump後的SQL文件中,添加 change master to 語句,該語句指定被轉儲從的binlog文件名和位置。

從SHOW SLAVE STATUS輸出中讀取Relay_Master_Log_File和Exec_Master_Log_Pos的值,分別用於MASTER_LOG_FILE和MASTER_LOG_POS。這些是主服務器的文件名和位置,從服務器開始複製。

--master-data

使用此選項dump a master replication server到dump文件,可用於設立另一臺服務器作爲master的slave。它會使dump輸出包含CHANGE MASTER TO語句,標記dump源的二進制日誌座標(文件名和位置)。在把load dump文件加載到slave之後,slave應當從該master座標開始複製。

如果選項賦值爲2,那麼CHANGE MASTER TO 語句會被寫成一個SQL comment(註釋),從而只提供信息; 

如果選項賦值爲1,那麼語句不會被寫成註釋並且在dump被載入時生效。

如果沒有指定,默認值爲1。

--set-gtid-purged=ON/OFF

如果轉儲文件包含系統表,則不建議在服務器gtid_mode= on時加載轉儲文件.

如果不設置 --set-gtid-purged=OFF 這個參數,最終的備份文件中會有這樣一句話:SET @@GLOBAL.GTID_PURGED='5adbcab4-fcbb-11e7-a900-000c29e774f1:1-347';這個的區間是主庫中當前所完成的所有事務號。這條語句在備份被恢復的時候,起到的作用是,不再從主庫同步1-347 這個範圍內的事務了。如果我們不是主從之間的轉儲,我們不應該阻止該庫同步1-347全部區間的數據。因此部分備份是加上--set-gtid-purged=OFF 這句,不強行指定跳過這些操作.

Format Options

--hex-blob

使用十六進制表示法轉儲二進制列

--xml

轉儲爲xml格式

Filtering Options

--all-databases , -A

dump 所有數據庫。

--database ,-B

dump 指定數據庫 ,可以指定一個或多個。

--tables

mysqldump將該選項後面的所有名稱參數都視爲表名。

--events ,-E

dump 服務器事件。須有event權限。

--ignore-table=db_name.tal_name

不要dump給定的表,必須使用數據庫名和表名指定給定的表。若要忽略多個表,請多次使用此選項。這個選項也可以用來忽略視圖。

--no-data , -d

不導出數據

--triggers

導出表的觸發器,默認啓動。可以用 --skip-triggers 禁用。

--where=''   , -w  ''

只dump由where選擇的行,如果條件中包含特殊字符,須在條件周圍加上引號。

--insert-ignore

出現主鍵重複但使用了ignore則錯誤被忽略,數據不變。

--opt

提供了快速dump操作,默認開啓。可通過 --skip-opt 關閉。

Transactional Options

--flush-logs , -F

切換一下binlog file。

在開始dump前,flush 一個新的binlog file。此選項適用於爲備份恢復加一個保險。

--single-transaction

不支持ddl,加上這個參數,對於innodb 表來說不鎖表和行。形成一致性快照。

--no-autocommit

將dump文件中的每一個INSERT語句括在SET autocommit = 0和COMMIT語句中。

--compact

優化備份文件。此選項啓用-skip-add-drop-table、-skip-add-locks、-skip-comments、-skip-disable-keys和-skip-set-charset選項。

-T

每一個表生成兩個文件,一個SQL 文件,一個TXT 文件。可以備份成一個文件,可以是點SQL 結尾,也可以是點txt 結尾,導出一行行數據,每行數據指定以tab 方式分割每一個列,每行的分隔符默認是回車。

--lines-terminated-by

行與行之間的分隔符,默認爲回車

--fileds-terminated-by=','

列與列之間的分割符。

總結

我在工作中所最長用的參數:

mysqldump -u user -ppassword --single-transaction --set-gtid-purged=off   --hex-blob  -R  -E

(-F:備份開始時重建binlog文件)(--master-data=2:如爲master)(-d/--no-data:不導出數據)(-t:不導出結構)(--ignore-table=db.table)(--events/-E:導出事件)(-R/--routines:導出存儲過程和函數)(導出多個庫:--databases)(-where=‘where條件’)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章