概述
在做 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 冲突解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复