mysql设置停止二进制文件的操作_window下使用二进制文件对mysql数据库备份及恢复(再现用户操作)...
1,查看二進(jìn)制日志文件是否啟用
mysql>show variables like 'log_bin';
如果未啟用,則啟用二進(jìn)制文件(默認(rèn)是關(guān)閉的 )
2,在mysql的配置文件[mysqld]區(qū)域加上如下配置
log-error=? #記錄錯(cuò)誤日志
#log=???????? #記錄所有日志
#log-slow-queries=?? #記錄慢查詢?nèi)罩?/p>
#log-update=???????????? #記錄更新
log-bin=????????????????????? #二進(jìn)制日志
以上默認(rèn)只啟用錯(cuò)誤日志,和二進(jìn)制日志,可以指定日志文件名(如log-bin=logBin.log)如果不指定文件名在使用默認(rèn)文件名(主機(jī)名-bin-000001)
3.重啟mysql服務(wù)(net stop mysql 和 net start mysql)win7下以管理員身份運(yùn)行command line客戶端
到此為止,二進(jìn)制文件啟用成功
4,開始備份數(shù)據(jù)庫(kù)
mysqldump -uroot -p123456 database_name>d:/backup20070713.sql
5,恢復(fù)數(shù)據(jù)庫(kù):刪除原有數(shù)據(jù)庫(kù),建立數(shù)據(jù)庫(kù),把備份數(shù)據(jù)庫(kù)導(dǎo)入。
mysqladmin -uroot -p123456 drop database_name
mysqladmin -uroot -p123456 create database_name
mysql -uroot -p123456 database_name
注:在導(dǎo)入備份數(shù)據(jù)庫(kù)前,database_name如果沒有,是需要?jiǎng)?chuàng)建的;而且與backup20070713.sql中數(shù)據(jù)庫(kù)名是一樣的才能導(dǎo)入。
6,使用二進(jìn)制文件再現(xiàn)用戶操作,即恢復(fù)到想恢復(fù)的時(shí)刻(如不小心誤刪除,錯(cuò)誤更新等....)
使用日志文件恢復(fù)數(shù)據(jù)庫(kù)必須要有一個(gè)數(shù)據(jù)庫(kù)備份(只要是在二進(jìn)制日志文件功能開啟之后備份的就行)。恢復(fù)數(shù)據(jù)庫(kù)時(shí),可以通過(guò)時(shí)間恢復(fù),也可以通過(guò)操作點(diǎn)恢復(fù)。
(1)、通過(guò)時(shí)間恢復(fù)方法如下:
如果我在2011-04-02 00:00:00時(shí)刻開啟了二進(jìn)制日志文件功能,并備份了數(shù)據(jù)庫(kù)文件。且在2011-04-02 12:00:00數(shù)據(jù)庫(kù)發(fā)生異常,需要恢復(fù)到2011-04-0210:00:00。則操作如下:
l???????用備份將數(shù)據(jù)庫(kù)回復(fù)到2011-04-0200:00:00時(shí)候的狀態(tài)。
l???????在命令行輸入如下命令:
mysqlbinlog--stop-date="2011-04-02 10:00:00" mysql安裝目錄\data\binary-log.000001? | mysql -u root –p
這樣,系統(tǒng)會(huì)自動(dòng)執(zhí)行從二進(jìn)制日志有記錄開始截止到2011-04-02 10:00:00,用戶所做過(guò)的所有操作。與stop-date對(duì)應(yīng)的,還有start-date屬性,可以設(shè)定執(zhí)行記錄的開始時(shí)間。也可以兩個(gè)屬性都設(shè)置。
2、通過(guò)操作點(diǎn)恢復(fù)方法如下:
在命令行中輸入mysqlbinlog D:\binary-log.000003 > D:\log.txt,執(zhí)行后打開log.txt,查看里面語(yǔ)句,可以發(fā)現(xiàn):在每個(gè)操作之前,都會(huì)有一個(gè)獨(dú)特的編號(hào),如下紅字顯示:
/*!*/;
# at 450/*編號(hào)450*/
#110402 15:31:50 server id 1?end_log_pos 529 ????? Query?????? thread_id=2??? exec_time=0???????? error_code=0
SET TIMESTAMP=1301729510/*!*/;
DROP TABLE `jwc`
此編號(hào)隨著操作數(shù)增多而變大。和時(shí)間一樣是一個(gè)標(biāo)記,通過(guò)操作點(diǎn)恢復(fù)的語(yǔ)句如下:
mysqlbinlog --stop-position="450" mysql安裝目錄\data\binary-log.000001? | mysql -u root –p
這樣,系統(tǒng)會(huì)自動(dòng)執(zhí)行二進(jìn)制日志中編號(hào)最低的語(yǔ)句到編號(hào)450語(yǔ)句。與stop-position對(duì)應(yīng)的,還有start-position屬性,可以設(shè)定執(zhí)行記錄的開始編號(hào)。
總結(jié)
以上是生活随笔為你收集整理的mysql设置停止二进制文件的操作_window下使用二进制文件对mysql数据库备份及恢复(再现用户操作)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux系统中socket错误码:EI
- 下一篇: mysql监控sql排名_监控数据库性能