EBS CDB ADG配置

一、 概述和说明​
1.1 概述
本文档用于使用多租户数据库的ADG操作​

1.2 参考文档
​ ​Document 2617787.1​​, Business Continuity for Oracle E-Business Suite Release 12.2 on Oracle Database 19c Using Physical Host Name​
1.3 配置信息规划
类型​

主​

从​

IP​

192.168.5.12​

192.168.5.13​

DB_NAME​

EBSCDB​

EBSCDB​

DB_UNIQUE_NAME​

EBSCDB​

EBSCDBDG​

NET Service Name​

EBSCDB​

EBSCDBDG​

SID​

EBSCDB​

EBSCDB​

二、主数据库准备​
2.1 判断DataGuard是否安装
select * from v$option where parameter = 'Oracle Data Guard';​

2.3 配置TNS
主备库都需要设置,添加到CDB的tnsname中​

EBSCDB =​

(DESCRIPTION =​

(ADDRESS=(PROTOCOL=tcp)(HOST=ebstest01.oracle.com)(PORT=1601))​

(CONNECT_DATA = (SERVICE_NAME=EBSCDB)(INSTANCE_NAME=EBSCDB))​

)​

EBSCDBDG =​

(DESCRIPTION =​

(ADDRESS = (PROTOCOL=tcp)(HOST=ebstest02.oracle.com)(PORT=1601))​

(CONNECT_DATA = (SERVICE_NAME=EBSCDB)(INSTANCE_NAME=EBSCDB))​

)​

2.4 配置监听
只支持静态监听(ADG)​

EBSCDB =​

(DESCRIPTION_LIST =​

(DESCRIPTION =​

(ADDRESS = (PROTOCOL = TCP)(HOST = ebstest01.oracle.com)(PORT = 1601))​

)​

)​

SID_LIST_EBSCDB =​

(SID_LIST =​

(SID_DESC =​

(GLOBAL_DBNAME = EBSCDB)​

(SID_NAME = EBSCDB)​

)​

)​

2.5 生成密码文件
--主库生成密码文件​

alter user sys identified by Oracle;​

orapwd file=$ORACLE_HOME/dbs/orapwEBSCDB password=Oracle entries=10 ignorecase=y​

--拷贝密码文件至备库​

scp orapwEBSCDB ​​orastg@192.168.5.13:/home/EBSSTG3/db/19.3.0​​​

2.6 添加standby log
1、查看日志文件、根据实际情况调整​

select a.group#, a.thread#, a.bytes, b.member​

from v$log a, v$logfile b​

where a.GROUP# = b.GROUP#​

order by a.group#;​

2、删除重建:​

alter database add logfile group 4 size 1024M;​

alter database add logfile group 5 size 1024M;​

alter database add logfile group 6 size 1024M;​

alter system switch logfile;​

alter system checkpoint;​

alter database drop logfile group 1;​

alter database drop logfile group 2;​

alter database drop logfile group 3;​

alter database add logfile group 1 size 1024M;​

alter database add logfile group 2 size 1024M;​

alter database add logfile group 3 size 1024M;​

alter system switch logfile;​

alter system checkpoint;​

alter database drop logfile group 4;​

alter database drop logfile group 5;​

alter database drop logfile group 6;​

3、主库添加standby logfile​

--主库添加standby logfile,由于redo仅有3组,此处standby我们添加4组​

alter database add standby logfile thread 1 group 4 size 1024m;​

alter database add standby logfile thread 1 group 5 size 1024m;​

alter database add standby logfile thread 1 group 6 size 1024m;​

alter database add standby logfile thread 1 group 7 size 1024m;​

查询standby logfile​

select a.group#, a.thread#, a.bytes, b.member​

from v$standby_log a, v$logfile b​

where a.GROUP# = b.GROUP#​

order by a.group#;​

2.2 是否支持Data Guard(企业版才支持),是否归档模式、开启force logging
$ sqlplus '/as sysdba' ​

SQL> select * from v$option where parameter = 'Managed Standby'; ​

PARAMETER VALUE​

Managed Standby TRUE​

确认主库处于归档模式 ​

SQL> archive log list ​

(先检查是否归档模式,不是则修改) ​

startup mount ​

alter database archivelog; ​

alter database open; ​

FORCE LOGGING模式查询​

select FORCE_LOGGING from v$database;​

将primary数据库置为FORCE LOGGING模式 ​

SQL> alter database force logging; ​

2.7 主库配置初始化参数
-- 主库端修改spfile文件​

--alter system set db_unique_name='EBSCDB' scope=spfile;​

-- database restart ​

altersystemset log_archive_config='DG_CONFIG=(EBSCDB,EBSCDBDG)'scope=both;​

altersystemset log_archive_dest_1='LOCATION=/home/EBSSTG3/db/data/EBSCDB/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=EBSCDB'scope=both;​

altersystemset log_archive_dest_2='SERVICE=EBSCDBDG LGWR ASYNC=20480 OPTIONAL NOAFFIRM REOPEN=15 NET_TIMEOUT=30 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=EBSCDBDG'scope=both;​

altersystemset standby_file_management=autoscope=both;​

altersystemset fal_server='EBSCDBDG'scope=both;​

altersystemset fal_client='EBSCDB'scope=both;​

altersystemset db_file_name_convert='/home/EBSSTG3/db/data/EBSCDB','/home/EBSSTG3/db/data/EBSCDB'scope=spfile;​

altersystemset log_file_name_convert='/home/EBSSTG3/db/data/EBSCDB','/home/EBSSTG3/db/data/EBSCDB'scope=spfile;​

show parameter log_archive_config​

show parameter log_archive_dest_1​

show parameter log_archive_dest_2​

show parameter standby_file_management​

show parameter fal_server​

show parameter fal_client​

2.8 准备源系统数据库层以进行克隆
跑下preclone:​

cd $ORACLE_HOME/appsutil/scripts/ EBSSTG2_ebsdbuat1​

perl adpreclone.pl dbTier​

执行数据库备份​

三、创建物理备库​
3.1 复制和解压ORACLE_HOME
在备库主机上解压备份​

3.2 创建备库context_file
cd /home/EBSSTG3/db/19.3.0/appsutil/clone/bin​

perl adclonectx.pl contextfile=/home/EBSSTG3/db/19.3.0/appsutil/EBSSTG3_ebstest01.xml \​

template=/home/EBSSTG3/db/19.3.0/appsutil/template/adxdbctx.tmp​

3.3 配置数据库技术栈
perl adcfgclone.pl dbTechStack /home/EBSSTG3/db/19.3.0/appsutil/EBSSTG3_ebstest02.xml​

3.4 配置备库监听​

通过上一步骤生产的监听为动态监听,请配置静态监听​

EBSCDB =​

(DESCRIPTION_LIST =​

(DESCRIPTION =​

(ADDRESS = (PROTOCOL = TCP)(HOST = ebstest02.oracle.com)(PORT = 1601))​

)​

)​

SID_LIST_EBSCDB =​

(SID_LIST =​

(SID_DESC =​

(GLOBAL_DBNAME =EBSCDB)​

(SID_NAME = EBSCDB)​

)​

)​

3.5 备库参数文件
修改一下参数​

*.DB_UNIQUE_NAME='EBSCDBDG'​

*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(EBSCDBDG,EBSCDB)'​

*.LOG_ARCHIVE_DEST_1='LOCATION=/home/EBSSTG3/db/data/EBSCDB/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=EBSCDBDG'​

*.LOG_ARCHIVE_DEST_2='SERVICE=EBSCDB LGWR ASYNC=20480 OPTIONAL NOAFFIRM REOPEN=15 NET_TIMEOUT=30 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=EBSCDB'​

*.LOG_ARCHIVE_DEST_STATE_1=ENABLE​

*.LOG_ARCHIVE_DEST_STATE_2=ENABLE​

*.LOG_FILE_NAME_CONVERT='/home/EBSSTG3/db/data/EBSCDB','/home/EBSSTG3/db/data/EBSCDB'​

*.DB_FILE_NAME_CONVERT='/home/EBSSTG3/db/data/EBSCDB','/home/EBSSTG3/db/data/EBSCDB'​

*.FAL_CLIENT='EBSCDBDG'​

*.FAL_SERVER='EBSCDB'​

*.STANDBY_FILE_MANAGEMENT='AUTO'​

3.6 主备库网络连接测试
-- 主备库均可通过密码文件连接​

sqlplus sys/Oracle@EBSCDB as sysdba​

sqlplus sys/Oracle@EBSCDBDG as sysdba​

3.7 使用RMAN 创建备用数据库
--备库端执行同步命令​

sqlplus '/as sysdba'​

startup nomount​

rman target sys/Oracle@EBSCDB auxiliary sys/Oracle@EBSCDBDG nocatalog​

duplicate target database for standby from active database nofilenamecheck;​

--恢复完成后没有redolog日志,在开启日志应用的时候自动创建​

alter database open;--开的是CDB库​

3.8 开启实时日志同步
查询状态(主库)​

SQL> select name,database_role,open_mode,switchover_status from v$database; ​

NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS​

--------- ---------------- -------------------- --------------------​

EBSCDB PRIMARY READ WRITE SESSIONS ACTIVE​

查询状态(备库),处于只读模式​

SQL> select name,database_role,open_mode,switchover_status from v$database; ​

NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS​

--------- ---------------- -------------------- --------------------​

EBSCDB PHYSICAL STANDBY READ ONLY NOT ALLOWED​

开启实时应用​

alter database recover managed standby database using current logfile disconnect from session; ​

查询状态(备库),处于只读应用日志模式​

SQL> select name,database_role,open_mode,switchover_status from v$database; ​

NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS​

--------- ---------------- -------------------- --------------------​

EBSCDB PHYSICAL STANDBY READ ONLY WITH APPLY NOT ALLOWED​

3.9 同步状态检查
select max(sequence#) from v$archived_log;​

select dest_name,status,gap_status,error from v$archive_dest_status where dest_id in(1,2);​

LOG_ARCHIVE_DEST_1VALID​

LOG_ARCHIVE_DEST_2VALIDLOG SWITCH GAP​

SELECT RECID,NAME,SEQUENCE#,COMPLETION_TIME,STANDBY_DEST,ARCHIVED,APPLIED,DELETED FROM V$ARCHIVED_LOG WHERE COMPLETION_TIME > SYSDATE -1/24;​

开启ADG的过程,只会将CDB置于open read only,并不会将mount状态的pdb1也开启为open read only,开库pdb会重建临时表空间​

SQL> show pdbs;​

CON_ID CON_NAME OPEN MODE RESTRICTED​

---------- ------------------------------ ---------- ----------​

2 PDB$SEED READ ONLY NO​

3 EBSSTG3 MOUNTED​

SQL> alter pluggable database all open;​

Pluggable database altered.​

SQL> show pdbs;​

CON_ID CON_NAME OPEN MODE RESTRICTED​

---------- ------------------------------ ---------- ----------​

2 PDB$SEED READ ONLY NO​

3 EBSSTG3 READ ONLY NO​

四、主备切换​
4.1 正常切换
1 检查主备库的状态​

主库​

SQL> select name,database_role,open_mode,switchover_status from v$database; ​

NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS​

--------- ---------------- -------------------- --------------------​

EBSCDB PRIMARY READ WRITE SESSIONS ACTIVE​

备库​

SQL> select name,database_role,open_mode,switchover_status from v$database; ​

NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS​

--------- ---------------- -------------------- --------------------​

EBSCDB PHYSICAL STANDBY READ ONLY WITH APPLY NOT ALLOWED​

2 主库:切换到备库并关闭原主库​

有会话切换:关闭会话并切换​

SQL> alter database commit to switchover to physical standby with session shutdown;​

无会话切换:(无会话,主库切换状态为TO STANDBY)​

SQL> alter database commit to switchover to physical standby;​

3 备库:检查备库是否可以切换到主库的状态​

SQL> select name,database_role,open_mode,switchover_status from v$database; ​

NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS​

--------- ---------------- -------------------- --------------------​

EBSCDB PHYSICAL STANDBY READ ONLY WITH APPLY TO PRIMARY​

4 将备库切换为主库并打开新主库​

SQL> alter database commit to switchover to primary with session shutdown;​

SQL> alter database open;​

5 检查主库的状态​

SQL> select name,database_role,open_mode,switchover_status from v$database; ​

NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS​

--------- ---------------- -------------------- --------------------​

EBSCDB PRIMARY READ WRITE FAILED DESTINATION​

switchover_status 为 failed destination​

原因是备库(原主库)未开启​

6 启动备库​

启动备库​

sqlplus '/as sysdba'​

startup​

SQL> select process,status,thread#,sequence#,client_pid from v$managed_standby;​

--启用备库日志恢复​

SQL> alter database recover managed standby database using current logfile disconnect from session;​

7 检查主备库的状态及日志同步情况​

select dest_name,status,gap_status,error from v$archive_dest_status where dest_id in(1,2);​

select max(sequence#) from v$archived_log;​

4.2 异常切换


五、问题修复​
5.1 ADG 复制报错
Starting backup at 04-MAR-22​

allocated channel: ORA_DISK_1​

channel ORA_DISK_1: SID=2804 device type=DISK​

RMAN-00571: ===========================================================​

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============​

RMAN-00571: ===========================================================​

RMAN-03002: failure of Duplicate Db command at 03/04/2022 17:47:24​

RMAN-05501: aborting duplication of target database​

RMAN-03015: error occurred in stored script Memory Script​

RMAN-03009: failure of backup command on ORA_DISK_1 channel at 03/04/2022 17:47:24​

ORA-17627: ORA-12154: TNS:could not resolve the connect identifier specified​

ORA-17629: Cannot connect to the remote database server​

Tnsping互通​

Sqlplus sys/oracle@ebscdb as sysdba 互通​

此问题是监听导致(必须使用静态监听配置ADG)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值