天天看點

資料庫層預克隆報無法建立日志檔案

報錯資訊如下:

RC-00205: Exception while writing the LOG information to adcrdbclone.sql           ——在寫redo log資訊到adcrdbclone.sql 腳本時報錯。

Raised by oracle.apps.ad.tools.AdCreateCtlFile

RC-50208: Exception  in method gen_SQL_script

RC-50208: Exception  in method gen_crctrf_sql

RC-50208: Exception  in Constructor AdCreateCtlFile

StackTrace:

java.lang.ArrayIndexOutOfBoundsException: 3 >= 3

        at java.util.Vector.elementAt(Vector.java(Compiled Code))

        at oracle.apps.ad.tools.AdCreateCtlFile.build_log_sql(AdCreateCtlFile.java:1990)

        at oracle.apps.ad.tools.AdCreateCtlFile.gen_SQL_script(AdCreateCtlFile.java:1766)

        at oracle.apps.ad.tools.AdCreateCtlFile.gen_crctrf_sql(AdCreateCtlFile.java:841)

        at oracle.apps.ad.tools.AdCreateCtlFile.<init>(AdCreateCtlFile.java:416)

        at oracle.apps.ad.clone.StageDatabase.doStage(StageDatabase.java:422)

        at oracle.apps.ad.clone.StageDatabase.<init>(StageDatabase.java:263)

        at oracle.apps.ad.clone.StageDBTier.<init>(StageDBTier.java:188)

        at java.lang.reflect.Constructor.newInstance(Native Method)

        at oracle.apps.ad.clone.util.CloneProcessor.run(CloneProcessor.java:68)

        at java.lang.Thread.run(Thread.java:513)

RC-40001: Failed to create sql script adcrdbclone.sql for recreating control files at target

Raised by oracle.apps.ad.clone.StageDatabase

從metalink上找到一篇類似的文檔:

Adpreclone.Pl Dbtier Fails With Error Rc-50208 ORA-00942 (文檔 ID 1394993.1)

但是他的錯誤資訊是:

資料庫層預克隆報無法建立日志檔案

跟我們的錯誤還是有一點差别。

分析:

看日志似乎是在說,建立日志組數大于3組了,超過了限定值,有可能是個bug,但是我同僚的系統,環境版本跟我的一樣,卻有6組redo log,也不會報錯。我的才5組。。

決定嘗試從我同僚的環境把他環境裡的這個目錄$ORCLE_HOME/appsutil/clone/jlib/java打包給我,裡面是class檔案,雖然我的是AIX系統,他的是linux,但是class檔案沒有平台的區分,應該可以。

拷貝過來,替換掉我的,發現還是報錯。

之後又嘗試了重新生産appsutil.zip檔案。運作autocfg等操作,還是不行。

解決:

既然報錯不能建立日志檔案,那就在源環境中,檢視下redo log有沒有問題,通過plsql dev連接配接資料庫後。查詢發現日志組1中,一個成員的名字最後有一個空格。

然後,嘗試重建這個日志組,消除空格。再次運作preclone,成功解決。