欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle 11g两个节点RAC搭建单实例DG过程问题以及解决方法

程序员文章站 2024-01-25 11:25:10
...

先把备库open,然后打开MRP进程,这时候备库的状态变成了open read only ,但是 还是不能同步。一定注意顺序,在打开MRP之前

以前搭建过单实例数据库的DG,感觉挺简单的,后来来到公司第一个项目是给RAC搭建DG,信心满满的自己,真的是费尽心思啊,各种请教,各种百度,终于艰难的完成了任务,下面细说在下遇见的问题。

一:首先,第一个问题就是,CRT远程连接服务器,连接不上,因为我要给异地的rac搭建DG,处在局域网覆盖之外,问老大才知道需要借助VPN,建立虚拟专用网络隧道,用户不再需要处于企业局域网络平台覆盖范围之内,通过局域网接入方式来访问企业网络应用服务。具体VPN使用方法,不做介绍。

二:安装数据库软件的时候,在CRT中运行./runinstall 没报错,就是不显示图像化安装界面,问领导才知道原来是要借助一个工具VNC,安装好VNC 然后选择VNC view 输入:192.168.15.9:1,冒号后的1没有什么意义,但是首先你要在CRT先输入命令行输入:vncserver 如下:
[root@java3 ~]# vncserver
New 'java3:6 (root)' desktop is java3:1

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/java3:6.log

然后再进入vnc view 输入要连接的服务器IP:1,输入vnc密码,在这里执行./runinstall ,我靠终于有了,感觉好神奇的样子 ,哈哈

三:首先我对照自己以前给单实例的数据库搭建DG的笔记,给主库修改参数文件,要把spfile 创建成pfile,想当然直接 create pfile from spfile ;

现在才意识这样做的危害,原因是这样的,在RAC环境,SPFILE默认情况下会存放在共享存储上(裸设备或ASM磁盘组上),RAC的每个节点都是使用PFILE指向SPFILE的方法来完成SPFILE的定位的。即pfile文件中存放的是spfile的路径。
如:[Oracle@rac1]#cat /oracle/app/oracle/product/10.2.0/db_1/dbs/nitracdb1.ora

spfile=+DATA/racdb/spfileracdb.ora

一旦使用“create pfile from spfile;”命令创建PFILE后,新生成的PFILE将覆盖原有dbs目录下的PFILE,此时PFILE文件中存放的是具体的参数,而不是spfile的路径了,此后数据库实例启动时读取的将不再是共享存储上的SPFILE,转而读取本地的PFILE文件的内容,当时没什么问题,但是当数据库重启之后,会给DBA的管理带来麻烦。
四:由于是直接将rac的参数文件文件传给standby数据库的,该修改的地方也修改完毕,可是启动实例的时候报错,

SQL> startup nomount
ORA-00439: feature not enabled: Real Application Clusters

试图通过查看错误信息,来解决,没有成功

[oracle@java3 ~]$ oerr ora 00439
00439, 00000, "feature not enabled: %s"
// *Cause: The specified feature is not enabled.
// *Action: Do not attempt to use this feature.

原来是 备库参数文件里的 参数cluster_database =true 要修改成false, 这个cluster_database 是用来确定数据库是否在rac环境的集群中的,等于true的时候,实例启动的时候,会把数据库当成是集群,故报错。

五:根据参数文件 *.audit_file_dest='/oracle/admin/JLPROJCT/adump' #审计文件的位置,

在备库建立相应目录(如果不存在的话),这个目录必须要属于oracle:oinstall 。否则也会报错,,具体错误忘记录了。

六:SQL> startup nomount;
ORA-48141: error creating directory during ADR initialization [/oracle/diag] #提示不能创建目录

ORA-48189: OS command to create directory failed

Linux-x86_64 Error: 13: Permission denied #权限问题,用root创建目录,然后改属组。

Additional information: 2

[root@java3 ~]# mkdir -p /oracle/diag
[root@java3 ~]# chown -R oracle:oinstall /oracle/diag

七:SQL> startup nomount
ORA-00119: invalid specification for system parameter REMOTE_LISTENER

ORA-00132: syntax error or unresolved network name 'rac-scan:1521'

删掉 参数文件里的 REMOTE_LISTENER这行 他是关于rac的

八:[oracle@rac1 ~]$ rman target auxiliary ;
Recovery Manager: Release 11.2.0.3.0 - Production on Sat Feb 28 17:44:04 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

connected to target database: JLPROJCT (DBID=2115662724)

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-00554: initialization of internal recovery manager package failed

RMAN-04006: error from auxiliary database: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

这个报错来自于备库,备库监听没有监听到连接串,定位到主库tnsname.ora或者是备库的listener.ora 有错。 好好检查

九:报错 说 控制文件 不能创建 你应该看看 参数文件里面制定的控制文件的位置 是不是存在 或者oracle用户是不是有权限。

RMAN> duplicate target database for standby from active database nofilenamecheck;

Starting Duplicate Db at 28-FEB-15
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=2273 device type=DISK

contents of Memory Script:
{
backup as copy reuse
targetfile '/oracle/product/11.2.3/dbs/orapwJLPROJCT1' auxiliary format
'/opt/oracle/product/11.2.0/dbhome_1/dbs/orapwJLPROJCT3' ;
}
executing Memory Script