語法備份與恢復mysqldump -u使用者名稱 -p密碼 -h主機名 -p埠 -a > 檔名.sql
------------------mysqldump的引數------------------------
-u, --user=name //指定連線的使用者名稱
-p, --password[=name] //指定使用者的密碼,這裡可以指定引數名,
-s, --socket=name //指定socket檔案連線 用於本地連線
-h, --host=name //指定連線的伺服器名
-p, --port=埠 //指定連線的伺服器端口號
–tables //匯出指定的表物件,格式為 『dbname tablename』,如mysqldump -s /tmp/mysql3306.sock test t1,缺省會覆蓋-b, --databases引數
–single-transaction //在備份開始前,先執行start transaction命令,以此來獲得備份的一致性,當前該引數只對innodb儲存引擎有效。當啟用該引數並進行備份時,確保沒有其他任何的ddl語句執行(alter table, drop table, rename table,truncate table),因為一致性讀並不能隔離ddl操作。啟用此引數時,引數--lock-tables將自動禁用。
-a, --all-databases //備份所有資料庫
-b, --databases //備份指定的資料庫,如mysqldump -s /tmp/mysql3306.sock --database db1 db2
–default-character-set=name //設定字符集,預設為以伺服器設定的字符集進行匯出。
-l, --lock-tables //以唯讀方式依次鎖住每個庫下的所有表,預設啟用。使用--skip-lock-tables禁用。不能保證所有庫下的表備份一致。
-x, --lock-all-tables //在備份過程中,對所有庫的所有表,同時鎖定。若指定了本引數,則會自動禁用--single-transaction和-l, --lock-tables引數。
–add-drop-database //在任何建立庫語句前,附加drop database語句。
–add-drop-table //在任何建表語句錢,附加drop table語句。預設啟用。如果不希望生成drop table語句,可以通過--skip-add-drop-table引數禁用。
–add-drop-trigger //建立任何觸發器前,附加drop trigger語句。
–add-locks //在生成的insert語句錢附加lock語句,預設啟用。使用 --skip-add-locks來禁用。
–allow-keywords //允許建立使用關鍵字的列名。
–master-data[=#] //該引數有1和2兩個值,如果值等於1,就會在備份檔案中新增乙個change master語句。如果值為2,就會在備份檔案中新增乙個帶有注釋符號的change master語句。
-t, --no-create-info //備份過程中,只備份表資料,不備份表結構
-d, --no-data //備份過程中,只備份表結構,不備份表資料
-c, --complete-insert //使用完整的insert語句會包含表中的列資訊,這麼做可以提高插入效率。
-q, --quick //表示匯出時不會先將資料載入至buffer中,而是直接輸出。預設啟用,使用 --skip-quick禁用
-w, --where=name //匯出給定條件的資料
常用的備份工具:鏈結# 備份資料
---------------------1. 備份命令----------------------
# 格式:
mysqldump -h主機名 -p埠 -u使用者名稱 -p密碼 --database 資料庫名 > 檔名.sql
# 示例
mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword --database cmdb > /data/backup/cmdb.sql
-----------------------2. 備份壓縮-----------------------
# 格式
mysqldump -h主機名 -p埠 -u使用者名稱 -p密碼 --database 資料庫名 | gzip > 檔名.sql.gz
# 示例
mysqldump -h192.168.1.100 -p 3306 -uroot -ppassword --database cmdb | gzip > /data/backup/cmdb.sql.gz
-------------------------3. 備份同個庫多個表------------
# 格式:
mysqldump -h主機名 -p埠 -u使用者名稱 -p密碼 --database 資料庫名 表1 表2 .... > 檔名.sql
# 示例
mysqldump -h192.168.1.100 -p3306 -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql
----------------------4. 同時備份多個庫--------------
# 格式
mysqldump -h主機名 -p埠 -u使用者名稱 -p密碼 --databases 資料庫名1 資料庫名2 資料庫名3 > 檔名.sql
# 示例
mysqldump -h192.168.1.100 -uroot -ppassword --databases cmdb bbs blog > /data/backup/mutil_db.sql
----------------------5. 備份例項上所有的資料庫-------------------
# 格式:
mysqldump -h主機名 -p埠 -u使用者名稱 -p密碼 --all-databases > 檔名.sql
# 示例
mysqldump -h192.168.1.100 -p3306 -uroot -ppassword --all-databases > /data/backup/all_db.sql
---------------6. 備份資料出帶刪除資料庫或者表的sql備份-----------
# 格式:
mysqldump -h主機名 -p埠 -u使用者名稱 -p密碼 --add-drop-table --add-drop-database 資料庫名 > 檔名.sql
# 示例
mysqldump -uroot -ppassword --add-drop-table --add-drop-database cmdb > /data/backup/all_db.sql
--------------------7. 備份資料庫結構,不備份資料-------------
# 格式:
mysqldump -h主機名 -p埠 -u使用者名稱 -p密碼 --no-data 資料庫名1 資料庫名2 資料庫名3 > 檔名.sql
# 示例
mysqldump --no-data –databases db1 db2 cmdb > /data/backup/structure.sql
---------------# 恢復資料---------------------
第一種:退出資料庫之後的恢復
mysql -u使用者名稱 -p密碼 < filename.sql;
第二種:在資料庫中
source filename;
第三種:遷移資料庫
mysqldump -h 源ip -u使用者名稱 -b 資料庫名稱 | mysql -h 目標ip -u使用者名稱 -p使用者密碼
備份方法
備份速度
恢復速度
便捷性功能
一般用於cp快
快一般,靈活性低
很弱少量資料備份
mysqldump慢慢
一般,可無視儲存引擎
一般中小型資料量備份
lvm2快照快快
一般,支援熱備,速度快
一般中小型資料量備份
xtrabackup
較快較快
實現innodb熱備,對儲存引擎有要求
強大較大規模的備份
mysql備份恢復 mysql之備份與恢復
工作中,我們經常會遇到資料庫的備份與恢復場景 目錄1 mysql的備份與恢復 2 mysql的匯入與匯出 1 mysql的備份與恢復 mysql的備份命令是mysqldump,mysql之備份 mysqldump u user h host port p db table.file u 後面接資料庫...
mysql筆記之備份恢復
1.設計備份策略 2.日常備份 3.恢復演練 4.故障恢復 5.遷移 備份型別 熱備 在資料庫正常業務時,備份資料,並且能夠一致性恢復 冷備 關閉資料庫業務,資料庫沒有任何變更的情況下,進行備份資料 溫備 鎖表備份,只能查詢不能修改 備份方式 邏輯備份 mysqldump mysqlbinlog物理...
Mysql 之 完全備份 增量備份 備份恢復
一 資料備份的重要性 在生產環境中,資料的安全性是至關重要的,任何資料的丟失都可能產生嚴重的後果造成資料丟失的原因 程式錯誤人為錯誤計算機失敗磁碟失敗災難 如火災 和偷竊 二 資料庫備份的分類 2.1 從物理與邏輯的角度 備份可分為 物理備份 對資料庫作業系統的物理檔案 如資料檔案 日誌檔案等 的備...