0
点赞
收藏
分享

微信扫一扫

EBS CDB ADG配置

吓死我了_1799 2023-02-16 阅读 47

一、 概述和说明

1.1 概述

本文档用于使用多租户数据库的ADG操作

1.2 参考文档

  1. ​​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)



举报

相关推荐

0 条评论