› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
fanne
V2EX  ›  MySQL

mysqldump+binlog 如何无缝回档

  •  
  •   fanne · Jun 1, 2018 · 5799 views
    This topic created in 3048 days ago, the information mentioned may be changed or developed.

    有个疑问,binlog 可以指定时间点进行回滚

    但 mysqldump 怎么确定结束时间点呢?

    因为只有知道 mysqldump 那个备份文件里的结束时间,我才能确定 binlog 回滚的开始时间要设置为多少 我备份的时候使用了--single-transaction参数,那这个备份期间,其实还是有数据insert,update之类的操作。

    所以想要用 mysqldump 的备份文件跟 binlog 进行数据无缝回滚,要怎么搞法。

    11 replies  •  2018-06-01 18:57:27 +08:00
    kfll
        1
    kfll  
       Jun 1, 2018 via iPhone
    开 ssh,让 @defunct9 上去看看
    choury
        2
    choury  
       Jun 1, 2018 via Android
    备份开始时用 show master status 看当前 binlog 位置,导入的时候就从这里导,不过备份里面要考虑的内容挺多的,锁表啊,事务啊,ddl 啊……
    fanne
        3
    fanne  
    OP
       Jun 1, 2018
    @choury #2 开始时间知道的,关键是结束时间,假如数据库比较大,从开始导结束也有一段时间,无论长短,这段时间都会写东西进去的,然后不知道结束时间,那我 binlog 就无法定位从哪里开始还原了
    defunct9
        4
    defunct9  
       Jun 1, 2018
    结束时间看 dump 出的文件的时间戳,就可以了吧。
    choury
        5
    choury  
       Jun 1, 2018 via Android
    @fanne 你都开了事务了,这段时间写入的数据和你有什么关系呢?你的隔离级别设的啥?
    anthow
        6
    anthow  
       Jun 1, 2018
    @kfll 你是真滴皮
    MarioxLinux
        7
    MarioxLinux  
       Jun 1, 2018
    了解一下参数 --flush-logs Flush MySQL server log files before starting dump
    fanne
        8
    fanne  
    OP
       Jun 1, 2018
    @choury #5 现在是这个的,REPEATABLE-READ,你的意思是,mysqldump 这个 session,其实看不到其他 session 操作的,所以我那 binlog 恢复的时候,就拿 mysqldump 开始的那个时间点?是这么理解么
    fanne
        9
    fanne  
    OP
       Jun 1, 2018
    Loyalsoldier
        10
    Loyalsoldier  
       Jun 1, 2018
    mysqldump -u user -p password --master-data database > database.sql

    了解一下 👆
    choury
        11
    choury  
       Jun 1, 2018 via Android
    @fanne 可重复读的意思就是只要事务开启后,什么时候读取数据都是一致的,所以叫 REPEATABLE,所以别的事务干啥了对你都不会有影响
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1129 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 110ms · UTC 16:57 · PVG 00:57 · LAX 09:57 · JFK 12:57
    ♥ Do have faith in what you're doing.