mysqldump 的常用参数。
mysqldump 常用參數(shù)詳解:
--databases:備份多個數(shù)據(jù)庫,選項(xiàng)后跟多個庫名。備份文件中會包含USE db_name。
--events ? ?: ?備份事件
--routines:備份存儲過程和函數(shù)
--ignore-table=TableName :指定不需要備份的表
--tables:覆蓋--databases 或 -B 選項(xiàng)。該選項(xiàng)后的名稱參數(shù)均被認(rèn)為是表名。備份指定的表
--default-character-set:指定備份文件的編碼,和數(shù)據(jù)庫編碼無關(guān)?
--lock-all-tables:通過在備份期前加read lock鎖定所有庫的所有表。會自動關(guān)閉—single-transaction和—lock-tables。
--lock-tables:在備份數(shù)據(jù)庫時對當(dāng)前庫添加read lock.
--master-data:在備份文件中添加二進(jìn)制日志文件名和位置信息,會自動開始--lock-all-tables
--single-transaction:在備份前設(shè)置事務(wù)隔離級別為REPEATABLE READ并向server發(fā)送START TRANSACTION語句。
僅對事務(wù)型表如InnoDB有用。與--lock-tables互斥。對于大文件備份--single-transaction與--quick結(jié)合使用。
--flush-logs:刷新日志,生成一個新的二進(jìn)制日志,主要用戶做增量備份
--max-allowed-packet:可發(fā)送或接受的最大包分組長度?
--no-autocommit:在INSERT前后添加set autocommit=0和commit。
--order-by-primary:將備份的表中的行按主鍵排序或者第一個唯一鍵排序。
當(dāng)備份MyISAM表且將被載入到InnoDB表時很有用,打包備份本身的時間會較長。
--quick:強(qiáng)制mysqldump將查詢得到的結(jié)果直接輸出到文件,不緩存到內(nèi)存中
1.備份一個DB?
mysqldump -u$dbuser -p$dbpwd --databases DBName | gzip ?> ?/home/backup/DBName.sql.gz
2.備份多個DB:參數(shù)--databases 之后直接跟DBName,用空格隔開就行(我以前總以為是逗號隔開)
mysqldump -u$dbuser -p$dbpwd --databases DBName01 DBName02 | gzip ?> ?/home/backup/DBName.sql.gz
3.備份過程中忽略指定的表
mysqldump -u$dbuser -p$dbpwd --databases DBName01 DBName02 --ignore-table=DBName01.Table01 | gzip ?> ?/home/backup/DBName.sql.gz
note:這里的表名必須寫成DBName.TabName
4.備份過程中忽略多張指定的表
mysqldump -u$dbuser -p$dbpwd --databases DBName01 DBName02 --ignore-table=DBName01.Table01 --ignore-table=DBName01.Table02 | gzip ?> ?/home/backup/DBName.sql.gz
5.備份指定的表:
mysqldump ?-u$dbuser -p$dbpwd ?--databases DBName01 ?--tables TabName | gzip > /home/backup/DBName.sql.gz?
note:這里的表名不能寫成DBName.TabName
6備份多張表:
mysqldump ?-u$dbuser -p$dbpwd ?--databases DBName01 ?--tables TabName01 TabName02 TabName03 ?| gzip > /home/backup/DBName.sql.gz?
參考鏈接:
http://blog.csdn.net/zyz511919766/article/details/12853133
http://hunanpengdake.iteye.com/blog/1902209
######2016-09-09 add #####################
幾個特殊參數(shù)的解釋
--master-data
--single-transaction ?
在單獨(dú)使用--master-data參數(shù)時,會自動添加--lock-all-tables,鎖定所有的表,直到備份完成結(jié)束
為了減少對整個db的影響,在備份的時候 --master-data 和--single-transaction配合使用
mysqldump -uroot -p'1234' --databases dbname ?--single-transaction --master-data > ?1.sql
備份原理如下:
1.flush tables ; ? # 關(guān)閉所有表,減少加鎖時對真?zhèn)€數(shù)據(jù)庫的影響
2.flush tables with read lock ?; ?
3.set session 設(shè)置會話級別為rr ; ? # 設(shè)置會話的隔離級別為rr ,這個可能和下面的快照有關(guān),
4.start transaction with consistent ?snapshot ?; ?#建立快照
5.show master status ? ? ?# 獲得 binlog ?postions
6.unlcok ? ?# 釋放鎖
7.復(fù)制表結(jié)構(gòu)和數(shù)據(jù) ?
轉(zhuǎn)載于:https://blog.51cto.com/dwchaoyue/1378205
總結(jié)
以上是生活随笔為你收集整理的mysqldump 的常用参数。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Memcached 缓存个体,对象,泛
- 下一篇: T-SQL利用Row_Number函数实