1. 首页 > Oracle教程 > 正文

Oracle教程FG372-PDB DataGuard

本文档风哥主要介绍Oracle数据库PDB DataGuard相关知识,包括PDB DataGuard的概念、方法、要求、规划、配置、验证等内容,由风哥教程参考Oracle官方文档Multitenant内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 PDB DataGuard的概念

Oracle数据库PDB DataGuard是指在多租户容器数据库(CDB)中为PDB配置DataGuard,实现数据保护和灾难恢复。PDB DataGuard可以实现数据的实时复制、故障切换、读写分离等功能,提高数据库的可用性和可靠性。PDB DataGuard包括主库、备库、日志传输、日志应用等组件。更多视频教程www.fgedu.net.cn

PDB DataGuard的特点:

  • 支持PDB级别的DataGuard
  • 支持实时数据复制
  • 支持故障切换
  • 支持读写分离
  • 提高数据库可用性和可靠性

1.2 PDB DataGuard的方法

Oracle数据库PDB DataGuard的方法:

  • 物理DataGuard:使用物理DataGuard进行PDB数据保护
  • 逻辑DataGuard:使用逻辑DataGuard进行PDB数据保护
  • 最大保护模式:最高级别的数据保护
  • 最大可用性模式:平衡数据保护和可用性
  • 最大性能模式:最高性能的数据保护

1.3 PDB DataGuard的要求

Oracle数据库PDB DataGuard的要求:

  • CDB架构:必须在CDB架构中配置DataGuard
  • 系统资源:足够的CPU、内存和磁盘空间
  • 权限:需要SYSDBA权限
  • 兼容性:Oracle数据库版本必须支持PDB DataGuard
  • 配置:需要配置适当的参数和选项
风哥提示:PDB DataGuard是Oracle数据库多租户架构的核心功能,通过PDB DataGuard,可以实现数据保护和灾难恢复,提高数据库的可用性和可靠性。

Part02-生产环境规划与建议

2.1 PDB DataGuard规划

Oracle数据库PDB DataGuard规划要点:

# PDB DataGuard规划步骤
1. 分析业务需求
2. 评估系统资源
3. 设计DataGuard方案
4. 规划DataGuard架构
5. 规划网络配置
6. 规划日志传输
7. 测试和验证

# 适用场景
– 多租户数据库
– 需要数据保护的系统
– 需要灾难恢复的系统
– 需要读写分离的系统
– 需要高可用的系统

# 不适用场景
– 单租户数据库
– 数据保护需求简单的系统
– 低可用性需求系统

2.2 PDB DataGuard设计

Oracle数据库PDB DataGuard设计建议:

# PDB DataGuard设计原则
– 基于业务需求设计
– 基于资源需求设计
– 最小化数据丢失
– 最大化可用性
– 合理配置参数

# PDB DataGuard设计策略
– 合理规划DataGuard架构
– 配置适当的保护模式
– 配置适当的日志传输
– 配置适当的故障切换
– 配置适当的监控告警

# 设计步骤
1. 分析业务需求
2. 评估系统资源
3. 设计DataGuard方案
4. 规划DataGuard架构
5. 测试DataGuard效果
6. 调整配置

2.3 PDB DataGuard最佳实践

Oracle数据库PDB DataGuard最佳实践:

  • 规划DataGuard架构:根据业务需求规划DataGuard架构,最小化数据丢失
  • 配置保护模式:为PDB配置合理的保护模式
  • 监控日志传输:监控日志传输情况,及时发现和处理问题
  • 定期测试切换:定期测试故障切换功能,确保系统可用
  • 设置监控告警:设置监控告警,及时发现DataGuard问题
  • 定期review:定期review DataGuard配置,优化保护策略
生产环境建议:PDB DataGuard规划应基于业务需求和系统资源,规划DataGuard架构,配置保护模式,监控日志传输,定期测试切换,设置监控告警,定期review,确保数据安全。学习交流加群风哥微信: itpux-com

Part03-生产环境项目实施方案

3.1 PDB DataGuard实施

3.1.1 配置主库

# 查看CDB
SQL> SELECT name, db_unique_name, open_mode, database_role FROM v$database;

NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE
——— —————– ————– —————-
ORCLCDB ORCLCDB READ WRITE PRIMARY

# 查看PDB
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB READ WRITE
5 APP_ROOT READ WRITE
6 APP_PDB1 READ WRITE

# 配置归档模式
SQL> SHUTDOWN IMMEDIATE;

Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> STARTUP MOUNT;

ORACLE instance started.

Total System Global Area 838860800 bytes
Fixed Size 9140416 bytes
Variable Size 503316480 bytes
Database Buffers 318767104 bytes
Redo Buffers 7737600 bytes
Database mounted.

SQL> ALTER DATABASE ARCHIVELOG;

Database altered.

SQL> ALTER DATABASE OPEN;

Database altered.

SQL> ARCHIVE LOG LIST;

Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Next log sequence to archive 2
Current log sequence 2

# 配置强制日志
SQL> ALTER DATABASE FORCE LOGGING;

Database altered.

SQL> SELECT force_logging FROM v$database;

FORCE_LOGGING
————-
YES

# 配置Standby Redo Log
SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 11 SIZE 50M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 12 SIZE 50M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 13 SIZE 50M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 14 SIZE 50M;

Database altered.

# 查看Standby Redo Log
SQL> SELECT group#, type, member FROM v$logfile ORDER BY group#;

GROUP# TYPE MEMBER
—— ——- ————————————————
1 ONLINE /oracle/app/oracle/oradata/orclcdb/redo01.log
2 ONLINE /oracle/app/oracle/oradata/orclcdb/redo02.log
3 ONLINE /oracle/app/oracle/oradata/orclcdb/redo03.log
11 STANDBY /oracle/app/oracle/oradata/orclcdb/stdby_redo11.log
12 STANDBY /oracle/app/oracle/oradata/orclcdb/stdby_redo12.log
13 STANDBY /oracle/app/oracle/oradata/orclcdb/stdby_redo13.log
14 STANDBY /oracle/app/oracle/oradata/orclcdb/stdby_redo14.log

# 验证主库配置成功

3.1.2 配置备库

# 在备库服务器上创建CDB
$ dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName ORCLCDB \
-sid ORCLCDB \
-sysPassword Oracle123 \
-systemPassword Oracle123 \
-datafileDestination /oracle/app/oracle/oradata \
-storageType FS \
-characterSet AL32UTF8 \
-nationalCharacterSet AL16UTF16 \
-sampleSchema false \
-memoryPercentage 40 \
-databaseType MULTIPURPOSE \
-emConfiguration NONE \
-createAsContainerDatabase true

Copying database files
1% complete

100% complete

Database creation complete.

# 连接到备库
$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0

# 配置备库参数
SQL> ALTER SYSTEM SET DB_UNIQUE_NAME = ‘ORCLCDB_STBY’ SCOPE = SPFILE;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG = ‘DG_CONFIG=(ORCLCDB,ORCLCDB_STBY)’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = ‘LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCLCDB_STBY’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = ‘SERVICE=ORCLCDB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLCDB’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = ENABLE SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET FAL_SERVER = ‘ORCLCDB’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET FAL_CLIENT = ‘ORCLCDB_STBY’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = AUTO SCOPE = BOTH;

System altered.

# 验证备库配置成功

3.2 PDB DataGuard配置

3.2.1 配置主库参数

# 连接到主库
$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0

# 配置主库参数
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG = ‘DG_CONFIG=(ORCLCDB,ORCLCDB_STBY)’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = ‘LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCLCDB’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = ‘SERVICE=ORCLCDB_STBY LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLCDB_STBY’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = ENABLE SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET FAL_SERVER = ‘ORCLCDB_STBY’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET FAL_CLIENT = ‘ORCLCDB’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = AUTO SCOPE = BOTH;

System altered.

# 配置TNS
$ vi $ORACLE_HOME/network/admin/tnsnames.ora

ORCLCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary.fgedu.net.cn)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB)
)
)

ORCLCDB_STBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby.fgedu.net.cn)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB_STBY)
)
)

# 验证主库参数配置成功

3.2.2 配置备库参数

# 连接到备库
$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0

# 配置备库参数
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG = ‘DG_CONFIG=(ORCLCDB,ORCLCDB_STBY)’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = ‘LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCLCDB_STBY’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = ‘SERVICE=ORCLCDB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLCDB’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = ENABLE SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET FAL_SERVER = ‘ORCLCDB’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET FAL_CLIENT = ‘ORCLCDB_STBY’ SCOPE = BOTH;

System altered.

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = AUTO SCOPE = BOTH;

System altered.

# 配置TNS
$ vi $ORACLE_HOME/network/admin/tnsnames.ora

ORCLCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary.fgedu.net.cn)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB)
)
)

ORCLCDB_STBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby.fgedu.net.cn)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB_STBY)
)
)

# 验证备库参数配置成功

3.3 PDB DataGuard验证

3.3.1 验证DataGuard状态

# 连接到主库
$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0

# 查看DataGuard状态
SQL> SELECT name, db_unique_name, open_mode, database_role, protection_mode, protection_level FROM v$database;

NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL
——— —————– ————– —————– ——————– ——————–
ORCLCDB ORCLCDB READ WRITE PRIMARY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE

# 查看归档日志传输状态
SQL> SELECT dest_name, status, error FROM v$archive_dest WHERE dest_name IN (‘LOG_ARCHIVE_DEST_1’, ‘LOG_ARCHIVE_DEST_2’);

DEST_NAME STATUS ERROR
——————– ——— ——————–
LOG_ARCHIVE_DEST_1 VALID
LOG_ARCHIVE_DEST_2 VALID

# 查看归档日志应用状态
SQL> SELECT sequence#, applied FROM v$archived_log ORDER BY sequence# DESC FETCH FIRST 10 ROWS ONLY;

SEQUENCE# APPLIED
———- ——–
10 YES
9 YES
8 YES
7 YES
6 YES
5 YES
4 YES
3 YES
2 YES
1 YES

# 验证DataGuard状态成功

3.3.2 验证PDB同步状态

# 连接到备库
$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0

# 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB MOUNTED
4 HRPDB MOUNTED
5 APP_ROOT MOUNTED
6 APP_PDB1 MOUNTED

# 打开PDB
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb OPEN READ ONLY;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE hrpdb OPEN READ ONLY;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE app_root OPEN READ ONLY;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE app_pdb1 OPEN READ ONLY;

Pluggable database altered.

# 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ ONLY
4 HRPDB READ ONLY
5 APP_ROOT READ ONLY
6 APP_PDB1 READ ONLY

# 验证PDB同步状态成功

风哥提示:验证PDB DataGuard是否成功,需要检查DataGuard状态、参数配置、日志传输、日志应用、PDB同步等,确保数据库运行正常。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 PDB DataGuard案例

在某企业的生产环境中,需要为PDB配置DataGuard。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:中等规模,日交易量100万
– 需求:为PDB配置DataGuard

# 实施方案
1. 查看CDB
SQL> SELECT name, db_unique_name, open_mode, database_role FROM v$database;

NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE
——— —————– ————– —————-
ORCLCDB ORCLCDB READ WRITE PRIMARY

2. 配置归档模式
SQL> SHUTDOWN IMMEDIATE;

Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> STARTUP MOUNT;

ORACLE instance started.

Total System Global Area 838860800 bytes
Fixed Size 9140416 bytes
Variable Size 503316480 bytes
Database Buffers 318767104 bytes
Redo Buffers 7737600 bytes
Database mounted.

SQL> ALTER DATABASE ARCHIVELOG;

Database altered.

SQL> ALTER DATABASE OPEN;

Database altered.

3. 配置强制日志
SQL> ALTER DATABASE FORCE LOGGING;

Database altered.

4. 配置Standby Redo Log
SQL> ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 11 SIZE 50M;

Database altered.

5. 配置DataGuard参数
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG = ‘DG_CONFIG=(ORCLCDB,ORCLCDB_STBY)’ SCOPE = BOTH;

System altered.

6. 验证DataGuard配置
SQL> SELECT name, db_unique_name, open_mode, database_role, protection_mode FROM v$database;

NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE
——— —————– ————– —————– ——————–
ORCLCDB ORCLCDB READ WRITE PRIMARY MAXIMUM PERFORMANCE

# 实施效果
– 成功配置PDB DataGuard
– DataGuard状态正常
– 日志传输正常
– 数据保护提高

4.2 PDB DataGuard优化案例

在某金融机构的生产环境中,需要优化PDB DataGuard,提高数据保护级别。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:大规模,日交易量1000万
– 问题:PDB DataGuard需要优化

# 优化方案
1. 查看DataGuard状态
SQL> SELECT name, db_unique_name, open_mode, database_role, protection_mode, protection_level FROM v$database;

NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL
——— —————– ————– —————– ——————– ——————–
ORCLCDB ORCLCDB READ WRITE PRIMARY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE

2. 优化DataGuard配置
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = ‘SERVICE=ORCLCDB_STBY SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLCDB_STBY’ SCOPE = BOTH;

System altered.

SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;

Database altered.

3. 验证优化效果
SQL> SELECT name, db_unique_name, open_mode, database_role, protection_mode, protection_level FROM v$database;

NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL
——— —————– ————– —————– ——————– ——————–
ORCLCDB ORCLCDB READ WRITE PRIMARY MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

# 优化效果
– DataGuard配置优化
– 数据保护级别提高
– 数据安全性提高
– 可用性提高

4.3 PDB DataGuard问题处理

在某电商网站的生产环境中,PDB DataGuard出现问题,需要处理。

# 问题现象
– 日志传输失败
– 备库同步延迟
– 数据不一致

# 分析步骤
1. 查看归档日志传输状态
SQL> SELECT dest_name, status, error FROM v$archive_dest WHERE dest_name IN (‘LOG_ARCHIVE_DEST_1’, ‘LOG_ARCHIVE_DEST_2’);

DEST_NAME STATUS ERROR
——————– ——— ——————–
LOG_ARCHIVE_DEST_1 VALID
LOG_ARCHIVE_DEST_2 ERROR ORA-12154: TNS:could not resolve the connect identifier specified

2. 查看TNS配置
$ tnsping ORCLCDB_STBY

TNS Ping Utility for Linux: Version 19.3.0.0.0 – Production on 31-MAR-2026 10:00:00

Copyright (c) 1997, 2019, Oracle. All rights reserved.

Used parameter files:
/oracle/app/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = standby.fgedu.net.cn)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLCDB_STBY)))
TNS-12541: TNS:no listener

# 问题原因
– TNS配置错误
– 日志传输失败

# 解决方案
1. 修复TNS配置
$ vi $ORACLE_HOME/network/admin/tnsnames.ora

ORCLCDB_STBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB_STBY)
)
)

2. 测试TNS连接
$ tnsping ORCLCDB_STBY

TNS Ping Utility for Linux: Version 19.3.0.0.0 – Production on 31-MAR-2026 10:00:00

Copyright (c) 1997, 2019, Oracle. All rights reserved.

Used parameter files:
/oracle/app/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLCDB_STBY)))
OK (10 msec)

3. 验证归档日志传输状态
SQL> SELECT dest_name, status, error FROM v$archive_dest WHERE dest_name IN (‘LOG_ARCHIVE_DEST_1’, ‘LOG_ARCHIVE_DEST_2’);

DEST_NAME STATUS ERROR
——————– ——— ——————–
LOG_ARCHIVE_DEST_1 VALID
LOG_ARCHIVE_DEST_2 VALID

# 解决效果
– TNS配置正确
– 日志传输正常
– 备库同步正常
– 数据一致性恢复

生产环境建议:配置PDB DataGuard前,需要分析业务需求和系统资源,确保DataGuard配置合理。更多学习教程公众号风哥教程itpux_com

Part05-风哥经验总结与分享

5.1 PDB DataGuard经验

Oracle数据库PDB DataGuard经验:

  • 规划DataGuard架构:根据业务需求规划DataGuard架构,最小化数据丢失
  • 配置保护模式:为PDB配置合理的保护模式
  • 监控日志传输:监控日志传输情况,及时发现和处理问题
  • 定期测试切换:定期测试故障切换功能,确保系统可用
  • 设置监控告警:设置监控告警,及时发现DataGuard问题
  • 定期review:定期review DataGuard配置,优化保护策略
风哥提示:PDB DataGuard是Oracle数据库多租户架构的核心功能,通过规划DataGuard架构,配置保护模式,监控日志传输,定期测试切换,设置监控告警,定期review,可以显著提高数据库的可用性和可靠性。from oracle:www.itpux.com

5.2 PDB DataGuard检查清单

# PDB DataGuard检查清单
– [ ] 检查系统资源
– [ ] 检查CDB架构
– [ ] 检查PDB DataGuard需求
– [ ] 检查网络配置
– [ ] 检查归档模式
– [ ] 检查强制日志
– [ ] 规划DataGuard架构
– [ ] 配置DataGuard参数
– [ ] 配置TNS
– [ ] 验证DataGuard功能

# PDB DataGuard问题处理流程
1. 检查系统资源
2. 检查CDB架构
3. 检查PDB DataGuard需求
4. 规划DataGuard架构
5. 配置DataGuard参数
6. 配置TNS
7. 验证DataGuard功能
8. 处理DataGuard问题
9. 优化配置
10. 监控DataGuard状态

5.3 PDB DataGuard工具

Oracle数据库PDB DataGuard常用工具:

  • Data Guard Broker:Data Guard代理,用于管理DataGuard
  • DGMGRL:Data Guard管理命令行工具
  • SQL*Plus:SQL命令行工具,用于执行SQL命令
  • Oracle Enterprise Manager:图形化管理工具,用于监控和管理数据库
  • RMAN:恢复管理器,用于备份和恢复数据库
  • SQL Developer:SQL开发工具,用于开发和调试SQL
持续改进:PDB DataGuard是一个持续的过程,需要定期review和优化。建议建立PDB DataGuard的规范和流程,不断改进数据库的可用性和可靠性。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息