我是靠谱客的博主 潇洒老虎,最近开发中收集的这篇文章主要介绍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

    数据库成功启动,问题解决



最后

以上就是潇洒老虎为你收集整理的oracle RAC LOG_ARCHIVE_DEST_1 与 LOG_ARCHIVE_DEST 冲突解决的全部内容,希望文章能够帮你解决oracle RAC LOG_ARCHIVE_DEST_1 与 LOG_ARCHIVE_DEST 冲突解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部