Sql 保持存档表结构(列等)与活动表同步
我有一个包含大量数据的表(TMain),它被归档到一个归档表(TArchive)中,其中的记录超过3个月 由于TMain是一个易失性的表,表中的列会随着时间的推移而改变/删除,所以我希望有某种控制,以便在TMain改变时,TArchive始终保持同步 在Oracle中实现这一目标的最佳方法是什么Sql 保持存档表结构(列等)与活动表同步,sql,oracle,plsql,triggers,alter,Sql,Oracle,Plsql,Triggers,Alter,我有一个包含大量数据的表(TMain),它被归档到一个归档表(TArchive)中,其中的记录超过3个月 由于TMain是一个易失性的表,表中的列会随着时间的推移而改变/删除,所以我希望有某种控制,以便在TMain改变时,TArchive始终保持同步 在Oracle中实现这一目标的最佳方法是什么 欢迎提出任何建议和解决方案。Oracle中的DDL不是事务性的。这意味着,在Oracle中跨两个对象复制DDL的任何自动化过程都有一定的缺陷。如果第二个DDL语句失败怎么办?你不能回滚第一个,你被卡住了
欢迎提出任何建议和解决方案。Oracle中的DDL不是事务性的。这意味着,在Oracle中跨两个对象复制DDL的任何自动化过程都有一定的缺陷。如果第二个DDL语句失败怎么办?你不能回滚第一个,你被卡住了 此外,您应该已经有一个外部组织流程来验证DDL。例如,在许多组织中,开发人员只能对开发数据库进行更改。这些更改将传播到临时数据库以进行测试。只有DBA可以将这些更改(一旦验证)推送到生产环境中。即使开发人员和DBA是同一个人,也应该遵循以下准则:验证每个DDL 出于这些原因,我建议不要自动化DDL复制。这看起来太麻烦了。相反:
- 如果不经常更改表结构,只需在DBA检查表中添加一条规则
- 如果您过于频繁地修改表,也许可以研究不需要DDL的替代体系结构。例如,将易失性信息存储为非结构化格式(如XML),还可以添加通用列,根据行的不同,这些列可能包含不同类型的信息。即使是本地化的键值表也可以减少更改表结构的需要
在11G中,您还可以设置间隔,oracle将自动创建新分区。
不过有一件事,如果您想使用压缩,请考虑到当存在压缩分区时,DDL的更改是不可能的。建立一个组织过程,以便表上的DDL遵循一组规则?@Andy您尝试过什么?你的研究结果是什么?请详细说明。