MySQL 5.5 mysqldump備份說明

feelpurple發表於2016-04-22
mysqldump客戶端工具可以執行邏輯備份,生成一系列可以執行的SQL語句。透過這個工具可以備份出一個或多個MySQL資料庫。mysqldump命令也可以生成CSV格式、分隔符格式或XML格式的輸出檔案。

--常用引數

--help, -? 顯示幫助

--user=user_name, -u user_name 當連線到MySQL伺服器時,所使用的使用者名稱

--password[=password], -p[password] 當連線到MySQL伺服器時,所使用的密碼;當使用短引數-p搭配明文密碼時,在-p和密碼之間不能有空格。

--socket=path, -S path 當連線到本地伺服器時,Unix系統使用的套接字檔案,或Windows系統使用的命名管道

--host=host_name, -h host_name MySQL伺服器所在的主機。預設主機是本地伺服器。

--port=port_num, -P port_num 連線所使用的TCP/IP埠號

--databases, -B 備份多個資料庫

--all-databases, -A 備份所有資料庫中的所有表

--tab=dir_name, -T dir_name 備份tab符分割的文字格式資料檔案

--fields-terminated-by 匯出檔案的欄位分隔符,搭配--tab引數使用

--fields-escaped-by 匯出檔案的欄位包裹符,搭配--tab引數使用

--default-character-set=charset_name 指定預設的字符集

--tables 覆蓋--databases or -B引數,備份出表的資料

--where='where_condition', -w 'where_condition' 只匯出符合指定WHERE條件的行
例如:
--where="user='jimf'"
-w"userid>1"
-w"userid<1"

--lock-tables, -l 對於要備份的資料庫,鎖定所有要備份的表。對於MyISAM 表,所加的鎖是READ LOCAL鎖,以允許表的併發插入操作。對於事務性表InnoDB表,--single-transaction引數要比--lock-tables效果好,因為這個引數不會鎖表。

--single-transaction 這個引數將事務的隔離模式設定為REPEATABLE READ,然後在備份前傳送START TRANSACTION語句到伺服器。這對於事務表InnoDB表來說很有用,因為備份的時候會備份一致狀態的資料庫(備份的時間點是發出START TRANSACTION語句的時候)而不會阻塞任何應用的進行

--no-data, -d 只匯出表的結構

--no-create-info, -t 匯出的時候,不匯出CRATE TABLE語句

--force, -f 匯出的時候,忽略所有錯誤,及時遇到SQL錯誤,也繼續執行

--flush-logs, -F 匯出前重新整理日誌檔案

--extended-insert, -e 對於INSERT語句使用多行插入語法(一行INSERT語句帶有多個VALUES列表),這個引數會縮小備份檔案的大小並且會提高資料匯入時的INSERT執行速度

--dump-slave[=value] 用於生成Slave備份集。

--include-master-host-port 通常和--dump-slave引數搭配使用,本引數將在CHANGE MASTER TO語句後附加MASTER_HOST和MASTER_PORT內容

--master-data[=value] 用於生成Slave備份集的專用引數

--lock-all-tables, -x 鎖定資料庫中所有的表。這個引數會在備份的過程中為資料庫加上全域性只讀鎖。這引數會關閉 --single-transaction 和 --lock-tables 這兩個引數。

--disable-keys, -K 在匯出的檔案中輸出/*!40000 ALTER TABLE tbl_name DISABLE KEYS */; 和 /*!40000 ALTER TABLE tbl_name ENABLE KEYS */;語句。在插入資料前先禁用索引,等資料插入完成後再啟用索引,目的是為了加快匯入的速度。

--max_allowed_packet 服務端和客戶端連線使用buffer的最大位元組長度,預設值時24MB,最大值時1GB。

--net_buffer_length 服務端和客戶端連線使用的初始化buffer大小

--no-autocommit 禁用自動提交功能

--no-create-db, -n 不生成CREATE DATABASE語句

--routines, -R 匯出儲存過程和函式

--flush-privileges 當匯出mysql資料庫後執行FLUSH PRIVILEGES語句

--ignore-table=db_name.tbl_name 不匯出的表名

[root@localhost backup]# /software/bin/mysqldump -help
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

--備份單個資料庫
[root@localhost tmp]# /software/bin/mysqldump -usystem -p'Mysql#2015' -S /data/mysql.sock fire > /backup/firedb_fullbk.sql

--備份多個資料庫
[root@localhost tmp]# /software/bin/mysqldump -usystem -p'Mysql#2015' -S /data/mysql.sock --databases neo fire > /backup/fire_neo_db_fullbk.sql

--備份全庫
[root@localhost tmp]# /software/bin/mysqldump -usystem -p'Mysql#2015' -S /data/mysql.sock --all-databases  > /backup/all_db_fullbk.sql

--備份所有庫

[root@localhost backup]# /software/bin/mysqldump -usystem -p'Mysql#2015' -S /data/mysql.sock -A -R --single-transaction -l --default-character-set=utf8 | gzip > /backup/dbfullbak_`date +%F`.sql.gz
-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.

[root@localhost backup]# ls -trl
-rw-r--r--. 1 root  root   1208158 Apr 23 07:11 dbfullbak_2016-04-23.sql.gz

--備份單個庫,生成tab符分割的文字格式資料檔案
[root@localhost tmp]# /software/bin/mysqldump -usystem -p'Mysql#2015' -S /data/mysql.sock --tab=/backup/ fire

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2086259/,如需轉載,請註明出處,否則將追究法律責任。

相關文章