Oracle 11g 单实例到RAC DG搭建步骤_oracle11g单节点怎么变成rac-程序员宅基地

技术标签: Data Guard  Oracle 11g  

1.Oracle单实例到RAC DG搭建步骤

1.1.环境说明

角色 主库 备库
IP 192.168.1.59 192.168.1.51/52
数据库类型 单实例 RAC
实例 orcl orcl1,orcl2
db_name orcl orcl
db_unique_name orcl_st orcl
服务名 orcl_st orcl_pd

1.2.主库设置为 force logging 模式

SQL> alter database force logging;

Database altered.
SQL> select force_logging from v$database;

FORCE_LOGGING
---------------------------------------
YES

1.3.修改主库为归档模式

1.3.1.查看是否归档

SQL> archive log list
Database log mode       No Archive Mode
Automatic archival       Disabled
Archive destination       /oracle/app/oracle/product/12.1.0/db_1/dbs/arch
Oldest online log sequence     22
Current log sequence       23

1.3.2.修改归档路径参数

sqlplus / as sysdba
SQL> alter system set log_archive_dest_1='location= /oracle/archive' scope=spfile sid='*';

1.3.3.开启归档模式

将数据库启动到mount状态并修改数据库的归档模式并启动数据库
SQL>shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;

1.3.1.查看归档模式

SQL>  archive log list
Database log mode       Archive Mode
Automatic archival       Enabled
Archive destination       /oracle/archive
Oldest online log sequence     59
Next log sequence to archive   60
Current log sequence       60

1.4.配置主备库的监听:listener.ora

用 net manager 工具,在备库创建一个监听。 也可以手动的修改 listener.ora 文件。 
--对于 RAC 环境:
用grid用户操作
节点1
[grid@rac1 admin]$ vi /oracle/app/12.1.0/grid/network/admin/listener.ora
添加以下内容:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /oracle/app/oracle/product/12.1.0/db_1`)
      (SID_NAME = orcl1)
    )
  )
节点2
[grid@rac2 admin]$ vi /oracle/app/12.1.0/grid/network/admin/listener.ora
添加以下内容:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /oracle/app/oracle/product/12.1.0/db_1`)
      (SID_NAME = orcl2)
    )
  )
--这里写的 Oracle 用户的 ORACLE_HOME,否则连接时会报错:
ORA-01031: insufficient privileges
然后重启监听
[grid@rac1 admin]$ lsnrctl reload
[grid@rac2 admin]$ lsnrctl reload
单实例:
用oracle用户操作
修改listenerr.ora文件添加以下内容:
[oracle@adg admin]$ cp listener.ora listener.ora.ora
[oracle@adg admin]$ vi /oracle/app/product/12.1.0/db_1/network/admin/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /oracle/app/oracle/product/12.1.0/db_1)
      (SID_NAME = orcl)
    )
  )
然后重启监听
[oracle@adg admin]$ lsnrctl reload

1.5.配置主备库的 Net Server:tnsnames.ora

[oracle@rac1 admin]$ cp tnsnames.ora tnsnames.ora.bak
节点1,节点2,单实例 的 tnsnames.ora 文件添加以下内容,对应rac使用netmgr创建服务或者直接把单实例的tnsnames.ora 复制过去对应修改即可。 
[oracle@rac1 admin]$ vi /oracle/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora 
orcl_pd=
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.51)(PORT = 1521))
   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.52)(PORT = 1521))
   (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME =orcl)
    )
  )

orcl_st=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.59)(PORT = 1521))  
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
配置完成后,使用 tnsping 命令效验:
[oracle@rac1 ~]$ tnsping orcl_pd
[oracle@rac2 ~]$ tnsping orcl_st

1.6.RAC创建相关目录

[oracle@adg admin]$ mkdir -p /oracle/app/oracle/fast_recovery_area/orcl
[oracle@adg admin]$ mkdir -p /oracle/app/oracle/oradata/orcl
[oracle@adg admin]$  mkdir -p /oracle/app/oracle/admin/orcl/adump
[grid@rac1 ~]$ asmcmd
ASMCMD> ls
DATA/
FRA/
OCRVOTE/
ASMCMD> cd data
ASMCMD> mkdir orcl
ASMCMD> cd orcl
ASMCMD> mkdir controlfile datafile onlinelog parameterfile password tempfile

1.7.创建备库口令文件

主库
[oracle@rac1 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworcl1 password=oracle
[oracle@rac2 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworcl2 password=oracle
备库
[oracle@adg ~]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle
或者把节点的口令文件copy 到备库
[oracle@adg dbs]$ scp orapworcl 192.168.1.51:/oracle/app/oracle/product/12.1.0/db_1/dbs/orapworcl1
[oracle@adg dbs]$ scp orapworcl 192.168.1.52:/oracle/app/oracle/product/12.1.0/db_1/dbs/orapworcl2

1.8.修改主库参数文件

alter system set log_archive_config='dg_config=(orcl,orcl_st)'   scope=both sid='*';
alter system set log_archive_dest_1='location=/oracle/archive valid_for=(all_logfiles,all_roles) db_unique_name=orcl_st'  scope=both sid='*';
alter system set log_archive_dest_2='service=orcl_pd valid_for=(online_logfiles,primary_role) db_unique_name=orcl'   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='orcl_pd'   scope=both sid='*';
alter system set db_file_name_convert='+DATA/orcl/datafile','/oracle/app/oracle/oradata/orcl','+DATA/orcl/tempfile','/oracle/app/oracle/oradata/orcl' scope=both sid='*';
alter system set log_file_name_convert='+DATA/orcl/onlinelog','/oracle/app/oracle/oradata/orcl' scope=both sid='*';
alter system set log_archive_format='%t_%s_%r.arch' scope=both sid='*';

1.9.修改备库参数文件

在主库创建pfile 文件并scp 到备库修改
主要指定一些pfile的路径,不要直接create pfile from spfile
create pfile='/tmp/initorcl1.ora' from spfile;
[oracle@rac1 tmp]$ scp /tmp/initorcl1.ora 192.168.1.51:/oracle/app/oracle/product/12.1.0/db_1/dbs
修改备库的参数文件添加以下内容:
orcl2.__data_transfer_cache_size=0
orcl1.__data_transfer_cache_size=0
orcl2.__db_cache_size=369098752
orcl1.__db_cache_size=419430400
orcl2.__java_pool_size=16777216
orcl1.__java_pool_size=16777216
orcl2.__large_pool_size=33554432
orcl1.__large_pool_size=33554432
orcl1.__oracle_base='/oracle/app/oracle'#ORACLE_BASE set from environment
orcl2.__oracle_base='/oracle/app/oracle'#ORACLE_BASE set from environment
orcl2.__pga_aggregate_target=402653184
orcl1.__pga_aggregate_target=402653184
orcl2.__sga_target=771751936
orcl1.__sga_target=771751936
orcl2.__shared_io_pool_size=33554432
orcl1.__shared_io_pool_size=33554432
orcl2.__shared_pool_size=301989888
orcl1.__shared_pool_size=251658240
orcl2.__streams_pool_size=0
orcl1.__streams_pool_size=0
*.audit_file_dest='/oracle/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='12.1.0.2.0'
*.control_files='+DATA/ORCL/CONTROLFILE/current.261.985172099'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='orcl'
*.diagnostic_dest='/oracle/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
orcl2.instance_number=2
orcl1.instance_number=1
*.memory_target=1120m
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='exclusive'
orcl2.thread=2
orcl1.thread=1
orcl1.undo_tablespace='UNDOTBS1'
orcl2.undo_tablespace='UNDOTBS2'
--添加以下内容,对应修改上面的参数
*.service_names='orcl_pd'
*.db_unique_name='orcl'
*.log_archive_config='dg_config=(orcl,orcl_st)'
*.log_archive_dest_1='location=+FRA valid_for=(all_logfiles,all_roles) db_unique_name=orcl'
*.log_archive_dest_2='service=orcl_st valid_for=(online_logfiles,primary_role) db_unique_name=orcl_st'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arch'
*.standby_file_management='auto'
*.fal_server='orcl_st'
*.log_file_name_convert='/oracle/app/oracle/oradata/orcl','+DATA/orcl/onlinelog'
*.db_file_name_convert='/oracle/app/oracle/oradata/orcl','+DATA/orcl/datafile','/u01/app/oracle/oradata/orcl/tempfile','+DATA/orcl/tempfile'

1.10.使用 spfile 将备库启动 nomount 状态并启动监听

[oracle@adg orcl]$ lsnrctl start
[oracle@adg orcl]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Wed Sep 19 20:46:28 2018

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount pfile='/oracle/app/oracle/product/12.1.0/db_1/dbs/initorcl1.ora'
ORACLE instance started.

Total System Global Area 1048576000 bytes
Fixed Size    2932336 bytes
Variable Size  654311824 bytes
Database Buffers  385875968 bytes
Redo Buffers    5455872 bytes

1.11.测试密码文件是否正确

--源端
sqlplus sys/oracle@orcl_st as sysdba
rman target sys/oracle@orcl_st

--目标端
sqlplus sys/oracle@orcl_pd as sysdba
rman target sys/oracle@orcl_pd

1.12.开始进行 duplicate

[oracle@adg orcl]$  rman target sys/oracle@orcl_st auxiliary sys/oracle@orcl_pd

Recovery Manager: Release 12.1.0.2.0 - Production on Fri Sep 21 00:11:05 2018

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

connected to target database: ORCL (DBID=1512952835)
connected to auxiliary database: ORCL (not mounted)

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

1.13.创建共享的spfile文件

create spfile='+DATA/' from pfile='/tmp/initorcl1.ora';

1.14.注册database到srvctl

SQL> shutdown immediate
注册数据库及参数文件
[oracle@rac1 ~]$srvctl add database -d orcl -o /oracle/app/oracle/product/12.1.0/db_1/ -p +data/orcl/parameterfile/spfile.268.985172961
注册实例
[oracle@rac1 ~]$srvctl add instance -d orcl -i orcl1 -n rac1
[oracle@rac1 ~]$srvctl add instance -d orcl -i orcl2 -n rac2

1.15.重启数据库

[oracle@rac1 ~]$srvctl stop database -d orcl
[oracle@rac1 ~]$srvctl start database -d orcl
[oracle@rac1 ~]$ srvctl status database -d orcl
Instance orcl1 is running on node rac1
Instance orcl2 is running on node rac2

1.16.主备库添加Standby logfile

RAC 每个 Redo Thread 都需要创建对应的 Standby Redo Log。 创建原则和单实例一样,包括日志 文件大小相等,日志组数量要多1组。

1.16.1.备库添加standby redo log

SQL> set lines 120
SQL> col member for a50
SQL>  select a.thread#,a.group#,a.bytes/1024/1024,b.member from v$log a,v$logfile b where a.group#=b.group#;

   THREAD#     GROUP# A.BYTES/1024/1024 MEMBER
---------- ---------- ----------------- --------------------------------------------------
 1    2     50 +DATA/ORCL/ONLINELOG/group_2.263.985172107
 1    1     50 +DATA/ORCL/ONLINELOG/group_1.262.985172105
 2    3     50 +DATA/ORCL/ONLINELOG/group_3.266.985172955
 2    4     50 +DATA/ORCL/ONLINELOG/group_1.267.985172957

alter database add standby logfile thread 1 group 5 ('+DATA') size 50m; 
alter database add standby logfile thread 1 group 6 ('+DATA') size 50m; 
alter database add standby logfile thread 1 group 7 ('+DATA') size 50m; 
alter database add standby logfile thread 2 group 8 ('+DATA') size 50m; 
alter database add standby logfile thread 2 group 9 ('+DATA') size 50m;
alter database add standby logfile thread 2 group 10 ('+DATA') size 50m; 
select group#,type,member from v$logfile order by 2;

    GROUP# TYPE    MEMBER
---------- ------- --------------------------------------------------
 2 ONLINE  +DATA/ORCL/ONLINELOG/group_2.263.985172107
 4 ONLINE  +DATA/ORCL/ONLINELOG/group_1.267.985172957
 3 ONLINE  +DATA/ORCL/ONLINELOG/group_3.266.985172955
 1 ONLINE  +DATA/ORCL/ONLINELOG/group_1.262.985172105
 9 STANDBY +DATA/ORCL/ONLINELOG/group_9.273.987282345
 8 STANDBY +DATA/ORCL/ONLINELOG/group_8.272.987282341
 5 STANDBY +DATA/ORCL/ONLINELOG/group_5.271.987282333
 7 STANDBY +DATA/ORCL/ONLINELOG/group_7.270.987282315
10 STANDBY +DATA/ORCL/ONLINELOG/group_10.271.987282353
 6 STANDBY +DATA/ORCL/ONLINELOG/group_6.269.987282309

1.16.2.主库添加standby redo log

SQL> set lines 120
SQL> col member for a80
SQL> select a.thread#,a.group#,a.bytes/1024/1024,b.member from v$log a,v$logfile b where a.group#=b.group#;

   THREAD#     GROUP# A.BYTES/1024/1024 MEMBER
---------- ---------- ----------------- --------------------------------------------------------------------------------
 1    1     50 /oracle/app/oracle/oradata/orcl/group_1.262.985172105
 1    2     50 /oracle/app/oracle/oradata/orcl/group_2.263.985172107
 2    3     50 /oracle/app/oracle/oradata/orcl/group_3.266.985172955
 2    4     50 /oracle/app/oracle/oradata/orcl/group_1.267.985172957

ALTER DATABASE ADD STANDBY LOGFILE  THREAD 1 GROUP 5  '/oracle/app/oracle/oradata/orcl/stbredo01.log'  SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE  THREAD 1 GROUP 6  '/oracle/app/oracle/oradata/orcl/stbredo02.log'  SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE  THREAD 1 GROUP 7  '/oracle/app/oracle/oradata/orcl/stbredo03.log'  SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE  THREAD 2 GROUP 8  '/oracle/app/oracle/oradata/orcl/stbredo01.log'  SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE  THREAD 2 GROUP 9  '/oracle/app/oracle/oradata/orcl/stbredo05.log'  SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE  THREAD 2 GROUP 10 '/oracle/app/oracle/oradata/orcl/stbredo06.log'  SIZE 50M;
SQL> select group#,type,member from v$logfile order by 2;

    GROUP# TYPE    MEMBER
---------- ------- --------------------------------------------------------------------------------
 2 ONLINE  /oracle/app/oracle/oradata/orcl/group_2.263.985172107
 4 ONLINE  /oracle/app/oracle/oradata/orcl/group_1.267.985172957
 3 ONLINE  /oracle/app/oracle/oradata/orcl/group_3.266.985172955
 1 ONLINE  /oracle/app/oracle/oradata/orcl/group_1.262.985172105
 9 STANDBY /oracle/app/oracle/oradata/orcl/stbredo05.log
 8 STANDBY /oracle/app/oracle/oradata/orcl/stbredo01.log
 7 STANDBY /oracle/app/oracle/oradata/orcl/stbredo03.log
 6 STANDBY /oracle/app/oracle/oradata/orcl/stbredo02.log
10 STANDBY /oracle/app/oracle/oradata/orcl/stbredo06.log
 5 STANDBY /oracle/app/oracle/oradata/orcl/stbredo01.log

1.17.启动备库

SQL> select NAME,open_mode from v$database; 

NAME  OPEN_MODE
--------- --------------------
ORCL  MOUNTED

SQL> alter database open;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ ONLY

1.18.启动 MRP 进程

SQL> alter database recover managed standby database disconnect from session;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ ONLY WITH APPLY
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/leo__1990/article/details/90286520

智能推荐

MQ的概念和RabbitMQ知识点(无代码)-程序员宅基地

文章浏览阅读1.2w次,点赞7次,收藏76次。MQ全称是MessageQueue(消息队列),是保存消息在传输过程中的一种容器,既是存储消息的一种中间件。多是应用在分布式系统中进行通信的第三方中间件,如下图所示,发送方成为生产者,接收方称为消费者。............_mq

如何做好Bug分析-程序员宅基地

文章浏览阅读1.5k次,点赞47次,收藏18次。Bug分析是QA的一项主要技能,需要针对项目中遇到的经典问题进行分类分析, 直达问题本质。 并且能够给团队其他项目或者成员起到典型的借鉴作用。 当然也有一些非常经典的问题可以进行技术深挖, 以供参考。 个人认为比较典型的「Bug分析」是stackoverflow, 当然, 一个完善的bug分析库, 可以进行问题分类总结。 对于测试新人是有很大的帮助的。本质上, 在测试领域很多问题是可重现可整理可规避的。另外, bug分析本身是为了拓宽每个人的认知边界, 缩小团队间的乔哈里窗以达到最佳的合作状态。一个「好的B

H5020NL PULSE 50PIN千兆四口网络变压器 HQST H85001S建议IC配置型号_4口网络变压器-程序员宅基地

文章浏览阅读800次。HQST导读:PULSE普思是网络通讯行业中龙头企业之一,其中网络变压器产品大都由国内代工厂代为生产,H5020NLHX5020NL千兆四口网络变压器是普思公司经典老牌产品,相对整个市场用量不是很大,集中生产约一月20万颗左右……PULSE普思是网络通讯行业中龙头企业之一,其中网络变压器产品大都由国内代工厂代为生产,H5020NLHX5020NL千兆四口网络变压器是普思公司经典老牌产品,相对整个市场用量不是很大,集中生产约一月20万颗左右,……PULSE H5020NL千兆网络变压器对应HQS._4口网络变压器

D20 EME 支持2k MAC地址表-程序员宅基地

文章浏览阅读242次,点赞3次,收藏9次。交换机,壳体采用镀锌钢板,结构紧凑,支持八个百兆端口,可配置一至四个百兆光纤端口。两路冗余电源设计,支持4pin可插拔端子,交直流通用,同时提供电源防接保护及过压、欠压保护,极大提升产品工作的稳定性。2.支持两路冗余电源设计,4pin可插拔端子,支持12~36V宽电压输入,交直流通用,同时提供电源防反接保护及过压、欠压保护,极大提升产品工作的稳定性。4.-40℃~75℃工作温度,-40~85℃存储温度,在极端气象条件下也能安全运行。8.支持IEEE802.3,IEEE802.3u,IEEE802.3x。

阿昌教你如何使用通义灵码-程序员宅基地

文章浏览阅读946次。Hi,我是阿昌,今天教你如何使用通义灵码。_通义灵码

老版本NDK下载列表(Android官网)_ndk 老颁布-程序员宅基地

文章浏览阅读2.3w次。我们在开发或编译旧版本NDK项目时,需要使用一些老版本的NDK,在这里提供了旧版NDK的列表及下载链接_ndk 老颁布

随便推点

网关、安全网关?与防火墙的区别(2),网络安全多线程断点续传-程序员宅基地

文章浏览阅读640次,点赞6次,收藏18次。网关是一个大的概念,没有特指是什么设备,很多设备都可以做网关,普通的PC机也能做,常用的网关设备是路由器。网关的作用主要是用来连接两个不同的网络,比如可以连接两个IP地址不相同的网络,或连接两个操作系统不同的网络,如WINDOWS与LINUX互连,或连接两个网络协议不同的网络,如TCP/IP与IPX.或拓扑结构不同的网络,如以太网和令牌环网。总之网关是一种中间媒介。而防火墙也可以做网关,但它的主要做用只是用来防病毒或防黑客,网关只算是防火墙的一个功能。网关与防火墙的区别。

解决:ModuleNotFoundError: No module named ‘pymysql’_modulenotfounderror: no module named 'pymysql-程序员宅基地

文章浏览阅读4.1k次,点赞42次,收藏34次。背景在使用之前的代码时,报错: Traceback (most recent call last): File "xxx", line xx, in import pymysql ModuleNotFoundError: No module named 'pymysql'翻译:```追溯(最近一次通话):文件“xxx”,第xx行,在导入pymysqlModuleNotFoundError:没有名为“pymysql”的模块```原因 ......_modulenotfounderror: no module named 'pymysql

android读取生成excel,Android创建与读取Excel-程序员宅基地

文章浏览阅读275次。1 import java.io.File;23 import java.io.IOException;45 import java.util.Locale;6789 import jxl.CellView;1011 import jxl.Workbook;1213 import jxl.WorkbookSettings;1415 import jxl.format.UnderlineStyle;..._android excel生成读取类

VS2015离线安装 安装包损坏或丢失_vs2015离线版csdn-程序员宅基地

文章浏览阅读4.3w次,点赞16次,收藏126次。1、去微软官网下载完成ISO镜像,最好不要在线安装,打开官方链接 https://www.visualstudio.com/zh-cn/downloads/download-visual-studio-vs.aspx按下图操作:2、用虚拟光驱加载,或者直接右键解压。在安装前,先安装两个证书。亲测,安装后,减少了很多“安装包损坏或丢失”的现象。两证书下载地址链接: https:/..._vs2015离线版csdn

解决vue中安装postcss-pxtorem插件,报错“ Error: PostCSS plugin postcss-pxtorem requires PostCSS 8.”_error: postcss plugin postcss-import requires post-程序员宅基地

文章浏览阅读2k次,点赞4次,收藏3次。目前 postcss-pxtorem 版本最高6.0.0,报这个错是因为插件版本太高,降成5.1.1可解决这个报错解决方法:分两步1.执行npm uninstall post-pxtorem2.执行npm i [email protected]_error: postcss plugin postcss-import requires postcss 8.

Linux-ARM开发_linux arm开发-程序员宅基地

文章浏览阅读787次。Linux-ARM开发_linux arm开发