LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1642|回复: 2

请教:MYSQL怎样察看一个记录的插入时间?

[复制链接]
发表于 2005-10-18 09:30:43 | 显示全部楼层 |阅读模式
发现这样一个问题:假如MYSQL数据库掉电,由于缓存和日志的关系,重启后二进制日志会产生日志空洞,但实际上数据已经插入了,这时我想查找所有没有记录到日志中的插入记录,应该怎么做?

想利用TIMESTAMP,因为日志里有TIMESTAMP,但如果插入的记录没有TIMESTAMP类型俄字段,我怎么比较呢?这种情况下怎样察看一个记录的插入时间呢?

谢谢。
发表于 2005-10-21 12:23:04 | 显示全部楼层
可能无法比较,是不是可以通过插入的ID号还比较,一般ID号是递增的,查到断电时的ID号范围,就可以查到这个插入记录了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-22 10:20:20 | 显示全部楼层
这样也有道理。我可以先得到重启后的数据库最大的ID值,与二进制日志中的INSERT ID比较就知道有多大的空洞了。不过可能要检查所有的表,因为不知道插入了那些表。

而且如果执行的不只是INSERT操作,比如UPDATE,DELETE等?

MYSQL倒是有个参数,sync_binlog,设置为 sync_binlog=1,则每秒钟都会同步缓存与日志。对于INNODB,可以使用 --innodb-safe-binlog,它会自动设置 sync_binlog=1,但这样对性能有多大的影响?我现在还没有想出好的测试性能办法。

而且我现在的实际情况时,有一台从服务器,需要在主服务器出问题的时候能够对外提供服务,而当主服务器恢复之后两者又必须同步数据。如果允许从服务器进行INSERT操作,那么在同步时就会产生键值冲突,导致从服务器出错放弃变更。至于其他类型的变更会产生什么影响,我还需要再看。

想请教那位兄弟有好的想法或方案。

谢谢楼上的“昨夜星尘”兄
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表