Oracle 11g 两个节点RAC 搭建单实例DG详细步骤以及注意事项

环境介绍:

OS: 都是 [[email protected] ~]# uname -a

Linux java3 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux

主库:  数据库版本:11.2.0.3.0  两个节点的RAC  节点一:192.168.15.26  节点二:192.168.15.27

standby 数据库版本:  11.2.0.3.0      IP 192.168.15.9

备库 只安装了数据库软件  没有建库

具体步骤:

一:在192.168.15.9 这台服务器上安装数据库软件,不多介绍。

二:修改主库参数

参数 可以11g官方手册 book list --DAT--Data Guard Concepts and Administration--3.1 Preparing the Primary Database for Standby Database Creation--3.1.4  中的例子中看到要在主库参数文件里面应该有的的参数(如果没有要添加),如下所示:

DB_NAME=chicago                        #主库的数据库名  
DB_UNIQUE_NAME=chicago                #主库的数据库名备库 也有属于自己的唯一数据库名
LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(chicago,boston)‘        #注意括号里主备库的位置  
CONTROL_FILES=‘/arch1/chicago/control1.ctl‘, ‘/arch2/chicago/control2.ctl‘      #这个参数主库不需要改,备库要改成自己存在的路径  LOG_ARCHIVE_DEST_1=              #这个参数是制定本地(主库)归档日志文件的位置
 ‘LOCATION=/arch1/chicago/ 
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=chicago‘      # 这里是备库的数据库唯一名 
LOG_ARCHIVE_DEST_2=            #这个参数是说是作为主库的这一方要传递联机在线日志到数据库唯一名为boston的备库。
 ‘SERVICE=boston ASYNC          #异步传输
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=boston‘        #此处填写备库数据库名,
LOG_ARCHIVE_DEST_STATE_1=ENABLE    #开启传输日志的服务  
LOG_ARCHIVE_DEST_STATE_2=ENABLE    
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE  #远程登录口令文件用于验证管理用户或重做传输会话时,必须设置成exclusive或shared
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc      #设置归档日志文件的格式

FAL_SERVER=boston                    #此处是填写备库的数据库名,该参数只是作为standby数据库时才有用,意思是说备库把这里指定的主库的数据库名作为服务器端,并获取请求。针对这个参数,如果不打算主备库转换,没必要在主库设该参数。
DB_FILE_NAME_CONVERT= ‘/backup/‘,‘+data/jlprojct/datafile/‘    #该参数是个静态参数,其作用是在主库执行duplicate时的recovere过程根据主库的数据文件位置转换成这里指定的备库合适的位置,经测试是根据备库的这个参数转变,和主库没有关系,也就是说在主库执行duplicate会根据备库的这个参数指定的位置在备库产生数据文件。如果你在主库添加一个新的数据文件,你必须在备库相应位置建立相应的数据文件。
LOG_FILE_NAME_CONVERT=  #类似于上一个参数,注意修改这个参数时,如果你的主库的日志文件有若干个不同路径,你都要写进来,
 ‘/arch1/boston/‘,‘/arch1/chicago/‘,‘/arch2/boston/‘,‘/arch2/chicago/‘

STANDBY_FILE_MANAGEMENT=AUTO    #这个参数是说当你设置成auto后,你在主库添加或删除数据文件,会自动在备库做相应的操作,要注意不要覆写已经存在的数据文件。别起一样的名。

如果要求主数据库不能停机(也就是不能重启的话),那么你可以通过以下这些命令修改主库的参数。修改完之后create pfile.ora    =‘/backup/pfile.ora from spfile=‘/Oracle/product/11.2.3/dbs/initJLPROJCT1.ora‘;

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1=‘location=+arch/jlprojct/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=JLPROJCT‘;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=‘SERVICE=JLPROJCT3  ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=JLPROJCT3‘;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=spfile;

System altered.

SQL>  ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=spfile;

System altered.

SQL>  ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_FORMAT=‘%t_%s_%r.arc‘ scope=spfile;    #静态参数,不重启,不起作用 ,所以不让重启可以不改它。

System altered.

SQL> ALTER SYSTEM SET FAL_CLIENT = JLPROJCT SCOPE=SPFILE;            #  fal_client也是设置本身,fal_server是对方

System altered.

SQL> ALTER SYSTEM SET FAL_SERVER = JLPROJCT3 SCOPE=SPFILE;

System altered.

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=SPFILE;

System altered.

SQL> ALTER SYSTEM SET DB_FILE_NAME_CONVERT=‘/backup/‘,+data/jlprojct/datafile/‘ scope =spfile;    #静态参数,不重启,不起作用 ,所以不让重启可以不改它。

System altered.

SQL> ALTER SYSTEM SET  LOG_FILE_NAME_CONVERT=‘+DATA/jlprojct/onlinelog/‘,‘/backup/‘,‘+ARCH/jlprojct/onlinelog/‘,‘/backup/‘scope =spfile;                          #静态参数,不重启,不起作用 ,所以不让重启可以不改它。

System altered.

三 ;修改主库的监听和tnsname.ora 文件

1,主库监听listener.ora文件 添加 (如果有就不修改)

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=JLPROJCT)

(ORACLE_HOME=/oracle/product/11.2.3)

(SID_NAME=JLPROJCT1)))

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.15.26)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)


 
2.主库tnsname.ora 添加备库的相关信息。

JLPROJCT3 =      #备库的相关信息

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.15.9)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = JLPROJCT3)

(INSTANCE_NAME = JLPROJCT3)

)

)

db26 =                  #主库相关信息  执行duplicate之前 要rman 同时连接主库和备库,连接主库时,会用到这个连接字符串。

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.15.26)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = JLPROJCT)

四:在主库用scp 把listener.ora  ,tnsname.ora ,initJLPROJCT1.ora,pfile.ora  传给备库 然后进行相应的修改(参数文件不需要修改内容,但是要改名 和备库实例名相对应 :[[email protected] dbs]$ mv orapwJLPROJCT orapwJLPROJCT3  )

[[email protected] ~]$ scp listener.ora tnsnames.ora initJLPROJCT1.ora  [email protected]:`pwd`;      #冒号后面的pwd 意思是说要把文件传到备库的当前路径下(也就是此时在主机上 pwd 显示的路径)

把监听的信息改成备库的,tnaname.ora添加主库的相关信息。

1.备库监听listener.ora 内容如下:

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=JLPROJCT3)

(ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1)

(SID_NAME=JLPROJCT3)))

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.15.9)(PORT = 1521))              #主机IP

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

ADR_BASE_LISTENER = /opt/oracle

2.备库tnsname.ora 内容:

JLPROJCT =                  #主库相关信息  这里的连接字符串和主库tnsname.ora 里面的不一样,不影响,随便起的名字

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.15.26)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = JLPROJCT)

JLPROJCT3 =      #备库的相关信息      如果仅仅是做standby 数据库,不填他自己这个也行。

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.15.9)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = JLPROJCT3)

(INSTANCE_NAME = JLPROJCT3)

)

)

备库参数文件修改 :

DB_NAME=JLPROJCT                    #因为就一个数据库  所以此处不变

DB_UNIQUE_NAME=JLPROJCT3    #这里要写成了备库数据库唯一名,便于区分主备库,即使转换角色也不改名。

LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(JLPROJCT3,JLPROJCT)‘      #括号里面和主库括号里面的前后位置改变。

LOG_ARCHIVE_DEST_1=

‘location=/opt/oracle                          #填上备库有的目录,保证有空闲空间 ,以及有权限读写,

VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

DB_UNIQUE_NAME=JLPROJCT3‘          #备库名字

LOG_ARCHIVE_DEST_2=

‘SERVICE=JLPROJCT ASYNC                  #主库的名字

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

DB_UNIQUE_NAME=JLPROJCT‘            #主库名字

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

LOG_ARCHIVE_FORMAT=%t_%s_%r.arc

FAL_SERVER=JLPROJCT                      #主库名字

DB_FILE_NAME_CONVERT=‘+data/jlprojct/datafile/‘,‘/backup/‘            #等号后的两个路径换位置

LOG_FILE_NAME_CONVERT=

‘+DATA/jlprojct/onlinelog/‘,‘/backup/‘,‘+ARCH/jlprojct/onlinelog/‘,‘/backup/‘          #等号后的两个路径换位置

STANDBY_FILE_MANAGEMENT=AUTO 
五:在备库上 把修改过后的pfile 创建成spfile,然后 改名 ,并把备库实例启动到nomount状态 [email protected]> create  pfile from spfile;        
File created.

六:在主库上添加standby 日志组 添加的个数为:(主库原来有的个数n+1)*线程数 ,这里所说的线程数可以理解为实例的个数,这里有10个日志组,所以要添加(10+1)*2=22组。大小和路径最好和原来的保持一致, 
DG有两种传递日志的方式,一种是常见的archivr log,由ARCH的后台进程控制传递到standby数据库,还有一种是和redo log一样的传递方式,由产生redo log的后台进程LGWR控制,后者就需要standby log 
在最大可用和最大保护模式,因为是采用LGWR SYNC进行redo的传送,一定要用standby logfile,但是建议在最大性能模式也添加standby logfile,据说在失败切换时可以恢复更多的数据

添加命令如下:

alter database add standby logfile group 15 (‘+DATA/jlprojct/onlinelog/group_15‘) size 2000M;

六:在主库进行测试  成功后继续进行  ,打开主备库的监听,关闭防火墙,

[[email protected] ~]$ tnsping JLPROJCT3

TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 05-MAR-2015 17:45:23

Copyright (c) 1997, 2011, Oracle.  All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias
 Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.15.9)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = JLPROJCT3) (INSTANCE_NAME = JLPROJCT3)))
 OK (0 msec)

[[email protected] ~]$ tnsping db26

TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 05-MAR-2015 17:46:43

Copyright (c) 1997, 2011, Oracle.  All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias
 Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.15.26)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = JLPROJCT)))
 OK (10 msec) 
七:在主库用rman 同时连接主备库。 
[[email protected] ~]$  rman target sys/[email protected] auxiliary sys/[email protected]

Recovery Manager: Release 11.2.0.3.0 - Production on Thu Mar 5 17:51:23 2015

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

connected to target database: JLPROJCT (DBID=2115662724)
 connected to auxiliary database: JLPROJCT (not mounted )

八:在主库执行duplicate命令,最关键的一步,备份主库的控制文件,数据文件,日志文件,然后传给备库,并在备库recover ,如果没有报错的话,备库就会Open了。

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

九:read only  的方式,打开备库数据库实例。

[email protected]> alter database open read only;

Database altered.

十:在备库打开MRP进程 ,应用日志,重演变化。注意:一定要保证备库实例是在 read only 的方式下打开的,否则不能同步。

[email protected]> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered. 
十一:测试结果:在主库随便建立一个用户,并在这个用户下建立一个表,发现备库也会有,证明DG搭建成功。

转:http://www.linuxidc.com/Linux/2015-03/115167.htm

时间: 2024-10-08 01:40:38

Oracle 11g 两个节点RAC 搭建单实例DG详细步骤以及注意事项的相关文章

Oracle - 给rac创建单实例dg,并做主从切换

一.概述 本文将介绍如何给rac搭建单节点的dg,以及如何对其进行角色转换.预先具备的知识(rac搭建,单实例-单实例dg搭建) 二.实验环境介绍 主库rac(已安装rac,并已有数据库orcl)rac1:192.168.56.11,sid1:orcl1,version:11.2.0.4rac2:192.168.56.12,sid2:orcl2,version:11.2.0.4 从库(已安装单实例数据库软件,无数据库实例)oradg:192.168.56.102,sid:orcldg,versi

Oracle_lhr_CentOS 7.3 ECS上搭建RAC 18c+单实例DG+EMCC+DG

Oracle_lhr_CentOS 7.3 ECS上搭建RAC 18c+单实例DG+EMCC+DG的FSFO快速故障转移配置 [大型连续免费公开课]Oracle 18c rac+dg+13.3的emcc部署配置(2018年最后一次免费公开课) 报名连接:https://ke.qq.com/course/315575 讲师:小麦苗 预计课时:6课时 开课时间:11月9日20点 相关软件下载地址:https://share.weiyun.com/57HUxNi 听课福利: 1.获得讲课文档pdf和课

oracle rac与单实例dg 切换测试

rac与单实例dg 切换测试 一.环境概述 1.环境 orace rac&单实例dg os: centos 5.8 64位 oracle: 10.2.0.4 2.dg同步状态 rac1: dg: dg现已同步状态 3.归档情况 rac dg: 二.rac切备,dg切主,切换测试 1.rac1&rac2 手工切归档 rac1: alter system switch logfile;执行两次 两次间隔30s rac2: alter system switch logfile;执行两次 两次间

RAC对单实例DG redo大小日志修改

解决思路是:先备库增加standby redo删除老standby redo,然后主库增加standby redo删除老standby redo,主库增加新redo删除老redo,最后备库库增加 redo删除老redo. 查看主库redo日志信息: SELECT a.group#,        a.thread#,        a.bytes / 1024 / 1024 "size_mb",        a.members,        a.status,        b.M

Oracle 11g RAC到单实例ASM的物理Standby搭建

一.DG环境配置 此次搭建Standby的主库为:" RedHat 6.5+11G+RAC+ASM安装与配置(三节点)",11g单实例ASM安装使用ASMLib的方式,不在使用UDEV方式,磁盘为本机磁盘,非远程挂载的磁盘.本次搭建包含了11g单实例ASM的详细安装过程. 1. 基本环境 主库: 实例名:racdb1,racdb2,racdb3        DB_NAME:racdb              DB_UNIQUE_NAME:racdb 备库: 实例名:racdg  

搭建rac对单实例的MAA

一:实验环境 系统:redhat 4 三台计算机rac1,rac2,dg. --其中rac为主库,单实例为备库 已在虚拟机里搭建好集群环境(rac1,rac2); dg计算机里没有建任何数据库(只安装了Oracle软件). 二:实验步骤 单实例环境部署请参考文档‘Linux下安装Oracle 10g(redhat 4)’. 3.1:enable forced logging --将主库设为强制归档 SQL> select force_logging from v$database; FOR --

Oracle RAC 转换为单实例

OS:redhat 5.8 DB:Oracle RAC 10.2.0.5.0(raw devices) 背景:由于存储IO瓶颈,客户voting disk磁盘写入速度为几kb每秒,导致两节点宕机.只要启动crs就宕机,由于白天业务需要正常运行.所以将rac临时转换为单实例用 总体步骤: 1.创建pfile 2.relink oracle 3.pfile启动数据库 4.配置VIP rac转换为单机: 1.创建pfile [[email protected] bin]$ sqlplus / as s

如何一步一步删除(linux & UNIX)环境下 oracle 11g 集群节点

 Deleting a Cluster Node on Linux and UNIX Systems 1.确定要删除的节点,是否active,pinned $ olsnodes -s -t 如果 pinned ,则crsctl unpin css  -n <nodename>  unpinned 相应的节点 2.禁用相应集群节点的应用资源,进程 先停掉 em: emctl stop dbconsole 以root 用户运行 在要删除节点的 $Grid_home/crs/install 路径

ORACLE11g R2【RAC+ASM→单实例FS】

ORACLE11g R2[RAC+ASM→单实例FS] 11g R2 RAC+ASMà单实例FS的DG,建议禁用OMF. 本演示案例所用环境:   primary standby OS Hostname node1,node2 std OS Version RHEL6.5 RHEL6.5 DB Version 11.2.0.4 11.2.0.4 db_name stephen stephen db_unique_name stephen standby service_names stephen