Oracle Data Guard 网络配置详解
Oracle Data Guard 网络配置详解
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
Data Guard 网络配置保证可靠传输[1]:
详细见:Oracle Redo 传输详解、Oracle 网络高可用详解。
2. 网络要求
2.1 带宽
- 足够带宽
- Redo 传输
- 监控
2.2 延迟
- 低延迟
- SYNC 模式
- 关键
2.3 冗余
- 双链路
- 不同路径
- 高可用
3. TNS 配置
3.1 tnsnames.ora
prod =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = prod-host)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = prod))
)
stby =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = stby-host)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = stby))
)
3.2 listener.ora
# 备库
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC = (GLOBAL_DBNAME = stby_DGMGRL)(ORACLE_HOME=...)(SID_NAME=stby))
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = stby-host)(PORT = 1521)))
)
3.3 验证
tnsping prod
tnsping stby
sqlplus sys/xxx@prod as sysdba
sqlplus sys/xxx@stby as sysdba
4. SQLNet 优化
4.1 SDU
# sqlnet.ora
DEFAULT_SDU_SIZE=32767
4.2 队列
# sqlnet.ora
SQLNET.SEND_QUEUE_SIZE=1048576
SQLNET.RECV_QUEUE_SIZE=1048576
4.3 超时
# sqlnet.ora
SQLNET.INBOUND_CONNECT_TIMEOUT=60
SQLNET.OUTBOUND_CONNECT_TIMEOUT=60
5. 参数
5.1 LOG_ARCHIVE_DEST_n
ALTER SYSTEM SET log_archive_dest_2=
'service=stby SYNC AFFIRM
valid_for=(online_logfiles,primary_role)
db_unique_name=stby
REOPEN=60
NET_TIMEOUT=30';
5.2 属性
- SYNC/ASYNC:传输模式
- AFFIRM/NOAFFIRM:确认
- REOPEN:重试间隔
- NET_TIMEOUT:网络超时
- DELAY:应用延迟
5.3 LOG_ARCHIVE_CONFIG
ALTER SYSTEM SET log_archive_config='dg_config=(prod,stby)';
6. 网络冗余
6.1 双链路
- 主链路
- 备链路
- 自动切换
6.2 不同路径
- 不同交换机
- 不同路由
- 高可用
6.3 监控
- 延迟
- 带宽
- 状态
7. 跨地域网络
7.1 专线
- 专用光纤
- 低延迟
- 高可靠
7.2 VPN
- 加密
- 公网
- 备用
7.3 Far Sync
- 近距离 SYNC
- 远端 ASYNC
- 零丢失
详细见:Oracle Far Sync 详解。
8. 网络监控
8.1 连通
ping stby
tnsping stby
8.2 带宽
iperf -c stby
8.3 延迟
ping -c 100 stby
9. 传输监控
9.1 进程
SELECT process, status, client_process, sequence#
FROM v$managed_standby;
9.2 延迟
SELECT * FROM v$dataguard_stats;
9.3 错误
SELECT dest_id, status, error FROM v$archive_dest WHERE dest_id=2;
10. 常见问题
10.1 ORA-12154
- TNS 解析
- 检查 tnsnames
10.2 ORA-12541
- 监听器
- 检查
- 启动
10.3 ORA-12535
- 超时
- NET_TIMEOUT
- 优化
10.4 ORA-03135
- 连接丢失
- 网络
- 检查
11. 优化
11.1 SDU
- 32767
- 大块传输
- 性能
11.2 队列
- 大队列
- 吸收峰值
- 性能
11.3 TCP
# OS
net.ipv4.tcp_rmem
net.ipv4.tcp_wmem
12. 安全
12.1 加密
# sqlnet.ora
SQLNET.ENCRYPTION_SERVER=REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER=AES256
12.2 SSL/TLS
- 证书
- 加密
- 安全
12.3 防火墙
- 端口限制
- IP 限制
- 安全
详细见:Oracle 网络加密与 SSL TLS。
13. 最佳实践
- 冗余:双链路
- 带宽:足够
- SDU:32767
- 监控:延迟
- NET_TIMEOUT:配置
- 加密:安全
- 测试:连通
- 文档:配置
- 优化:参数
- 演练:故障
14. 参考资料
[1] Oracle Database Net Services Administrator’s Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/netag/