ora-01422: exact fetch returns more than requested number of rows
CSM.DBASep 12 2012 — edited Sep 12 2012Hi Guys,
Today I came across an issue with Dataguard. Whenever I tried starting real time apply through
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
Database altered.
it's saying Database altered but the apply process didn't start.
When I go and look in alert log, It's saying
LOGMINER: Parameters summary for session# = 1
LOGMINER: Number of processes = 12, Transaction Chunk Size = 1000
LOGMINER: Memory Size = 600M, Checkpoint interval = 3000M
LOGMINER: SpillScn 7330749370798, ResetLogScn 1
LOGSTDBY status: ORA-00604: error occurred at recursive SQL level 1
ORA-01422: exact fetch returns more than requested number of rows
Errors in file /RDBMS/app/oracle/product/diag/rdbms/cr38devs/cr38devs/trace/cr38devs_lsp0_12111.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-01422: exact fetch returns more than requested number of rows
After googling around i found the reason that there are some duplicate rows in some of the tables which is preventing the apply process to start.
I found a workaround as well that setting allow_duplicate_rows to TRUE will make the apply process ignoring the duplicates. But I didn't find from a single source on how to set this.
Please provide your thoughts on this.
Regards,
CSM