仅复制特定数据库用户所做的更改

ilo*_*arn 5 replication oracle

我正在执行并行测试。我们已将旧的批处理作业升级到新框架,我们需要针对现有的批处理作业进行测试。

在现有设置中,我有基于用户输入创建或更新记录的 Web 应用程序,这些批处理作业将处理记录。

计划是拥有 2 个数据库,主数据库和辅助数据库,现有的批处理作业连接到主数据库服务器,新的批处理作业连接到辅助数据库服务器。

Web 应用程序会将数据填充到主数据库和辅助数据库。

我想对数据库中的所有表执行复制。但是,我只想复制 Web 应用程序使用的特定数据库帐户所做的任何 DML 更改。

那可能吗?

Lei*_*fel 4

我同意 Phil +1 的观点,即这并不容易实现。此外,目前还不清楚这是如何运作的。想象一下正在复制下面的简单表。

 C1   C2
  1    'Apple'
  2    'Orange'
  3    'Pear'
Run Code Online (Sandbox Code Playgroud)

场景1

 batchjobaccount : INSERT INTO T1 VALUES (4,'Peach');
 appserveraccount: UPDATE T1 SET C2='Grape' WHERE C1=4;
Run Code Online (Sandbox Code Playgroud)

复制中应该发生什么?是否应该创建记录以便可以执行 appserveraccount 操作,还是应该忽略更新?

场景2

 batchjobaccount : UPDATE T1 SET C1=5 WHERE C1=2;
 appserveraccount: DELETE FROM T1 WHERE C1=5;
Run Code Online (Sandbox Code Playgroud)

复制中应该发生什么?该记录该删除还是不删除?

场景3

 batchjobaccount : DELETE FROM T1 WHERE C1=3;
 appserveraccount: UPDATE T1 SET C2='Strawberry' WHERE C1=3;
Run Code Online (Sandbox Code Playgroud)

应该发生什么?更新是否应该在本地数据库上失败但在复制数据库上成功,或者由于在本地数据库上失败而不应在远程数据库上运行?

如果您不希望通过批量作业帐户复制更改,那么为什么要授予他们在本地数据库上进行更改的权限呢?如果他们需要本地游乐场,那么您可以只制作表的本地副本并只授予batchjobaccount 访问这些表的权限吗?