它是邏輯備份,優點可以備份各種存儲引擎1.備份所有的數據庫#mysqldump-uroot-p--all-database>all.sql2.備份指定的數據庫#mysqldump-uroot-ptest>test.sql3.備份指定數據庫中的表#mysqldump-uroot-ptests>test_s.sql備份完全恢復實例(1)上午9點備份數據庫#mysqldump-uroot-p-l-Fstudent>student.dmp-l給所有表加讀鎖-F生成一個新的日志文件此時s表數據如下:mysql>select*froms;+------+-------+------+-----------+|sno|sname|sex|address|+------+-------+------+-----------+|0901|Jim|1|shanghai||0902|helun|2|beijing||0903|sam|1|sichuan||0904|keke|1|xizang||0905|gugu|1|suzhou||0906|tang|2|guangdong|+------+-------+------+-----------+6rowsinset(0.00sec)備份完畢等到了student.dmp文件,還有mysql-bin.000012(2)9點半備份完畢,然后插入新的數據mysql>insertintosvalues('0907','liu','1','jiangxi');QueryOK,1rowaffected(0.00sec)mysql>insertintosvalues('0908','wang','2','wuxi');QueryOK,1rowaffected(0.00sec)(3)10點,數據庫突然故障,數據無法訪問.需要恢復備份:#mysql-uroot-pstudent<student.dmp恢復后的數據:mysql>select*froms;+------+-------+------+-----------+|sno|sname|sex|address|+------+-------+------+-----------+|0901|Jim|1|shanghai||0902|helun|2|beijing||0903|sam|1|sichuan||0904|keke|1|xizang||0905|gugu|1|suzhou||0906|tang|2|guangdong|+------+-------+------+-----------+6rowsinset(0.00sec)(4)使用mysqlbinlog恢復mysqldump備份以來的BINLOG#mysqlbinlogmysql-bin.000012|mysql-uroot-pstudent查詢完全恢復后的數據:mysql>select*froms;+------+-------+------+-----------+|sno|sname|sex|address|+------+-------+------+-----------+|0901|Jim|1|shanghai||0902|helun|2|beijing||0903|sam|1|sichuan||0904|keke|1|xizang||0905|gugu|1|suzhou||0906|tang|2|guangdong||0907|liu|1|jiangxi||0908|wang|2|wuxi|+------+-------+------+-----------+8rowsinset(0.00sec)恢復完成!基于時間點的恢復(不完全恢復)由于誤操作,比如刪除了一張表,使用完全恢復是沒有用的,我們需要的是恢復到誤操作之前的狀態,然后跳過誤操作語句,再恢復后面執行的語句,完成恢復;例:(1)上午10點發生誤操作,可以用如下語句備份和BINLOG將數據恢復到故障前#mysqlbinlog--stop-date="2010-10-319:59:59"/usr/local/mysql/var/mysql-bin.000013|mysql-uroot-p(2)跳過故障時間點,繼續執行后面的BINLOG,完成恢復#mysqlbinlog--start-date="2010-10-3110:01:00"/usr/local/mysql/var/mysql-bin.000013|mysql-uroot-p基于位置恢復(不完全恢復)和基于時間點恢復類是,但是更加精確.因為同一時間點可能有多條SQL語句執行;例:#mysqlbinlog--start-date="2010-10-319:55:00"--stop-date="2010-10-3110:05:00"/usr/local/mysql/var/mysql-bin.000013>/tmp/mysql_restore.sql該命令將在/tmp/目錄下創建小的文件,編輯它找到錯誤語句前后的位置號,例如前后位置號分別是368312和368315(2)恢復了以前的備份文件后,輸入#mysqlbinlog--stop-position="368312"/usr/local/mysql/var/mysql-bin.000013|mysql-uroot-p#mysqlbinlog--start-position="368315"/usr/local/mysql/var/mysql-bin.000013|mysql-uroot-p
網站導航
- zblogPHP模板zbpkf
- zblog免費模板zblogfree
- zblog模板學習zblogxuexi
- zblogPHP仿站zbpfang