Database 用于存储历史数据的复制数据库

Database 用于存储历史数据的复制数据库,database,oracle,database-administration,oracle-streams,dataguard,Database,Oracle,Database Administration,Oracle Streams,Dataguard,应用程序只处理数据库中的一部分数据,其余数据是报告所必需的,但这会导致应用程序性能低下。我想在不修改数据库模式的情况下归档历史数据 是否有可能复制数据库,从主实例中删除旧数据,并定期将新更改同步到复制的数据库中?这样,主“事务”数据库将是轻量级的,复制数据库将包含用于报告目的的完整的当前和历史数据集 您能推荐一些工具或提供一些技巧来在Oracle上实现这一点吗 编辑: 我想知道是否可以使用streams并以某种方式使DML处理程序忽略对行的删除操作(docs.oracle.com/cd/B283

应用程序只处理数据库中的一部分数据,其余数据是报告所必需的,但这会导致应用程序性能低下。我想在不修改数据库模式的情况下归档历史数据

是否有可能复制数据库,从主实例中删除旧数据,并定期将新更改同步到复制的数据库中?这样,主“事务”数据库将是轻量级的,复制数据库将包含用于报告目的的完整的当前和历史数据集

您能推荐一些工具或提供一些技巧来在Oracle上实现这一点吗

编辑:
我想知道是否可以使用streams并以某种方式使DML处理程序忽略对行的删除操作(docs.oracle.com/cd/B28359_01/server.111/b28321/…),以便在数据复制过程中,即使从事务数据库中删除了历史行,也能保留这些行。

您不需要创建两个单独的数据库。只需创建一个事务数据库,保存所有事务,然后根据这些表创建视图以显示所需数据。这样,您只需维护一个数据库。

您不需要创建两个单独的数据库。只需创建一个事务数据库,保存所有事务,然后根据这些表创建视图以显示所需数据。这样,您只需维护一个数据库。

您的意思是?是否要存档数据?一个表中有1亿行,您想将其中的一半(取决于条件)移动到另一个表中,并将其从主数据库中删除吗?如果是的话,我不认为复制可以做到这一点。我通常有一个过程来做归档数据的工作,这大大提高了性能。不幸的是,我没有能力修改当前或历史数据的模式。报告和事务功能都是基于现有模式实现的。我的目标是不干扰当前实现的临时解决方案。老实说,我不清楚您的具体情况,但将数据表从一个数据库移动到另一个数据库不会影响您的模式,对吗?设置当前数据库的另一个实例,称之为REP。创建指向活动数据库的数据库链接。编写一个作业,定期将记录从live复制到rep。编写另一个作业,根据记录的年龄定期从live中删除记录。你可能认为某些同步工具可以让你从手工工作中解脱出来,但在几乎任何情况下删除记录都需要深入了解你的应用程序的工作方式。你是说?你想存档数据吗?一个表中有1亿行,您想将其中的一半(取决于条件)移动到另一个表中,并将其从主数据库中删除吗?如果是的话,我不认为复制可以做到这一点。我通常有一个过程来做归档数据的工作,这大大提高了性能。不幸的是,我没有能力修改当前或历史数据的模式。报告和事务功能都是基于现有模式实现的。我的目标是不干扰当前实现的临时解决方案。老实说,我不清楚您的具体情况,但将数据表从一个数据库移动到另一个数据库不会影响您的模式,对吗?设置当前数据库的另一个实例,称之为REP。创建指向活动数据库的数据库链接。编写一个作业,定期将记录从live复制到rep。编写另一个作业,根据记录的年龄定期从live中删除记录。你可能认为某些同步工具可以让你从手工工作中解脱出来,但在几乎任何情况下删除记录都需要对你的应用程序的工作方式有深入的了解。