oracle RAC LOG_ARCHIVE_DEST_1 与 LOG_ARCHIVE_DEST 冲突解决

前端之家收集整理的这篇文章主要介绍了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相关文章