关于Replication的问题

jimu8130 2010-10-29 09:39:34
问题背景:客户要求简单的双击热备,即某一台db仅作为备份目的,并不被切换成主db服务器,但是对于备份记录的时间有要求,主db服务器存储近一年的数据,备份的副db服务器存储近3年的数据.
我的问题:我接触数据库较为深入的应用太少,没经验,简单的浏览了下资料,发现大多数资料并没有描述到对记录时间进行限定这样的细节配置,我想到也许可以利用数据库的类似定时任务这样的机制,定时每个月进行查看每个表的加入时间字段,对于超出上述临界值的予以删除或者进行其他操作. 请问如果用到过Replication的同学,能否通过对Replication进行配置就能解决,而不用另外添加些定时任务.
...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
曾经的阿飞 2010-10-31
  • 打赏
  • 举报
回复
zuoxingyu很强啊,用procedure和event用的这么溜,我还没怎么用过……
jimu8130 2010-10-29
  • 打赏
  • 举报
回复
非常感谢楼上的提醒,差点就忘记了关闭日志这个重要步骤。
zuoxingyu 2010-10-29
  • 打赏
  • 举报
回复

create procedure ClearDB()
begin
SET SQL_LOG_BIN = 0; # 暂时关闭日志
delete from TBName where year(now())-year(ttime)=1; # 主库删除一年前的数据
SET SQL_LOG_BIN = 1; #再打开日志
end ;


在删除的时候,必须先关闭日志,要么删除命令会同步到从库上,两边都会被删除。
这个存储过程什么时候执行,可以用EVENT来设置。
从库保留3年的数据,delete from TBName where year(now())-year(ttime)=3;这样就可以了。调度也用EVENT来做。
jimu8130 2010-10-29
  • 打赏
  • 举报
回复
回楼上的,请问Replication的配置项中难道就没有能对记录的时间其进行控制么?
rucypli 2010-10-29
  • 打赏
  • 举报
回复
明显要定时任务
ACMAIN_CHM 2010-10-29
  • 打赏
  • 举报
回复
一种方案就是不用复制,每天定时从A机把数据导出,然后到B机导入。并且在A机删除1年前的数据。
zuoxingyu 2010-10-29
  • 打赏
  • 举报
回复
搞定结贴吧。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧