继上篇文章 [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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
570次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
530次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
432次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
429次阅读
2025-04-08 09:12:48
墨天轮个人数说知识点合集
JiekeXu
427次阅读
2025-04-01 15:56:03
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
424次阅读
2025-04-22 00:20:37
Oracle SQL 执行计划分析与优化指南
Digital Observer
424次阅读
2025-04-01 11:08:44
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
402次阅读
2025-04-22 00:13:51
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
389次阅读
2025-04-20 10:07:02
Oracle 19c RAC更换IP实战,运维必看!
szrsu
363次阅读
2025-04-08 23:57:08
TA的专栏
目录