轉(zhuǎn)載: 原文地址
一、備份常用操作基本命令
1、備份命令mysqldump格式
格式:
mysqldump -h主機(jī)名 -P端口 -u用戶名 -p密碼 –database 數(shù)據(jù)庫名 > 文件名.sql
2、備份MySQL數(shù)據(jù)庫為帶刪除表的格式
備份MySQL數(shù)據(jù)庫為帶刪除表的格式,能夠讓該備份覆蓋已有數(shù)據(jù)庫而不需要手動(dòng)刪除原有數(shù)據(jù)庫。
mysqldump --add-drop-table -uusername -ppassword -database databasename > backupfile.sql
3、直接將MySQL數(shù)據(jù)庫壓縮備份
mysqldump -hhostname -uusername -ppassword -database databasename | gzip > backupfile.sql.gz
4、備份MySQL數(shù)據(jù)庫某個(gè)(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
5、同時(shí)備份多個(gè)MySQL數(shù)據(jù)庫
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.
6、僅備份份數(shù)據(jù)庫結(jié)構(gòu)
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
7、備份服務(wù)器上所有數(shù)據(jù)庫
mysqldump –all-databases > allbackupfile.sql
8、還原MySQL數(shù)據(jù)庫的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
9、還原壓縮的MySQL數(shù)據(jù)庫
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
10、將數(shù)據(jù)庫轉(zhuǎn)移到新服務(wù)器
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
11、--master-data 和--single-transaction
在mysqldump中使用
--master-data=2
,會(huì)記錄binlog文件和position的信息。
--single-transaction
會(huì)將隔離級(jí)別設(shè)置成
repeatable-commited
12、導(dǎo)入數(shù)據(jù)庫
常用source命令,用use進(jìn)入到某個(gè)數(shù)據(jù)庫,
mysql>source d:\test.sql
,后面的參數(shù)為腳本文件。
13、查看binlog日志
查看binlog日志可用用命令 mysqlbinlog binlog日志名稱|more
14、general_log
General_log記錄數(shù)據(jù)庫的任何操作,查看general_log 的狀態(tài)和位置可以用命令
show variables like "general_log%"
,開啟general
log可以用命令`set global general
log=on`
二、增量備份
小量的數(shù)據(jù)庫可以每天進(jìn)行完整備份,因?yàn)檫@也用不了多少時(shí)間,但當(dāng)數(shù)據(jù)庫很大時(shí),就不太可能每天進(jìn)行一次完整備份了,這時(shí)候就可以使用增量備份。增量備份的原理就是使用了mysql的binlog志。
1、首先做一次完整備份:
mysqldump -h10.6.208.183 -utest2 -p123 -P3310 --single-transaction --master-data=2 test>test.
sql這時(shí)候就會(huì)得到一個(gè)全備文件test.sql
在sql文件中我們會(huì)看到:?
-- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;
是指備份后所有的更改將會(huì)保存到bin-log.000002二進(jìn)制文件中。 2、在test庫的t_student表中增加兩條記錄,然后執(zhí)行flush logs命令。這時(shí)將會(huì)產(chǎn)生一個(gè)新的二進(jìn)制日志文件bin-log.000003,bin-log.000002則保存了全備過后的所有更改,既增加記錄的操作也保存在了bin-log.00002中。
3、再在test庫中的a表中增加兩條記錄,然后誤刪除t student表和a表。a中增加記錄的操作和刪除表a和t student的操作都記錄在bin-log.000003中。
三、恢復(fù)
1、首先導(dǎo)入全備數(shù)據(jù)
mysql -h10.6.208.183 -utest2 -p123 -P3310 < test.sql
,也可以直接在mysql命令行下面用source導(dǎo)入
2、恢復(fù)bin-log.000002
mysqlbinlog bin-log.000002 |mysql -h10.6.208.183 -utest2 -p123 -P3310
3、恢復(fù)部分 bin-log.000003
在general_log中找到誤刪除的時(shí)間點(diǎn),然后更加對(duì)應(yīng)的時(shí)間點(diǎn)到bin-log.000003中找到相應(yīng)的position點(diǎn),需要恢復(fù)到誤刪除的前面一個(gè)position點(diǎn)。
可以用如下參數(shù)來控制binlog的區(qū)間
--start-position
?開始點(diǎn)?
--stop-position
?結(jié)束點(diǎn)
--start-date
?開始時(shí)間?
--stop-date
?結(jié)束時(shí)間
找到恢復(fù)點(diǎn)后,既可以開始恢復(fù)。
mysqlbinlog mysql-bin.000003 --stop-position=208 |mysql -h10.6.208.183 -utest2 -p123 -P3310
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
