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

oracle | ADG 部署2

chkl 2025-04-16
193

环境准备:两台服务器(rman方式搭建ADG)
主库:192.168.1.42 主机名:host01预装了oracle19c-db软件 监听和库都是正常的
备库:192.168.1.33 主机名:host02预装了oracle19c-db软件 (无监听,无数据库)
实例名:PRODDG

vim  /etc/hosts
192.168.1.42 host01
192.168.1.33 host02

1、主库开归档、强制日志,不开启闪回。

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
ALTER DATABASE FORCE LOGGING;
SYS@PRODDG> show parameter db_recovery

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest		     string	 /u01/app/oracle/fast_recovery_area
db_recovery_file_dest_size	     big integer 8256M
SYS@PRODDG>show parameter diag

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest 		     string	 /u01/app/oracle 

 SHUTDOWN IMMEDIATE;
CREATE PFILE  FROM SPFILE;
cd $ORACLE_HOME/dbs 
scp initPRODDG.ora orapwPRODDG  host02:$ORACLE_HOME/dbs

2、主库修改pfile文件后启动

cd $ORACLE_HOME/dbs
vim initPRODDG.ora
## 修改*.local_listener=''
## 添加
DB_UNIQUE_NAME=PRODDG01
LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRODDG01,PRODDG02)'
DB_FILE_NAME_CONVERT='PRODDG02','PRODDG01'
LOG_FILE_NAME_CONVERT='PRODDG02','PRODDG01'
LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
LOG_ARCHIVE_DEST_1=
 'LOCATION=/u01/app/oracle/fast_recovery_area
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) 
  DB_UNIQUE_NAME=PRODDG01'
LOG_ARCHIVE_DEST_2=
 'SERVICE=PRODDG02 ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=PRODDG02'
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
STANDBY_FILE_MANAGEMENT=AUTO
FAL_SERVER=PRODDG02

启动数据库后启动强制日志,添加备用日志组

sqlplus / as sysdba
CREATE SPFILE FROM PFILE ;
startup 
ALTER DATABASE FORCE LOGGING;
ALTER DATABASE FALSHBACK ON;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PRODDG/stan_redo01.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PRODDG/stan_redo02.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PRODDG/stan_redo03.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/PRODDG/stan_redo04.log') SIZE 200M;
ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/u01/app/oracle/oradata/stan_pg.ctl';
SELECT db_unique_name,open_mode,database_role,flashback_on FROM V$DATABASE;
 

修改监听

vim listener.ora
SID_LIST_LISTENER=
  (SID_LIST=
       (GLOBAL_DBNAME=PRODDG01.example.com )
       (SID_NAME=PRODDG)
       (ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1)
      )
     (SID_DESC=
       (GLOBAL_DBNAME=PRODDG01_DGMGRL.example.com )
       (SID_NAME=PRODDG)
       (ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1)
      )
  )
lsnrctl  reload
vim tnsnames.ora
PRODDG01 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = host01 )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PRODDG01.example.com)
    )
  )
PRODDG02 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = host02 )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PRODDG02.example.com)
    )
  )

3、备库修改pfile文件后启动

mkdir -p /u01/app/oracle/oradata/PRODDG
mkdir -p /u01/app/oracle/admin/PRODDG/adump
cd $ORACLE_HOME/dbs
vim initPRODDG.ora
## 修改*.local_listener=''
## 添加
DB_UNIQUE_NAME=PRODDG02
LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRODDG02,PRODDG01)'
DB_FILE_NAME_CONVERT='PRODDG01','PRODDG02'
LOG_FILE_NAME_CONVERT='PRODDG01','PRODDG02'
LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
LOG_ARCHIVE_DEST_1=
 'LOCATION=USE_DB_RECOVERY_FILE_DEST
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) 
  DB_UNIQUE_NAME=PRODDG02'
LOG_ARCHIVE_DEST_2=
 'SERVICE=PRODDG01 ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=PRODDG01'
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
STANDBY_FILE_MANAGEMENT=AUTO
FAL_SERVER=PRODDG01

修改监听

vim listener.ora
SID_LIST_LISTENER=
  (SID_LIST=
       (GLOBAL_DBNAME=PRODDG02.example.com )
       (SID_NAME=PRODDG)
       (ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1)
      )
     (SID_DESC=
       (GLOBAL_DBNAME=PRODDG02_DGMGRL.example.com )
       (SID_NAME=PRODDG)
       (ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1)
      )
  )
lsnrctl  reload
vim tnsnames.ora
PRODDG01 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = host01 )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PRODDG01.example.com)
    )
  )
PRODDG02 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = host02 )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PRODDG02.example.com)
    )
  )

备库duplicate在线复制主库

sqlplus sys/oracle@PRODDG as sysdba
create spfile from pfile;
startup nomount;
[oracle@host02 dbs]$ rman target sys/oracle@PRODDG01 auxiliary sys/oracle@PRODDG02

Recovery Manager: Release 19.0.0.0.0 - Production on Wed Apr 16 17:18:45 2025
Version 19.3.0.0.0

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

connected to target database: PRODDG (DBID=1034241150)
connected to auxiliary database: PRODDG (not mounted)

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

Starting Duplicate Db at 16-APR-25
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=263 device type=DISK

SYS@PRODDG >select db_unique_name,open_mode,database_role,flashback_on from v$database;

DB_UNIQUE_NAME		       OPEN_MODE	    DATABASE_ROLE
------------------------------ -------------------- ----------------
FLASHBACK_ON
------------------
PRODDG02		       MOUNTED		    PHYSICAL STANDBY
NO


SYS@PRODDG >ALTER DATABASE RECOVER MANAGED STANDBY DATABASE  DISCONNECT FROM SESSION;

Database altered.

SYS@PRODDG >ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

SYS@PRODDG > ALTER DATABASE OPEN;

Database altered.

SYS@PRODDG >select db_unique_name,open_mode,database_role,flashback_on from v$database;

DB_UNIQUE_NAME		       OPEN_MODE	    DATABASE_ROLE
------------------------------ -------------------- ----------------
FLASHBACK_ON
------------------
PRODDG02		       READ ONLY	    PHYSICAL STANDBY
NO


SYS@PRODDG >select db_unique_name,open_mode,database_role,flashback_on from v$database;

DB_UNIQUE_NAME		       OPEN_MODE	    DATABASE_ROLE
------------------------------ -------------------- ----------------
FLASHBACK_ON
------------------
PRODDG02		       READ ONLY	    PHYSICAL STANDBY
NO
SYS@PRODDG > ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Database altered.

SYS@PRODDG >select db_unique_name,open_mode,database_role,flashback_on from v$database;

DB_UNIQUE_NAME		       OPEN_MODE	    DATABASE_ROLE
------------------------------ -------------------- ----------------
FLASHBACK_ON
------------------
PRODDG02		       READ ONLY WITH APPLY PHYSICAL STANDBY
NO
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论