我怎么MySQL二进制日志的坐标从二进制文件吗?
-
26-09-2020 - |
题
我试图设置复制用于大(120GB)数据库和我搞砸了。
我关闭主、复制数据文件,并重新启动的掌握。现在我已经设立了奴隶&开始了起来,我意识到我没获得 MASTER_LOG_FILE
和 MASTER_LOG_POS
值所需要安装复制。
我还有一个不变的复制的数据文件。是否有任何方法来确定 MASTER_LOG_FILE
和 MASTER_LOG_POS
从那些文件?
相关的问题:
- 会发生什么,如果你设置的
MASTER_LOG_POS
一个较早的时间点? - 我正在假定重复的查询将要执行的,从而可能导致重复数据吗?
编辑
我一直在调查 mysqlbinlog
命令并且发现了什么看起来像正确的信息,通过执行:
mysqlbinlog --to-last-log --start-datetime='2015-06-21 20:05:00'
mysql-bin.000006 | grep end_log_pos
输出看起来是这样的:
... a whole bunch more lines ...
#150621 20:10:21 server id 1 end_log_pos 720159843 Query thread_id=901489 exec_time=0 error_code=0
#150621 20:10:21 server id 1 end_log_pos 720161877 Query thread_id=901489 exec_time=0 error_code=0
#150621 20:10:21 server id 1 end_log_pos 720162762 Query thread_id=901489 exec_time=0 error_code=0
#150621 20:10:22 server id 1 end_log_pos 720164796 Query thread_id=901489 exec_time=0 error_code=0
#150621 20:10:22 server id 1 end_log_pos 720164815 Stop
我猜我应该使用那个最后两个位置,但是我不确定。
解决方案
我们希望,你没有启动该在奴隶。
它就这么发生的二进制日志的位置也是二进制日志的尺寸的二进制日志的事件。在你的情况下,可以利用最后的二进制日志的奴隶认为,我可以假定的是 mysql-bin.000006
.获得的文件大小和使用,作为该职位。
因此,在奴隶你会跑
STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST='...',
MASTER_PORT=3306,
MASTER_USER='repluser',
MASTER_PASSWORD='replpassword',
MASTER_LOG_FILE='mysql-bin.00006',
MASTER_LOG_POS=720164815;
START SLAVE;
这应该这样做!
我们讨论的二进制日志的位置是filesize之前
Nov 30, 2012
: 你可以如何监测如果MySQL二进制日志文件受到损坏?Oct 20, 2011
: 如何处理我SQL数据库的主要主复制时,有一个磁盘空间中断
你还要求
会发生什么,如果你设置MASTER_LOG_POS到一个较早的时间点?
是的,它会重播那些二进制日志的事件和引起的问题。
不隶属于 dba.stackexchange