我有客户端和测试环境及其数据库。有一个简单的Oracle表,其中包含带有变量值的预定义配置名称。
如果通过导出的转储文件(exp .... dmp)执行客户端和测试环境之间的同步,我需要提供该表的日志记录吗?
简单地说 - 我有表TBL_CONFIG的值,表TBLE_CONFIG_CHANGES存储TBL_CONFIG的每次更新。但是在同步期间,TBL_CONFIG中的数据被清除,新数据从转储文件中插入。在这种情况下,更改不会写入TBLE_CONFIG_CHANGES。
我的第一个解决方案是在导入测试环境之前 - 执行select查询并将结果写入xml文件,从客户端环境执行复制,再次执行更新表的选择查询到xml,然后执行两个xmls的差异。
对于这种情况,可能还有其他更好的解决方案吗?
答案 0 :(得分:0)
这是你提到的处理这个问题的一种方法。除此之外,您可以查看以下方式:
1.如果您保持日志打开/配置,它会为您提供插入的行数。
2.如果表中有任何时间戳/日期字段,则可以使用该字段进行查询。
3.您可以使用ora_rowscn值来比较已更改的数据。 ora_rowscn的例子
从myTable中选择SCN_TO_TIMESTAMP(MAX(ora_rowscn));
4.或,启用审核
AUDIT INSERT ON user.table
然后查询USER_AUDIT_OBJECT。
希望能帮助到你。我也准备好了解细节。问我是否有任何困惑。