暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

使用RMAN DUPLICATE配置Oracle RAC 19C 到单实例19C DataGuard

原创 张玉龙 2020-03-20
5544

继上篇文章 [rac](安装Oracle RAC 19C for RHEL 7.5 + RU 19.6.0.0.0) 配置单实例的DataGuard。

源端RAC安装配置参考文章 https://www.modb.pro/db/22755
备端安装Oracle 19C的DB软件,创建监听,此处忽略安装过程。

备端安装opatch 19.6.0.0.0

更新OPAtch

[root@dg19c opt]# su - oracle
Last login: Fri Mar 20 09:38:07 CST 2020 on pts/0
[oracle@dg19c ~]$ unzip /opt/12.2.0.1.19_p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
replace /u01/app/oracle/product/19.0.0/db_1/OPatch/emdpatch.pl? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
[oracle@dg19c ~]$ /u01/app/oracle/product/19.0.0/db_1/OPatch/opatch version
OPatch Version: 12.2.0.1.19
复制

解压补丁包

[root@dg19c ~]# mkdir /oraru
[root@dg19c ~]# chown -R oracle:oinstall /oraru/
[root@dg19c ~]# su - oracle
Last login: Fri Mar 20 09:44:33 CST 2020 on pts/0
[oracle@dg19c ~]$ unzip /opt/DB_19.6.0.0.200114_p30557433_190000_Linux-x86-64.zip -d /oraru/
复制

关闭监听程序

[oracle@dg19c ~]$ lsnrctl stop
复制

打补丁

[oracle@dg19c ~]$ cd /oraru/30557433/   
[oracle@dg19c 30557433]$ /u01/app/oracle/product/19.0.0/db_1/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.19
Copyright (c) 2020, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/19.0.0/db_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.0.0/db_1/oraInst.loc
OPatch version    : 12.2.0.1.19
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatch/opatch2020-03-20_09-51-24AM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   30557433  

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/19.0.0/db_1')


Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '30557433' to OH '/u01/app/oracle/product/19.0.0/db_1'
ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.xdk.parser.java.jaxb2, 19.0.0.0.0 ] , [ oracle.assistants.asm, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.oraolap.mgmt, 19.0.0.0.0 ] , [ oracle.assistants.usm, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.options.olap.awm, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.0 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.rdbms.rsf, 19.0.0.0.0...

Patching component oracle.rdbms.util, 19.0.0.0.0...

Patching component oracle.rdbms, 19.0.0.0.0...

Patching component oracle.assistants.acf, 19.0.0.0.0...

Patching component oracle.assistants.deconfig, 19.0.0.0.0...

Patching component oracle.assistants.server, 19.0.0.0.0...

Patching component oracle.buildtools.rsf, 19.0.0.0.0...

Patching component oracle.ctx, 19.0.0.0.0...

Patching component oracle.ldap.rsf, 19.0.0.0.0...

Patching component oracle.network.rsf, 19.0.0.0.0...

Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...

Patching component oracle.sdo, 19.0.0.0.0...

Patching component oracle.sqlplus, 19.0.0.0.0...

Patching component oracle.xdk.rsf, 19.0.0.0.0...

Patching component oracle.rdbms.install.plugins, 19.0.0.0.0...

Patching component oracle.rdbms.install.common, 19.0.0.0.0...

Patching component oracle.odbc, 19.0.0.0.0...

Patching component oracle.ovm, 19.0.0.0.0...

Patching component oracle.rdbms.deconfig, 19.0.0.0.0...

Patching component oracle.rdbms.dv, 19.0.0.0.0...

Patching component oracle.sqlplus.ic, 19.0.0.0.0...

Patching component oracle.ldap.security.osdt, 19.0.0.0.0...

Patching component oracle.rdbms.oci, 19.0.0.0.0...

Patching component oracle.oracore.rsf, 19.0.0.0.0...

Patching component oracle.sdo.locator.jrf, 19.0.0.0.0...

Patching component oracle.network.listener, 19.0.0.0.0...

Patching component oracle.ldap.owm, 19.0.0.0.0...

Patching component oracle.nlsrtl.rsf, 19.0.0.0.0...

Patching component oracle.oraolap.dbscripts, 19.0.0.0.0...

Patching component oracle.rdbms.scheduler, 19.0.0.0.0...

Patching component oracle.install.deinstalltool, 19.0.0.0.0...

Patching component oracle.dbjava.ucp, 19.0.0.0.0...

Patching component oracle.sdo.locator, 19.0.0.0.0...

Patching component oracle.network.client, 19.0.0.0.0...

Patching component oracle.rdbms.rman, 19.0.0.0.0...

Patching component oracle.rdbms.drdaas, 19.0.0.0.0...

Patching component oracle.rdbms.crs, 19.0.0.0.0...

Patching component oracle.duma, 19.0.0.0.0...

Patching component oracle.precomp.rsf, 19.0.0.0.0...

Patching component oracle.javavm.client, 19.0.0.0.0...

Patching component oracle.precomp.common.core, 19.0.0.0.0...

Patching component oracle.dbjava.jdbc, 19.0.0.0.0...

Patching component oracle.dbjava.ic, 19.0.0.0.0...

Patching component oracle.ons, 19.0.0.0.0...

Patching component oracle.ldap.rsf.ic, 19.0.0.0.0...

Patching component oracle.dbdev, 19.0.0.0.0...

Patching component oracle.ctx.rsf, 19.0.0.0.0...

Patching component oracle.bali.ice, 11.1.1.7.0...

Patching component oracle.xdk, 19.0.0.0.0...

Patching component oracle.xdk.parser.java, 19.0.0.0.0...

Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...

Patching component oracle.precomp.lang, 19.0.0.0.0...

Patching component oracle.precomp.common, 19.0.0.0.0...

Patching component oracle.jdk, 1.8.0.201.0...
Patch 30557433 successfully applied.
Sub-set patch [29517242] has become inactive due to the application of a super-set patch [30557433].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatch/opatch2020-03-20_09-51-24AM_1.log

OPatch succeeded.
复制

检查

[oracle@dg19c 30557433]$ $ORACLE_HOME/OPatch/opatch lsinventory
[oracle@dg19c 30557433]$ $ORACLE_HOME/OPatch/opatch lspatches
30557433;Database Release Update : 19.6.0.0.200114 (30557433)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
复制

主端配置归档和FORCE_LOGGING

SQL> select name,log_mode,force_logging from gv$database;

NAME      LOG_MODE     FORCE_LOGGING
--------- ------------ ---------------------------------------
ORCL      NOARCHIVELOG NO
ORCL      NOARCHIVELOG NO

SQL> alter database force logging;
SQL> alter system set log_archive_dest_1='location=+DATA';

[oracle@rac1:/home/oracle]$ srvctl stop database -db orcl -stopoption IMMEDIATE
[oracle@rac1:/home/oracle]$ sqlplus / as sysdba
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
[oracle@rac1:/home/oracle]$ srvctl start instance -db orcl -instance orcl2

SQL> select name,log_mode,force_logging from gv$database;

NAME      LOG_MODE     FORCE_LOGGING
--------- ------------ ---------------------------------------
ORCL      ARCHIVELOG   YES
ORCL      ARCHIVELOG   YES
复制

主端配置参数

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCLDG)' SID='*';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+DATA VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCL' SID='*';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=DGTAR_TNS LGWR ASYNC REOPEN NET_TIMEOUT=300 VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLDG' SID='*';
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT =AUTO SID='*';
SQL> ALTER SYSTEM SET FAL_SERVER='DGTAR_TNS' SID='*';
复制

主端创建standby redologs

SQL> col status format a10;
select thread#, GROUP#,SEQUENCE#,BYTES/1024/1024,STATUS,FIRST_TIME from v$log;

   THREAD#     GROUP#  SEQUENCE# BYTES/1024/1024 STATUS     FIRST_TIM
---------- ---------- ---------- --------------- ---------- ---------
         1          1         11             200 ACTIVE     20-MAR-20
         1          2         12             200 CURRENT    20-MAR-20
         2          3          7             200 ACTIVE     20-MAR-20
         2          4          8             200 CURRENT    20-MAR-20

SQL> Set linesize 200
col member format a50
select * from v$logfile;

    GROUP# STATUS     TYPE    MEMBER                                             IS_     CON_ID
---------- ---------- ------- -------------------------------------------------- --- ----------
         2            ONLINE  +DATA/ORCL/ONLINELOG/group_2.263.1035369471        NO           0
         1            ONLINE  +DATA/ORCL/ONLINELOG/group_1.262.1035369471        NO           0
         3            ONLINE  +DATA/ORCL/ONLINELOG/group_3.270.1035370513        NO           0
         4            ONLINE  +DATA/ORCL/ONLINELOG/group_4.271.1035370517        NO           0

alter database add standby logfile thread 1 group 5 ('+DATA') size 200M;
alter database add standby logfile thread 1 group 6 ('+DATA') size 200M;
alter database add standby logfile thread 1 group 7 ('+DATA') size 200M;
alter database add standby logfile thread 2 group 8 ('+DATA') size 200M;
alter database add standby logfile thread 2 group 9 ('+DATA') size 200M;
alter database add standby logfile thread 2 group 10 ('+DATA') size 200M;
复制

备端配置静态监听服务名

[oracle@dg19c ~]$ vi $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
     (GLOBAL_DBNAME = orcldg)
     (ORACLE_HOME = /u01/app/oracle/product/19.0.0/db_1)
     (SID_NAME = orcldg)
    )
   )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.59)(PORT = 1521))
  )
复制

主备端tnsnames.ora文件配置

[oracle@rac1:/home/oracle]$ vi $ORACLE_HOME/network/admin/tnsnames.ora

DGTAR_TNS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.59)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcldg)(UR=A)
    )
  )

DGSRC_TNS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.55)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)(UR=A)
    )
  )

DGSRC_TNS1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.51)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)(UR=A)
    )
  )

DGSRC_TNS2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.52)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)(UR=A)
    )
  )
复制

备机启动监听

[oracle@dg19c ~]$ lsnrctl start
复制

主端和备端测试监听配置

[oracle@rac1:/home/oracle]$ tnsping DGTAR_TNS
[oracle@dg19c ~]$ tnsping DGSRC_TNS
复制

主端传输密码文件至备端

# su - grid
[grid@rac1:/home/grid]$ asmcmd -p
ASMCMD [+] > cd +data/orcl/PASSWORD
ASMCMD [+data/orcl/PASSWORD] > ls
pwdorcl.256.1035369267
ASMCMD [+data/orcl/PASSWORD] > cp pwdorcl.256.1035369267 /home/grid
copying +data/orcl/PASSWORD/pwdorcl.256.1035369267 -> /home/grid/pwdorcl.256.1035369267
# scp /home/grid/pwdorcl.256.1035369267 192.168.56.59:/u01/app/oracle/product/19.0.0/db_1/dbs/orapworcldg
# chown oracle:oinstall /u01/app/oracle/product/19.0.0/db_1/dbs/orapworcldg
复制

生成备端的pfile参数文件

[oracle@dg19c ~]$ vi /home/oracle/pfile.ora
*.audit_file_dest='/u01/app/oracle/admin/orcldg/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/oradata/control01.ctl'
*.db_block_size=8192
*.db_create_file_dest=''
*.db_name='orcl'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orcldgXDB)'
*.enable_pluggable_database=true
*.fal_server='DGSRC_TNS'
family:dw_helper.instance_mode='read-only'
*.local_listener='-oraagent-dummy-'
*.log_archive_config='DG_CONFIG=(ORCL,ORCLDG)'
*.log_archive_dest_1='LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCLDG'
*.log_archive_dest_2='SERVICE=DGSRC_TNS LGWR ASYNC REOPEN NET_TIMEOUT=300 VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=782m
*.processes=300
*.remote_login_passwordfile='exclusive'
*.sga_target=2346m
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.service_names='orcl,orcldg'
*.db_unique_name='orcldg'
*.db_file_name_convert='+DATA/ORCL/','/oradata/'
*.log_file_name_convert='+DATA/ORCL/','/oradata/'
复制

备端提前创建所需路径

[oracle@dg19c ~]$ mkdir -p /u01/app/oracle/admin/orcldg/adump
[root@dg19c ~]# mkdir -p /oradata
[root@dg19c ~]# mkdir -p /arch
[root@dg19c ~]# chown oracle:oinstall /oradata /arch
[oracle@dg19c ~]$ mkdir /oradata/onlinelog
复制

RMAN DUPLICATE复制主端数据库

启动备库到nomount

[oracle@dg19c ~]$ export ORACLE_SID=orcldg
[oracle@dg19c ~]$ sqlplus / as sysdba
sql> create spfile from pfile='/home/oracle/pfile.ora';
sql> startup nomount;
复制
[oracle]$ sqlplus /nolog
主端测试
SQL> connect sys/Oracle123@dgtar_tns AS SYSDBA
备端测试
SQL> connect sys/Oracle123@dgsrc_tns AS SYSDBA
测试成功,及时退出,避免误操作
复制

RAC主端配置SNAPSHOT CONTROLFILE

[oracle@rac1:/home/oracle]$ rman target /
RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATA/snapcf_orcl1.f';
复制

RMAN连接主备数据库,开始RMAN DUPLICATE复制数据库:

$ rman target sys/Oracle123@dgsrc_tns1 auxiliary sys/Oracle123@dgtar_tns nocatalog

Recovery Manager: Release 19.0.0.0.0 - Production on Fri Mar 20 11:16:05 2020
Version 19.6.0.0.0

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

connected to target database: ORCL (DBID=1563150203)
using target database control file instead of recovery catalog
connected to auxiliary database: ORCL (not mounted)

RMAN> run {
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate channel prmy3 type disk;
allocate auxiliary channel stby1 type disk;
allocate auxiliary channel stby2 type disk;
allocate auxiliary channel stby3 type disk;
duplicate target database for standby from active database nofilenamecheck;
}
复制

备端启动恢复进程并开启只读模式

SQL> alter database recover managed standby database using current logfile disconnect from session;
等待未同步的归档日志同步完成后再开启只读模式
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL>  ALTER DATABASE OPEN READ ONLY;
SQL> RECOVER MANAGED STANDBY DATABASE DISCONNECT USING CURRENT LOGFILE;
复制

PDB开启只读模式

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            MOUNTED
SQL> alter pluggable database PDB open READ ONLY;
复制

DataGuard检查

SQL> set line 200
SQL> select name,value  from v$dataguard_stats;

NAME                             VALUE
-------------------------------- ----------------------------------------------------------------
transport lag                    +00 00:00:00
apply lag                        +00 00:00:00
apply finish time                +00 00:00:00.000
estimated startup time           53
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

sususuki
关注
暂无图片
获得了256次点赞
暂无图片
内容获得12次评论
暂无图片
获得了17次收藏
TA的专栏
OceanBase 学习笔记
收录11篇内容
oracle运维笔记
收录6篇内容
GBase 8s GDCA
收录11篇内容
目录
  • 备端安装opatch 19.6.0.0.0
  • 主端配置归档和FORCE_LOGGING
  • 主端配置参数
  • 主端创建standby redologs
  • 备端配置静态监听服务名
  • 主备端tnsnames.ora文件配置
  • 备机启动监听
  • 主端和备端测试监听配置
  • 主端传输密码文件至备端
  • 生成备端的pfile参数文件
  • 备端提前创建所需路径
  • RMAN DUPLICATE复制主端数据库
  • 备端启动恢复进程并开启只读模式
  • PDB开启只读模式
  • DataGuard检查