oracle RAC LOG_ARCHIVE_DEST_1 與 LOG_ARCHIVE_DEST 衝突解決

在做 oracle RAC 歸檔日誌配置時,出現了一個錯誤,開始看資料的時候,

注意到了 LOG_ARCHIVE_DEST_n 與 LOG_ARCHIVE_DEST 不能同時使用,

但在配置的時候並沒有往心裏去,一直都在想,出現問題再解決也不遲。

於是乎當由於同時配置了  LOG_ARCHIVE_DEST_1  與 LOG_ARCHIVE_DEST 或者 LOG_ARCHIVE_DUPLEX_DEST 後,

停止數據庫,執行 startup mount 時,出現如下錯誤

SQL> startup mount
ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST

數據庫啓動不了,參數也改不了,只能修改 pfile 了。

ORACLE RAC 環境下的 pfile 都是存在 ASM 磁盤組裏面,

1. 查看本地 spfile ,找到spfile 實際路徑

cd $ORACLE_HOME/dbs
less initracdb1.ora
內容如下
SPFILE='+ORCLDATA/racdb/spfileracdb.ora'

    可以發現,他是做了一個連接,連接指向 ASM 磁盤組的共享 spfile 


2. 通過 spfile 創建 profile

    如果直接使用 create pfile='/tmp/oracle/init.ora' fromspfile; 語句的話,我們會發現,導出的 init.ora 並不是完整的 spfile 。

    因此我們需要指定 asm spfile 路徑

SQL> create pfile='/tmp/oracle/init.ora' from spfile=' +ORCLDATA/racdb/spfileracdb.ora';

3. 修改 profile 文件,去掉或註釋掉衝突項

    

vi /tmp/oracle/init.ora

    這裏就是衝突的原因



    去掉 *.log_archive_dest='/u01/app/archivelog'


4. asmcmd裏備份原來的spfile 

    使用 asmcmd 之前,grid 用戶需要添加如下環境變量

export ORACLE_SID=+ASM1
export ORACLE_HOME=/u01/app/11.2.0/grid
export PATH=$PATH:$ORACLE_HOME/bin

    執行

su - grid
asmcmd

    asmcmd下的文件操作命令與 linux 類似


ASMCMD> cd +ORCLDATA/racdb/
ASMCMD> cp spfileracdb.ora spfileracdb.ora.bak
ASMCMD> ls

    備份完成



5. 根據 pfile 創建 spfile

SQL> create spfile='+ORCLDATA/racdb/spfileracdb.ora' from pfile='/tmp/oracle/init.ora';

6. 驗證 spfile 是否生效

ASMCMD> cp spfileracdb.ora /tmp/oracle/spfil.ora

vi /tmp/oracle/spfil.ora

    我們發現衝突選項已經沒有了

7. 啓動數據庫

    

SQL> startup

    數據庫成功啓動,問題解決



發佈了67 篇原創文章 · 獲贊 19 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章