MySQL之备份恢复
生活随笔
收集整理的這篇文章主要介紹了
MySQL之备份恢复
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
六:備份與恢復(fù) (優(yōu)先掌握)
語法
mysqldump -u用戶名 -p密碼 -h主機(jī)名 -P端口 -A > 文件名.sql------------------mysqldump的參數(shù)------------------------ -u, --user=name //指定連接的用戶名-p, --password[=name] //指定用戶的密碼,這里可以指定參數(shù)名,-S, --socket=name //指定socket文件連接 用于本地連接-h, --host=name //指定連接的服務(wù)器名-P, --port=端口 //指定連接的服務(wù)器端口號–tables //導(dǎo)出指定的表對象,格式為 ‘dbname tablename’,如mysqldump -S /tmp/mysql3306.sock test t1,默認(rèn)會覆蓋-B, --databases參數(shù)–single-transaction //在備份開始前,先執(zhí)行start transaction命令,以此來獲得備份的一致性,當(dāng)前該參數(shù)只對InnoDB存儲引擎有效。當(dāng)啟用該參數(shù)并進(jìn)行備份時(shí),確保沒有其他任何的DDL語句執(zhí)行(ALTER TABLE, DROP TABLE, RENAME TABLE,TRUNCATE TABLE),因?yàn)橐恢滦宰x并不能隔離DDL操作。啟用此參數(shù)時(shí),參數(shù)--lock-tables將自動禁用。-A, --all-databases //備份所有數(shù)據(jù)庫-B, --databases //備份指定的數(shù)據(jù)庫,如mysqldump -S /tmp/mysql3306.sock --database db1 db2–default-character-set=name //設(shè)置字符集,默認(rèn)為以服務(wù)器設(shè)置的字符集進(jìn)行導(dǎo)出。-l, --lock-tables //以只讀方式依次鎖住每個(gè)庫下的所有表,默認(rèn)啟用。使用--skip-lock-tables禁用。不能保證所有庫下的表備份一致。-x, --lock-all-tables //在備份過程中,對所有庫的所有表,同時(shí)鎖定。若指定了本參數(shù),則會自動禁用--single-transaction和-l, --lock-tables參數(shù)。–add-drop-database //在任何創(chuàng)建庫語句前,附加drop database語句。–add-drop-table //在任何建表語句錢,附加drop table語句。默認(rèn)啟用。如果不希望生成drop table語句,可以通過--skip-add-drop-table參數(shù)禁用。–add-drop-trigger //創(chuàng)建任何觸發(fā)器前,附加drop trigger語句。–add-locks //在生成的insert語句錢附加lock語句,默認(rèn)啟用。使用 --skip-add-locks來禁用。–allow-keywords //允許創(chuàng)建使用關(guān)鍵字的列名。–master-data[=#] //該參數(shù)有1和2兩個(gè)值,如果值等于1,就會在備份文件中添加一個(gè)change master語句。如果值為2,就會在備份文件中添加一個(gè)帶有注釋符號的change master語句。–dump-slave[=#] //該參數(shù)用于在從庫備份數(shù)據(jù),在線搭建新的從庫時(shí)使用。此參數(shù)也有1和2兩個(gè)值。值為1時(shí),在備份文件中添加一個(gè)change master語句。值為2時(shí),就會在備份文件中添加一個(gè)帶有注釋符號的change master語句。-t, --no-create-info //備份過程中,只備份表數(shù)據(jù),不備份表結(jié)構(gòu) -d, --no-data //備份過程中,只備份表結(jié)構(gòu),不備份表數(shù)據(jù) -c, --complete-insert //使用完整的insert語句會包含表中的列信息,這么做可以提高插入效率。 -q, --quick //表示導(dǎo)出時(shí)不會先將數(shù)據(jù)加載至buffer中,而是直接輸出。默認(rèn)啟用,使用 --skip-quick禁用 -w, --where=name //導(dǎo)出給定條件的數(shù)據(jù)備份與恢復(fù)
# 備份數(shù)據(jù)---------------------1. 備份命令---------------------- # 格式: mysqldump -h主機(jī)名 -P端口 -u用戶名 -p密碼 --database 數(shù)據(jù)庫名 > 文件名.sql# 示例 mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword --database cmdb > /data/backup/cmdb.sql-----------------------2. 備份壓縮----------------------- # 格式 mysqldump -h主機(jī)名 -P端口 -u用戶名 -p密碼 --database 數(shù)據(jù)庫名 | gzip > 文件名.sql.gz# 示例 mysqldump -h192.168.1.100 -p 3306 -uroot -ppassword --database cmdb | gzip > /data/backup/cmdb.sql.gz-------------------------3. 備份同個(gè)庫多個(gè)表------------ # 格式: mysqldump -h主機(jī)名 -P端口 -u用戶名 -p密碼 --database 數(shù)據(jù)庫名 表1 表2 .... > 文件名.sql# 示例 mysqldump -h192.168.1.100 -p3306 -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql----------------------4. 同時(shí)備份多個(gè)庫-------------- # 格式 mysqldump -h主機(jī)名 -P端口 -u用戶名 -p密碼 --databases 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 數(shù)據(jù)庫名3 > 文件名.sql# 示例 mysqldump -h192.168.1.100 -uroot -ppassword --databases cmdb bbs blog > /data/backup/mutil_db.sql----------------------5. 備份實(shí)例上所有的數(shù)據(jù)庫------------------- # 格式: mysqldump -h主機(jī)名 -P端口 -u用戶名 -p密碼 --all-databases > 文件名.sql# 示例 mysqldump -h192.168.1.100 -p3306 -uroot -ppassword --all-databases > /data/backup/all_db.sql---------------6. 備份數(shù)據(jù)出帶刪除數(shù)據(jù)庫或者表的sql備份----------- # 格式: mysqldump -h主機(jī)名 -P端口 -u用戶名 -p密碼 --add-drop-table --add-drop-database 數(shù)據(jù)庫名 > 文件名.sql# 示例 mysqldump -uroot -ppassword --add-drop-table --add-drop-database cmdb > /data/backup/all_db.sql--------------------7. 備份數(shù)據(jù)庫結(jié)構(gòu),不備份數(shù)據(jù)------------- # 格式: mysqldump -h主機(jī)名 -P端口 -u用戶名 -p密碼 --no-data 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 數(shù)據(jù)庫名3 > 文件名.sql# 示例 mysqldump --no-data –databases db1 db2 cmdb > /data/backup/structure.sql---------------# 恢復(fù)數(shù)據(jù)--------------------- 第一種:退出數(shù)據(jù)庫之后的恢復(fù) mysql -u用戶名 -p密碼 < filename.sql;第二種:在數(shù)據(jù)庫中 source filename;第三種:遷移數(shù)據(jù)庫 mysqldump -h 源IP -u用戶名 -B 數(shù)據(jù)庫名稱 | mysql -h 目標(biāo)IP -u用戶名 -p用戶密碼常用的備份工具:鏈接
| cp | 快 | 快 | 一般,靈活性低 | 很弱 | 少量數(shù)據(jù)備份 |
| mysqldump | 慢 | 慢 | 一般,可無視存儲引擎 | 一般 | 中小型數(shù)據(jù)量備份 |
| lvm2快照 | 快 | 快 | 一般,支持熱備,速度快 | 一般 | 中小型數(shù)據(jù)量備份 |
| xtrabackup | 較快 | 較快 | 實(shí)現(xiàn)innodb熱備,對存儲引擎有要求 | 強(qiáng)大 | 較大規(guī)模的備份 |
轉(zhuǎn)載于:https://www.cnblogs.com/plf-Jack/p/11196939.html
總結(jié)
以上是生活随笔為你收集整理的MySQL之备份恢复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NioEventLoop启动流程源码解析
- 下一篇: shell安装mysql,连接数据库,创