ORACLE 11G双节点RAC配置单实例DG

一、环境

database
db_unique_name
net service name
SID
os version
DB version
primary
jgsb
jg_pd
jgsb
oracle linux 6.7 x64
11.2.0.4
physical standby
jgsbdg
jg_st
jgsb
centOS 6.5 x64

11.2.0.4
主库为两个节点的rac服务器,备库为单实例环境,创建一个名jgsb的实例, 备库创建实例是为了简化配置。


二、安装步骤

1、主库设置为 force logging 模式
SQL> alter database force logging;
--验证:
SQL> select force_logging from v$database;


2、主库添加standby redo日志文件

select group#,thread#,members,status,bytes/1024/1024 m from v$log;
select group#,type,member from v$logfile order by 2;
添加规则:大小和 online redo 相同,比 online redo group 多一组。
alter database add standby logfile thread 1 group 21('+DATA') size 300m;
alter database add standby logfile thread 1 group 22('+DATA') size 300m;
alter database add standby logfile thread 1 group 23('+DATA') size 300m;
alter database add standby logfile thread 1 group 24('+DATA') size 300m;
alter database add standby logfile thread 1 group 25('+DATA') size 300m;
alter database add standby logfile thread 1 group 26('+DATA') size 300m;
alter database add standby logfile thread 1 group 27('+DATA') size 300m;
alter database add standby logfile thread 1 group 28('+DATA') size 300m;

alter database add standby logfile thread 2 group 31('+DATA') size 300m;
alter database add standby logfile thread 2 group 32('+DATA') size 300m;
alter database add standby logfile thread 2 group 33('+DATA') size 300m;
alter database add standby logfile thread 2 group 34('+DATA') size 300m;
alter database add standby logfile thread 2 group 35('+DATA') size 300m;
alter database add standby logfile thread 2 group 36('+DATA') size 300m;
alter database add standby logfile thread 2 group 37('+DATA') size 300m;
alter database add standby logfile thread 2 group 38('+DATA') size 300m;


3、添加监听及网络别名

3.1配置tns文件,主库两个节点及备库均配置以下内容。

修改 $ORACLE_HOME/network/admin/tnsnames.ora

JG_PD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.136.3.86)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.136.3.87)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = jgsb)
    )
  )

#上面的ip地址为rac的两个vip地址

JG_ST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.136.3.83)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = jgsb)(UR=A)
    )
  )


分别在主备库用测试tnsping jg_pd ,tnsping jg_st是否能通,如果不行可以考虑使用netmgr工具配置。

3.2配置listen文件

修改 $ORACLE_HOME/network/admin/listener.ora,需要注意的是主库需要使用grid用户cd到该目录,而备用库则使用oracle用户cd到该目录进行修改。

主库1:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = jgsb)
      (ORACLE_HOME = /oracle/product/11.2)
      (SID_NAME = jgsb1)
    )
  )



主库2:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = jgsb)
      (ORACLE_HOME = /oracle/product/11.2)
      (SID_NAME = jgsb2)
    )
  )

#注意以上ORACLE_HOME路径为oracle用户的ORACLE_HOME位置,而非grid用户的。

备库:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = jgsbdg)
      (ORACLE_HOME = /oracle/app)
      (SID_NAME = jgsb)
    )
  )


#以上配置修改完成后,需要lsnrctl stop ,lsnrctl start,rac数据库需要使用grid用户执行命令。


4、修改主库参数文件:

alter system set db_unique_name='jgsb'  scope=spfile sid='*';     #该参数需要重启生效
alter system set log_archive_config='dg_config=(jgsb,jgsbdg)'   scope=both sid='*'; 
alter system set log_archive_dest_1='location=+DATA  valid_for=(all_logfiles,all_roles) db_unique_name=jgsb'   scope=both sid='*'; 
alter system set log_archive_dest_2='service=jg_st valid_for=(online_logfiles,primary_role) db_unique_name=jgsbdg'   scope=both sid='*'; 
alter system set log_archive_dest_state_1=enable   scope=both sid='*'; 
alter system set log_archive_dest_state_2=enable   scope=both sid='*'; 
alter system set standby_file_management='auto'   scope=both sid='*'; 
alter system set fal_server='jg_st'   scope=both sid='*'; 
alter system set db_file_name_convert='+data/jgsb/','/oradata/JGSB/','+oradata/jgsb/','/oradata/JGSB/'  scope=spfile sid='*';     #该参数需要重启生效
alter system set log_file_name_convert='+data/jgsb/','/oradata/JGSB/','+oradata/jgsb/','/oradata/JGSB/'  scope=spfile sid='*';    #该参数需要重启生效

#说明一下db_file_name_convert参数用于配置主库与备库进行数据文件路径转换的映射关系,由于我这里主库有的数据diskgroup 有两个,所以这里需要分配配置。另外需要注意,以上路径必须真实存在且属主权限正确。log_file_name_convert参数类似。

#db_file_name_convert与log_file_name_convert参数配置后生成文件效果:

'+data/jgsb/'------'/oradata/JGSB/'配置对应实际路径如下:
'+data/jgsb/datafile/ts_gioidata.7499.927058697'-----'/oradata/JGSB/datafile/ts_gioidata.7499.927058697'

'+data/jgsb/'------'/oradata/JGSB/'配置对应实际路径如下:
'+DATA/jgsb/onlinelog/group_24.4774.935574635'-----'/oradata/JGSB/onlinelog/group_24.4774.935574635’


5、修改备库参数文件:

alter system set db_unique_name='jgsbdg'  scope=spfile ;   #该参数需要重启生效
alter system set log_archive_config='dg_config=(jgsb,jgsbdg)'   scope=spfile ; 
alter system set log_archive_dest_1='location=/oradata/arch  valid_for=(all_logfiles,all_roles) db_unique_name=jgsbdg'   scope=spfile ; 
alter system set log_archive_dest_2='service=jg_pd valid_for=(online_logfiles,primary_role) db_unique_name=jgsb'   scope=spfile ; 
alter system set log_archive_dest_state_1=enable   scope=spfile ; 
alter system set log_archive_dest_state_2=enable   scope=spfile ; 
alter system set standby_file_management='manual'   scope=spfile ; 
alter system set fal_server='jg_pd'   scope=spfile ; 
alter system set db_file_name_convert='+data/jgsb/','/oradata/JGSB/datafile/','+oradata/jgsb/','/oradata/JGSB/datafile/' scope=spfile ;  #该参数需要重启生效
alter system set log_file_name_convert='+data/jgsb/','/oradata/JGSB/onlinelog/','+oradata/jgsb/','/oradata/JGSB/onlinelog/' scope=spfile ;#该参数需要重启生效

备库重启后,需要修改service_names,命令如下:

alter system set service_names='jgsb'  scope=both ;    #与tnsname中服务名对应


6、传输口令文件到备用库
scp orapwjgsb1 root@192.136.3.83:/oracle/app/dbs/


7、rman duplicate 复制

将备用库启动到nomount

rman target sys/system@jg_pd auxiliary sys/system@jg_st


duplicate target database for standby from active database nofilenamecheck; #文件目录相同时使用该命令
duplicate target database for standby from active database dorecover;    #文件目录不相同时使用该命令


#成功完成duplicat后,输出日志如下:

media recovery complete, elapsed time: 00:00:03
Finished recover at 14-FEB-17
Finished Duplicate Db at 14-FEB-17


8、备库open以及启动mrp进程

alter database open;

并执行以命令:

alter system set standby_file_management='auto' scope=both ; #用于配置备库文件自动管理


启动mrp命令:
alter database recover managed standby database disconnect from session;  非实时应用,日志传输到备用库后不会立即应用日志。
alter database recover managed standby database using current logfile disconnect; 实时应用,日志传输到备用库后会实时读取日志中的信息并解析。


三、验证及常用命令

1、验证

验证的方法有许多,最简单直观的是在主库新建一个测试表,然后在备用库查看是否有生成。


也可以通过查看v$archived_log  的applied来查看日志应用情况,方法如下:

查看主备用日志应用情况,applied 为yes为代表已经应用该日志,inmemory 代表正在应用。

select THREAD#,sequence#,applied from v$archived_log  where THREAD#='1' order by 1,2;
select THREAD#,sequence#,applied from v$archived_log  where THREAD#='2' order by 1,2;


又或者通过在主库执行以下sql语句,若有错误则会在error中给出错误信息

col error for a10
col dest_name for a20
SQL> select DEST_NAME,STATUS,PROCESS,ERROR,TRANSMIT_MODE from v$archive_dest WHERE TARGET='STANDBY';
DEST_NAME           STATUS   PROCESS  ERROR  TRANSMIT_MOD
-------------------- --------- ---------- ---------- ------------
LOG_ARCHIVE_DEST_2  VALID    LGWR            ASYNCHRONOUS


2、常用命令

取消mrp
alter database recover managed standby database cancel;

启动mrp

alter database recover managed standby database disconnect from session;  非实时应用
alter database recover managed standby database using current logfile disconnect; 实时应用

查看gap
select * from V$ARCHIVE_GAP;   
查看dg日志
select message from v$dataguard_status;
查询数据库保护模式
select database_role,protection_mode,protection_level from v$database;







  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值