• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    Mysql實現(xiàn)增量恢復的方法詳解

    來源:懂視網(wǎng) 責編:小采 時間:2020-11-09 20:25:25
    文檔

    Mysql實現(xiàn)增量恢復的方法詳解

    Mysql實現(xiàn)增量恢復的方法詳解:實驗介紹 增量恢復一般適用的場景: 1、人為的sql語句破壞了數(shù)據(jù)庫 2、在進行下一次完全備份之前發(fā)生系統(tǒng)故障導致數(shù)據(jù)庫數(shù)據(jù)丟失 3、在主從架構中,主庫數(shù)據(jù)發(fā)生了故障 丟失完全備份之后更改的數(shù)據(jù)的恢復步驟 1、首先做一個完全備份,確保生成完全備份的sq
    推薦度:
    導讀Mysql實現(xiàn)增量恢復的方法詳解:實驗介紹 增量恢復一般適用的場景: 1、人為的sql語句破壞了數(shù)據(jù)庫 2、在進行下一次完全備份之前發(fā)生系統(tǒng)故障導致數(shù)據(jù)庫數(shù)據(jù)丟失 3、在主從架構中,主庫數(shù)據(jù)發(fā)生了故障 丟失完全備份之后更改的數(shù)據(jù)的恢復步驟 1、首先做一個完全備份,確保生成完全備份的sq

    3、在數(shù)據(jù)庫中插入一條記錄,再執(zhí)行flush-logs操作,生成新的二進制增量備份文件。

    mysql> insert into yx(name,score) values('tom',87);
    Query OK, 1 row affected (0.00 sec)

    mysql> select * from yx;
    +----------+--------+
    | name     | score  |
    +----------+--------+
    | zhangsan | 100.00 |
    | lisi     |  90.00 |
    | wangwu   |  80.00 |
    | zhaoliu  |  99.00 |
    | tom      |  87.00 |
    +----------+--------+
    5 rows in set (0.00 sec)
    [root@promote data]# mysqladmin -u root -p flush-logs  #生成二進制文件
    Enter password:
    [root@promote data]# ls
    auto.cnf        ibdata1      ib_logfile1  mysql             mysql-bin.000002  performance_schema  test
    ib_buffer_pool  ib_logfile0  ibtmp1       mysql-bin.000001  mysql-bin.index   sys

    4、用delete刪除剛才插入的數(shù)據(jù)。模擬完全備份后數(shù)據(jù)丟失。

    mysql> delete from yx where name='tom';
    Query OK, 1 row affected (0.00 sec)

    mysql> select * from yx;
    +----------+--------+
    | name     | score  |
    +----------+--------+
    | zhangsan | 100.00 |
    | lisi     |  90.00 |
    | wangwu   |  80.00 |
    | zhaoliu  |  99.00 |
    +----------+--------+
    4 rows in set (0.00 sec)

    5、使用二進制文件進行恢復操作

    [root@promote data]# mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p

    6、查看數(shù)據(jù)庫內(nèi)容,刪除的數(shù)據(jù)有了。說明數(shù)據(jù)恢復成功。

    mysql> select * from yx;
    +----------+--------+
    | name     | score  |
    +----------+--------+
    | zhangsan | 100.00 |
    | lisi     |  90.00 |
    | wangwu   |  80.00 |
    | zhaoliu  |  99.00 |
    | tom      |  87.00 |
    +----------+--------+
    5 rows in set (0.00 sec)

    完全備份之后丟失所有數(shù)據(jù)的恢復步驟

    1、使用drop刪除表yx,模擬數(shù)據(jù)完全丟失

    mysql> drop table yx;
    Query OK, 0 rows affected (0.01 sec)

    mysql> show tables;
    Empty set (0.00 sec)

    2、先使用mysql命令進行完全備份恢復操作。

    [root@promote data]# mysql -u root -p test < /opt/test.sql
    mysql> use test;
    Database changed
    mysql> select * from yx;
    +----------+--------+
    | name     | score  |
    +----------+--------+
    | zhangsan | 100.00 |
    | lisi     |  90.00 |
    | wangwu   |  80.00 |
    | zhaoliu  |  99.00 |
    +----------+--------+
    4 rows in set (0.00 sec)

    3、使用二進制文件進行增量備份操作。

    [root@promote data]# mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p
    mysql> select * from yx;
    +----------+--------+
    | name     | score  |
    +----------+--------+
    | zhangsan | 100.00 |
    | lisi     |  90.00 |
    | wangwu   |  80.00 |
    | zhaoliu  |  99.00 |
    | tom      |  87.00 |
    +----------+--------+
    5 rows in set (0.00 sec)

    基于時間點與位置的恢復

    利用二進制日志實現(xiàn)局域時間點與位置的恢復,假如需要往數(shù)據(jù)庫中插入兩條數(shù)據(jù),但是由于誤操作,兩條插入語句中間刪除一條數(shù)據(jù),而這條數(shù)據(jù)不應該刪除,這時候,需要基于時間點與位置進行恢復。

    –start-datetime=datetime

    從二進制日志中第1個日期時間等于或晚于datetime參量的事件開始讀。

    –stop-datetime=datetime
    從二進制日志中第1個日期時間等于或晚于datetime參量的事件起停止讀。

    –start-position=N
    從二進制日志中第1個位置等于N參量時的事件開始讀。

    –stop-position=N
    從二進制日志中第1個位置等于和大于N參量時的事件起停止讀。

    mysql> select * from yx;
    +----------+--------+
    | name     | score  |
    +----------+--------+
    | zhangsan | 100.00 |
    | lisi     |  90.00 |
    | wangwu   |  80.00 |
    | zhaoliu  |  99.00 |
    +----------+--------+
    5 rows in set (0.00 sec)

    mysql> insert into yx values('test01',87);
    Query OK, 1 row affected (0.00 sec)

    mysql> delete from yx where name='zhangsan';
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into yx values('test02',99);
    Query OK, 1 row affected (0.17 sec)

    mysql> select * from yx;
    +---------+-------+
    | name    | score |
    +---------+-------+
    | lisi    | 90.00 |
    | wangwu  | 80.00 |
    | zhaoliu | 99.00 |
    | test01  | 87.00 |
    | test02  | 99.00 |
    +---------+-------+
    6 rows in set (0.00 sec)

    1、基于時間點的恢復。18-07-03 21:56:04是錯誤語句節(jié)點,18-07-03 21:56:11第二句正確語句節(jié)點

    [root@promote data]# mysqlbinlog --no-defaults --base64-output=decode-rows mysql-bin.000003
    # at 298
    #180703 21:55:35 server id 1  end_log_pos 406 CRC32 0x257c67ab  Query   thread_id=46    exec_time=0 error_code=0
    use `test`/*!*/;
    SET TIMESTAMP=1530626135/*!*/;
    insert into yx values('test01',87)
    /*!*/;
    # at 406
    #180703 21:55:35 server id 1  end_log_pos 437 CRC32 0xdd7913a3  Xid = 392
    COMMIT/*!*/;
    # at 437
    #180703 21:56:04 server id 1  end_log_pos 502 CRC32 0x0d09bd0b  Anonymous_GTID  last_committed=1    sequence_number=2
    SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
    # at 502
    #180703 21:56:04 server id 1  end_log_pos 581 CRC32 0xe6040c79  Query   thread_id=46    exec_time=0 error_code=0
    SET TIMESTAMP=1530626164/*!*/;
    BEGIN
    /*!*/;
    # at 581
    #180703 21:56:04 server id 1  end_log_pos 691 CRC32 0x2d99f699  Query   thread_id=46    exec_time=0 error_code=0
    SET TIMESTAMP=1530626164/*!*/;
    delete from yx where name='zhangsan'
    /*!*/;
    # at 691
    #180703 21:56:04 server id 1  end_log_pos 722 CRC32 0x4a742173  Xid = 393
    COMMIT/*!*/;
    # at 722
    #180703 21:56:11 server id 1  end_log_pos 787 CRC32 0x6d0b47d8  Anonymous_GTID  last_committed=2    sequence_number=3
    SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
    # at 787
    #180703 21:56:11 server id 1  end_log_pos 866 CRC32 0x97e2deb7  Query   thread_id=46    exec_time=0 error_code=0
    SET TIMESTAMP=1530626171/*!*/;
    BEGIN
    /*!*/;
    # at 866
    #180703 21:56:11 server id 1  end_log_pos 974 CRC32 0x9e24e8af  Query   thread_id=46    exec_time=0 error_code=0
    SET TIMESTAMP=1530626171/*!*/;
    insert into yx values('test02',99)
    [root@promote data]# mysql -u root -p test < /opt/test.sql   #先進行完全恢復
    mysql> select * from yx;
    +----------+--------+
    | name     | score  |
    +----------+--------+
    | zhangsan | 100.00 |
    | lisi     |  90.00 |
    | wangwu   |  80.00 |
    | zhaoliu  |  99.00 |
    +----------+--------+
    4 rows in set (0.00 sec)
    [root@promote data]# mysqlbinlog --no-defaults --stop-datetime='18-07-03 21:56:04' mysql-bin.000003 | mysql -u root -p   #結束節(jié)點
    Enter password:
    [root@promote data]# mysqlbinlog --no-defaults --start-datetime='18-07-03 21:56:11' mysql-bin.000003 | mysql -u root -p   #重新開始節(jié)點
    Enter password:
    mysql> select * from yx;
    +----------+--------+
    | name     | score  |
    +----------+--------+
    | zhangsan | 100.00 |
    | lisi     |  90.00 |
    | wangwu   |  80.00 |
    | zhaoliu  |  99.00 |
    | test01   |  87.00 |
    | test02   |  99.00 |
    +----------+--------+
    6 rows in set (0.00 sec)

    2、基于位置恢復,其中581是錯誤語句的節(jié)點,866是第二句正確語句的節(jié)點

    [root@promote data]# mysql -u root -p test < /opt/test.sql
    mysql> select * from yx;
    +----------+--------+
    | name     | score  |
    +----------+--------+
    | zhangsan | 100.00 |
    | lisi     |  90.00 |
    | wangwu   |  80.00 |
    | zhaoliu  |  99.00 |
    +----------+--------+
    4 rows in set (0.01 sec)
    [root@promote data]# mysqlbinlog --no-defaults --stop-position='581' mysql-bin.000003 | mysql -u root -p
    Enter password:
    [root@promote data]# mysqlbinlog --no-defaults --start-position='866' mysql-bin.000003 | mysql -u root -p
    Enter password:
    mysql> select * from yx;
    +----------+--------+
    | name     | score  |
    +----------+--------+
    | zhangsan | 100.00 |
    | lisi     |  90.00 |
    | wangwu   |  80.00 |
    | zhaoliu  |  99.00 |
    | test01   |  87.00 |
    | test02   |  99.00 |
    +----------+--------+
    6 rows in set (0.00 sec)

    您可能感興趣的文章:

  • MySQL數(shù)據(jù)庫備份與恢復方法
  • MySQL忘記密碼恢復密碼的實現(xiàn)方法
  • 用mysqldump備份和恢復指定表的方法
  • MySQL數(shù)據(jù)庫恢復(使用mysqlbinlog命令)
  • 詳解Mysql自動備份與恢復的幾種方法(圖文教程)
  • mysql 誤刪除ibdata1之后的恢復方法
  • MYSQL使用.frm恢復數(shù)據(jù)表結構的實現(xiàn)方法
  • Linux下實現(xiàn)MySQL數(shù)據(jù)備份和恢復的命令使用全攻略
  • MySQL單表ibd文件恢復方法詳解
  • 聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Mysql實現(xiàn)增量恢復的方法詳解

    Mysql實現(xiàn)增量恢復的方法詳解:實驗介紹 增量恢復一般適用的場景: 1、人為的sql語句破壞了數(shù)據(jù)庫 2、在進行下一次完全備份之前發(fā)生系統(tǒng)故障導致數(shù)據(jù)庫數(shù)據(jù)丟失 3、在主從架構中,主庫數(shù)據(jù)發(fā)生了故障 丟失完全備份之后更改的數(shù)據(jù)的恢復步驟 1、首先做一個完全備份,確保生成完全備份的sq
    推薦度:
    標簽: 還原 恢復的 講解
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国内精品久久久久久久coent| 亚洲AV无码国产精品色午友在线| www.亚洲精品| 久久精品国产精品亚洲人人| 国产成人精品日本亚洲直接| 无码人妻一区二区三区精品视频| 精品国产日产一区二区三区| 日本午夜精品一区二区三区电影| 精品久久久无码中文字幕| 精品亚洲一区二区| 精品一区二区三区自拍图片区| 久久久久无码精品| 999国产精品色在线播放| 精品国产三级a∨在线| 亚洲精品无码久久久| 久久精品国产福利国产琪琪| 91精品国产91久久久久久| 2022年国产精品久久久久| 亚洲AV日韩精品久久久久| 九九精品免视看国产成人| 国产三级精品三级在线观看| 51精品资源视频在线播放 | 国产成人精品日本亚洲专| 特级精品毛片免费观看| 亚洲欧美日韩久久精品| 四虎永久在线精品免费一区二区| 国内精品久久久久久久coent | 极品精品国产超清自在线观看| 国产成人精品白浆久久69| 久久精品国产亚洲精品2020| 中文精品人人永久免费| 少妇亚洲免费精品| 日本精品一区二区久久久| 欧美精品成人3d在线| 麻豆精品| 亚洲国产精品人人做人人爱| 日本欧美国产精品第一页久久| 欧美午夜精品久久久久久浪潮| 日韩精品人成在线播放| 亚洲爆乳精品无码一区二区| 在线精品亚洲|