0

我有一个主从设置,MySql v5.1.39 在 12 核 Linux 机器上运行 ~10 db。由于性能问题,我不得不将 bin-log 文件移动到单独的磁盘。所以我按照以下步骤操作:

  • 停止所有使用数据库的东西
  • 停止奴隶
  • 停止大师
  • 将 /my.cfg 中的路径更改为 /mysql/log/* 到 /mysql/newlog/* 在主服务器和从服务器上
  • 将 /mysql/log/* 复制到 /mysql/newlog/。关于主从
  • 启动从站
    • 一切都好!
  • 启动大师

第一个问题!在奴隶上:

150113 12:21:22 [ERROR] Got fatal error 1236: 'Could not find first log file name in binary log index file' from master when reading data from binary log 150113 12:21:22 [Note] Slave I/O thread exiting, read up to log 'bin-log.005523', position 716864371

现在快速谷歌没有解决任何问题,因为停机时间是一个问题。我停止了Master,更改了配置并重新启动。现在是第二个“问题”!

... 150113 13:02:22 InnoDB: Error: page 182380 log sequence number 3407 300161079 InnoDB: is in the future! Current system log sequence number 3407 299353326. InnoDB: Your database may be corrupt or you may have copied the InnoDB InnoDB: tablespace but not the InnoDB log files. See InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html InnoDB: for more information. ...

我引用问题是因为一切正常。复制到从站重新启动并正常工作。我启动了应用程序,并且工作正常。但是当在 Master 上启动 MySql 时,我得到了上面的错误,其中大约 50 个具有不同的页码和序列号。

移动文件如何影响页码和序列号以及它们来自何处?我的问题有多大?一切似乎都很好。

请询问您是否需要更多信息,并感谢您的帮助。

4

1 回答 1

0

第一个问题是由文件 /mysql/log/bin-log.index 引起的。我忘记更改此文件的内容以指向日志文件的新目录: /mysql/log/bin-log.000028 -> /mysql/newlog/bin-log.000028 /mysql/log/bin-log.000029 -> /mysql/newlog/bin-log.000029 /mysql/log/bin-log.000030 -> /mysql/newlog/bin-log.000030 /mysql/log/bin-log.000031 -> /mysql/newlog/bin-log.000031

第二个问题是由某些文件的时间戳引起的。我应该用cp -p log/* newlog/.or保留时间戳rsync -avrx log/* newlog/.

于 2015-01-21T07:14:56.097 回答