Oracle21.3 active data guard(ADG)配置

Oracle21.3 active data guard(ADG)配置

环境介绍:

OS :centos8.3

oracle: 21.3

此次文档搭建的是CDB级别的ADG。Oracle从21.7版本开始支持PDB级别的ADG,不在这篇文章中测试验证,后续有时间再安排更新。

以下是主要的配置步骤:

1、主备开启归档模式

复制代码
SQL>shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 5301599856 bytes
Fixed Size                  9698928 bytes
Variable Size            1006632960 bytes
Database Buffers         4278190080 bytes
Redo Buffers                7077888 bytes
数据库装载完毕。
SQL> alter database archivelog;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> show pdbs;
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     1
下一个存档日志序列   3
当前日志序列           3

2、主备配置TNS

复制代码
itsm_pri =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.xx.xx)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = itsmsrv)
    )
  )

itsm_std =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.xx.xx)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = itsmsrv)
    )
  )

3、配置静态监听

复制代码
vi listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC = 
      (GLOBAL_DBNAME = ITSMPROD)
      (ORACLE_HOME = /OSdata/oracle/app/product/21.3.0/db_1)
      (SID_NAME = ITSMPROD)
    )
  )
# lsnrctl reload
# lsnrctl status

4、主备开启强制日志和闪回

复制代码
SQL> alter database force logging;
SQL> shutdown immediate
SQL> startup mount;
SQL> alter database flashback on;
SQL> alter database open;

SQL> select flashback_on,FORCE_LOGGING from v$database;
FLASHBACK_ON       FORCE_LOGGING
------------------ ---------------------------------------
YES                YES

5、主库添加standb redolog

复制代码
添加standby日志组
alter database add standby logfile group 4 '/OSdata/oradata/ITSM/std_redo04.log' size 200m;
alter database add standby logfile group 5 '/OSdata/oradata/ITSM/std_redo05.log' size 200m;
alter database add standby logfile group 6 '/OSdata/oradata/ITSM/std_redo06.log' size 200m;
alter database add standby logfile group 7 '/OSdata/oradata/ITSM/std_redo07.log' size 200m; 

select group#,sequence#,status, bytes/1024/1024 from v$standby_log;

6、配置主备库参数文件

主库配置参数文件

复制代码
主库配置参数文件1:
alter system set db_unique_name=PRODITSM sid='*' scope=spfile; 
alter system set log_file_name_convert= '/OSdata/oradata/ITSM','/OSdata/oradata/ITSM' sid='*' scope=spfile;
alter system set db_file_name_convert= '/OSdata/oradata/ITSM/ITSMPROD','/OSdata/oradata/ITSM/ITSMPROD','/OSdata/oradata/ITSM/pdbseed','/OSdata/oradata/ITSM/pdbseed','/OSdata/oradata/ITSM','/OSdata/oradata/ITSM' sid='*' scope=spfile;
alter system set service_names=itsmsrv sid='*' scope=spfile;

主库开启闪回:
alter system set db_recovery_file_dest_size=100G sid='*' scope=both;  (生产环境根据实际情况调整大小)
--alter system set db_recovery_file_dest='D:\flashbackon' sid='*' scope=both;
shutdown immediate
startup mount;
alter database flashback on;
alter database open;
检查flashback结果:
select flashback_on,FORCE_LOGGING from v$database;

主库配置参数文件2:
alter system set log_archive_config='DG_CONFIG=(PRODITSM,STDITSM)' sid='*' scope=both;
alter system set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PRODITSM' sid='*' scope=both;
alter system set log_archive_dest_2='SERVICE=itsm_std LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STDITSM' sid='*' scope=both;
alter system set log_archive_dest_state_1=ENABLE sid='*' scope=both;
alter system set log_archive_dest_state_2=ENABLE sid='*' scope=both;
--# Standby role Parameters
alter system set FAL_SERVER=STDITSM sid='*' scope=both;
alter system set FAL_CLIENT=PRODITSM sid='*' scope=both;
alter system set STANDBY_FILE_MANAGEMENT=AUTO sid='*' scope=both;

备库配置参数文件

复制代码
备库参数文件修改
alter system set db_unique_name=STDITSM sid='*' scope=spfile;
alter system set log_file_name_convert= '/OSdata/oradata/ITSM','/OSdata/oradata/ITSM' sid='*' scope=spfile;
alter system set db_file_name_convert= '/OSdata/oradata/ITSM/ITSMPROD','/OSdata/oradata/ITSM/ITSMPROD','/OSdata/oradata/ITSM/pdbseed','/OSdata/oradata/ITSM/pdbseed','/OSdata/oradata/ITSM','/OSdata/oradata/ITSM' sid='*' scope=spfile;
alter system set service_names=itsmsrv sid='*' scope=spfile;

开启强制日志功能
alter database force logging;

备库开启闪回:
alter system set db_recovery_file_dest_size=100G sid='*' scope=both;  (生产环境根据实际情况调整大小)
--alter system set db_recovery_file_dest='D:\flashbackon' sid='*' scope=both;
shutdown immediate
startup mount;
alter database flashback on;
alter database open;
--检查flashback结果:
select flashback_on,FORCE_LOGGING from v$database;

备库参数修改2
alter system set log_archive_config='DG_CONFIG=(PRODITSM,STDITSM)' sid='*' scope=both;
alter system set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STANDBY' sid='*' scope=both;
alter system set log_archive_dest_2='SERVICE=itsm_pri LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PRODUCTION' sid='*' scope=both;
alter system set log_archive_dest_state_1=ENABLE sid='*' scope=both;
alter system set log_archive_dest_state_2=DEFER sid='*' scope=both;
--# #Standby Database Standby role parameters
alter system set FAL_SERVER=PRODITSM sid='*' scope=both;
alter system set FAL_CLIENT=STDITSM sid='*' scope=both;
alter system set STANDBY_FILE_MANAGEMENT=AUTO sid='*' scope=both;

7、备库启动到nomount状态进行搭建

备库启动到nomount状态

复制代码
shutdown immediate;
startup nomount;
在线搭建DG
rman target sys/xxx@itsm_pri auxiliary sys/xxx@itsm_std
duplicate target database for standby from active database nofilenamecheck dorecover;

8、启动备库到只读状态

复制代码
SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MOUNTED
         3 ITSMPROD                       MOUNTED

SQL> alter database open;

数据库已更改。

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ITSMPROD                       MOUNTED
SQL> select database_role from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY

SQL> alter pluggable database ITSMPROD open read only;

插接式数据库已变更。

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ITSMPROD                       READ ONLY  NO

9、检查状态

复制代码
主库:
SQL> select process,status,sequence# from v$managed_standby;

PROCESS   STATUS        SEQUENCE#
--------- ------------ ----------
DGRD      ALLOCATED             0
ARCH      CONNECTED             0
DGRD      ALLOCATED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CLOSING               3
DGRD      ALLOCATED             0
LNS       CONNECTED             0
LNS       WRITING               7

备库:
SQL> select process,status,sequence# from v$managed_standby;

PROCESS   STATUS        SEQUENCE#
--------- ------------ ----------
ARCH      CONNECTED             0
DGRD      ALLOCATED             0
DGRD      ALLOCATED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
RFS       IDLE                  0
RFS       IDLE                  7

--启动实时应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

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

PROCESS   STATUS        SEQUENCE#
--------- ------------ ----------
ARCH      CONNECTED             0
DGRD      ALLOCATED             0
DGRD      ALLOCATED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CLOSING              12
RFS       IDLE                  0
RFS       IDLE                 13
MRP0      APPLYING_LOG         13

问题处理

RMAN

-04006: 来自辅助数据库的错误: ORA-01017: invalid username/password; logon denied

该问题主要是由于TNS的服务名配置错误导致。

相关推荐
九河云2 分钟前
TOS + 数字孪生:集装箱码头的智能进化密码
大数据·服务器·网络·数据库·数字化转型
手握风云-30 分钟前
MySQL数据库精研之旅第十九期:存储过程,数据处理的全能工具箱(二)
数据库·mysql
孟意昶32 分钟前
Doris专题17- 数据导入-文件格式
大数据·数据库·分布式·sql·doris
你可以永远相信功夫熊猫40 分钟前
金蝶云·星瀚 | 生产制造成本核算终极实操手册(从0到1,含两套完整案例)
数据库·erp
Thepatterraining1 小时前
MySQL零基础教程:DDL/DCL/DML详解,从建库到存储过程一篇搞定!
数据库·sql·mysql
想ai抽1 小时前
深入starrocks-怎样实现多列联合统计信息
java·数据库·数据仓库
jackletter1 小时前
待补充 五大关系数据库(sqlserver、mysql、oracle、pgsql、sqlite)的列类型:目录
mysql·oracle·sqlserver·sqlite·pgsql·列类型
Y4090012 小时前
MySQL中的“事务”
数据库·mysql
Raymond运维2 小时前
MySQL源码编译安装
linux·数据库·mysql
清风细雨_林木木2 小时前
MacOS本地数据库搭建
数据库·macos