我有一个通过数据保护管理的 Oracle 逻辑备用数据库。就在今天早上,重做应用程序开始失败,出现 ORA-01919 错误,表明我们的应用程序角色之一不存在。但是,我可以在主数据库和备用数据库上看到该角色。我们还有一个物理备用,它早就应用了逻辑上发生这种情况的重做,没有问题。
我已经用 Oracle 开了一个 SR。我想知道那里是否有人以前见过这个。
我想我应该提到:Oracle 10.2.0.4,Win2003 Server SP2。
更新:到目前为止,Oracle 支持尚未提供答案。我想我会在这里发布我到目前为止所学到的东西。
似乎将主主机上的 DBA 授予角色对于授予该角色的用户来说效果很好。它不适用于逻辑备用。爱荷华州:
create role TEST;
grant dba to TEST;
grant TEST to auser;
connect auser
set role TEST;
grant <existing role> to <existing user>;
这适用于主实例,但在逻辑上失败。一种解决方法似乎是将主服务器上的每个角色授予角色 TEST 并在逻辑中使用 admin 选项:
grant <existing role> to TEST with admin option; <== do this on the logical standby
然后该命令在逻辑备用服务器上运行。
这取决于。使用逻辑备用数据库,SYS 在主数据库上执行的任何操作都不会复制到逻辑备用数据库。因此,如果您在以 SYS 身份(在主服务器中)登录时创建了该角色,则该角色将不存在于逻辑备用服务器中,因此非 SYS 用户(在主服务器上)引用该角色的后续命令将失败。