国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql增量備份及斷點(diǎn)恢復(fù)方法

2024-07-24 12:36:09
字體:
供稿:網(wǎng)友
  簡介
 
  增量備份是指在一次全備份或上一次增量備份后,以后每次的備份只需備份與前一次相比增加或者被修改的文件。這就意味著,第一次增量備份的對象是進(jìn)行全備后所產(chǎn)生的增加和修改的文件;第二次增量備份的對象是進(jìn)行第一次增量備份后所產(chǎn)生的增加和修改的文件,如此類推。
 
  目的
 
  解決完全備份中時間長、恢復(fù)慢的問題,采取了增量備份
 
  特點(diǎn)
 
  優(yōu):無重復(fù)數(shù)據(jù),備份量不大,時間短
 
  缺:需要上次完全備份及完全備份后的增量備份才能恢復(fù),需對增量備份逐個反復(fù)恢復(fù),操作繁瑣
 
  實(shí)現(xiàn)方式
 
  通過mysql的二進(jìn)制日志間接實(shí)現(xiàn)增量備份:
 
  二進(jìn)制日志保存了所有更新或可能更新的數(shù)據(jù)
 
  二進(jìn)制日志在mysql啟動時開始記錄,且會重新創(chuàng)建新的日志文件
 
  需定時執(zhí)行flush logs方法重新創(chuàng)建日志,生成二進(jìn)制文件序列
 
  實(shí)驗(yàn)環(huán)境:
 
  安裝了mysql5.7數(shù)據(jù)庫的一臺centos7虛擬機(jī)
 
  操作過程:
 
  一、增量備份
 
  1、在配置文件中添加二進(jìn)制日志
 
  vim /etc/my.cnf
 
  [mysqld] #在此模塊下添加
 
  log-bin=mysql-bin #二進(jìn)制日志
 
  2、重啟服務(wù),并查看二進(jìn)制日志
 
  systemctl restart mysqld.service
 
  cd /usr/local/mysql/data/
 
  mysqlbinlog --no-defaults mysql-bin.000001
 
  mysql增量備份及斷點(diǎn)恢復(fù)
 
  3、在數(shù)據(jù)庫自由創(chuàng)建數(shù)據(jù)庫、表,作為實(shí)驗(yàn)?zāi)0?br /> 
  4、對school數(shù)據(jù)庫進(jìn)行完全備份
 
  mysqldump -uroot -pabc123 school > /opt/school.sql
 
  5、刷新日志,生成新的日志,注意:之前數(shù)據(jù)庫的操作寫入編號為000001的日志中,新生成的000002的日志為空
 
  mysqladmin -uroot -pabc123 flush-logs #刷新日志
 
  mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001 #查看000001日志
 
  mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #查看000002日志
 
  #--base64-output=decode-rows -v:避免文件中亂碼,前面的查看命令也可以使用
 
  6、新添加mysql數(shù)據(jù)庫操作,然后刷新日志,進(jìn)行增量備份
 
  use school;
 
  mysql>indert into info (id,name,score) values (3,'aaa',78);
 
  mysql>delete from info where name='tom'; #誤操作
 
  mysql> insert into info (id,name,score) values (4,'bbb',64);
 
  mysqladmin -uroot -pabc123 flush-logs #刷新日志,生成000003
 
  #此次增量備份已記錄到000002日志文件中
 
  7、刪除info表
 
  mysql -uroot -pabc123 -e 'use school;drop table info;'
 
  8、恢復(fù)完全備份,然后恢復(fù)增量備份
 
  mysql -uroot -pabc123 school < /opt/school.sql #完全備份還原
 
  mysqlbinlog --no-defaults mysql-bin.000002 | mysql -uroot -p

  那么,此處暴露出一個問題,如果出現(xiàn)誤操作,還原備份時就會出現(xiàn)錯誤,并不能實(shí)現(xiàn)理想的備份,達(dá)到真正的目的。此時,就需要斷鏈恢復(fù)(屬于恢復(fù)增量備份的特殊用法),即在還原時只恢復(fù)正確的數(shù)據(jù)庫操作。
 
  二、斷鏈恢復(fù)
 
  在操作斷鏈恢復(fù)前,需要還原到未進(jìn)行增量備份還原的狀態(tài),

  基于時間點(diǎn)
 
  2018-09-04 16:43:52 錯誤操作時間 (開頭加載到此時間點(diǎn)結(jié)束)
 
  2018-09-04 16:44:32 正確操作時間 (從此時間點(diǎn)再次開始加載) 從此時間點(diǎn)再次開始加載
 
  mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #查看000002日志
 
  mysqlbinlog --no-defaults --stop-datetime='2018-09-04 16:43:52' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p
 
  mysqlbinlog --no-defaults --start-datetime='2018-09-04 16:44:32' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p
 
  基于位置點(diǎn)
 
  at 565 上一次正確執(zhí)行位置 --stop-position
 
  at 667 下一次正確執(zhí)行位置 --start-position
 
  mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #查看000002日志
 
  mysqlbinlog --no-defaults --stop-position='565' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p
 
  mysqlbinlog --no-defaults --start-position='667' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p。
 
 

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔西| 盘山县| 嘉峪关市| 芒康县| 明溪县| 西宁市| 海城市| 班玛县| 巩留县| 高邑县| 治多县| 博爱县| 内黄县| 房产| 上蔡县| 桃园市| 铁岭县| 陕西省| 镇雄县| 浦北县| 获嘉县| 汶上县| 靖远县| 徐汇区| 慈溪市| 杭锦后旗| 灵川县| 荥阳市| 嵊州市| 镇坪县| 淳安县| 永善县| 吉林市| 武胜县| 陈巴尔虎旗| 萝北县| 石屏县| 柘城县| 张家口市| 外汇| 全南县|