有一批Oracle的数据库,使用这些数据库的应用都和钱有关系,对数据库的性能和稳定性有苛刻的要求。另一个应用需要实时或接近实时地(如延时几秒)抽取数据库中的增量数据;但不能对数据库有性能影响(或则影响非常小,如下降千分之一以内),不能在数据库上做开发(如触发器存储过程之类),更不能修改数据库配置(添加Stream,CDC之类的),不使用OGG之类的商业软件可以使用开源软件。增量数据指新插入,修改,删除的数据。
有个能按照位置,时间 进行提取的命令
数据库的增量备份是由 bin-log 命令操作的 给你二个增量备份的语法
mysqlbinlog可以查看二进制备份文件内容
mysqlbinlog 二进制文件路径
mysqlbinlog --stop-datetime="2013-01-14 18:20:21" 二进制文件位置 ...
从位置来恢复 从开始恢复日志到3968位置
mysqlbinlog --stop-position="3968" d:\binlog\mylog.000001 | mysql -uroot -p
取出时间段的操作
mysqlbinlog --start-datetime="2013-01-14 18:20:21" --stop-datetime="2013-01-14 18:40:21" ....
这个我有一个国家diam网的代码,和你的需求一样。采纳了可以发给你。不过你不能外传啊。
可以通过GoldenGate的方式解析oracle的日志进行数据推送
这个肯定要每天定时执行的吧,我们公司是晚上12点后kettle抽取生产库的增量数据,到统计库。 然后如果是windows服务器就用系统的定时任务,
晚上定时执行job。linux的话不熟悉,但应该是cron表达式设置定时。
用物化视图不就好了么