While starting the extract on UAT DB env which had been recently moved to exadata we got the below error.As we had redo and archive logfiles on ASM, we used “TRANLOGOPTIONS DBLOGREADER” in extract parameter file.
2012-10-24 22:35:48 ERROR OGG-00446 Oracle GoldenGate Capture for Oracle, emos_cc.prm: Opening ASM file +RECO_UMO1/archivelog/2012_10_24/thread_1_seq_224.955.797517005 in DBLOGREADER mode: (26723) ORA-26723: user "GGATE" requires the role "DV_GOLDENGATE_REDO_ACCESS"
The first thing which we did is checked whether the role exists or not.
22:41:53 SYS@xxxxx1 > select role from dba_roles where role like 'DV_%'; no rows selected
Ahh, No roles starting with DV_ exists in the db. Then why is GOldenGate asking for this role.Doing some search on tahiti.oracle.com pointed to a document which mentioned
Grant the DV_GOLDENGATE_REDO_ACCESS role to any user who is responsible for using the Oracle GoldenGate TRANLOGOPTIONS DBLOGREADER method to access redo logs in an Oracle Database Vault environment. This enables the management of Oracle GoldenGate processes to be tightly controlled by Database Vault, but does not change or restrict the way an administrator would normally configure Oracle GoldenGate.
So, now we have a clue. Its something to do with Database Vault.The UAT env had recently been moved to exadata box, prior to which it on a normal server where the extract was running fine.
22:42:05 SYS@xxxxx1 > SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault'; PARAMETER VALUE ---------------------------------------------------------------- ---------------------------------------------------------------- Oracle Database Vault TRUE
Above, shows Database Vault option enabled, but as the database was restored from the backup of the db on normal server, we didn’t had any DVSYS and DVF schemas.
Oracle Database Vault has the following schemas:
DVSYS Schema: Owns the Oracle Database Vault schema and related objects
DVF Schema: Owns the Oracle Database Vault functions that are created to retrieve factor identities
As, vault wasn’t required, we used CHOPT utility available from 11.2 for enabling/disabling database features.
After shutting down the db, ran chopt on all the nodes -- abcde0025: (abncu1) /u01/abncu/admin> chopt disable dv Writing to /u01/app/oracle/product/11.2.0.3/dbhome_1/install/disable_dv.log... /usr/bin/make -f /u01/app/oracle/product/11.2.0.3/dbhome_1/rdbms/lib/ins_rdbms.mk dv_off ORACLE_HOME=/u01/app/oracle/product/11.2.0.3/dbhome_1 /usr/bin/make -f /u01/app/oracle/product/11.2.0.3/dbhome_1/rdbms/lib/ins_rdbms.mk ioracle ORACLE_HOME=/u01/app/oracle/product/11.2.0.3/dbhome_1 abcde0025: (abncu1) /u01/abncu/admin>
Started the db and checked for the value which was disabled (FALSE) and GoldenGate extract started working.
SYS@xxxxx1 > SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault'; PARAMETER VALUE ---------------------------------------------------------------- ---------------------------------------------------------------- Oracle Database Vault FALSE
References
http://docs.oracle.com/cd/E11882_01/server.112/e23090/db_objects.htm#DVADM71151
http://docs.oracle.com/cd/E11882_01/install.112/e17214/postinst.htm#CHDBDCGE
One thought on “ORA-26723: user “XXXXX” requires the role “DV_GOLDENGATE_REDO_ACCESS””