如何在单台服务器上搭建两个Oracle实例的Data Guard测试环境

雨杰同学_4385

雨杰同学_4385

2026-09-25

754人浏览

原创

db_unique_name必须主备不同且与log_archive_config中名称严格一致,否则无法识别角色;主库log_archive_dest_2的db_unique_name须指向备库名,反之亦然。

如何在单台服务器上搭建两个oracle实例的data guard测试环境

db_unique_name 必须不同,否则 log_archive_config 无法识别主备角色 —— 这是单机双实例 DG 最容易卡住的第一步。

单台服务器上跑两个 Oracle 实例做 Data Guard,本质是“伪物理备库”,不依赖网络隔离,但对参数隔离、目录结构、监听配置要求更严。它适合快速验证日志传输、switchover 流程和 Broker 基本行为,不能替代真实异地容灾测试。

必须确保两个实例的 db_unique_name 和监听服务名完全独立

Oracle 不允许同一主机上两个实例共用 db_unique_name,哪怕 SID 不同也不行。log_archive_config='DG_CONFIG=(prim,standby)' 里的名字必须和各自实例的 db_unique_name 严格一致,且不能与 db_name 相同(除非你真打算做 snapshot standby)。

Market Oracle
Market Oracle

金融事件影响分析器 — 获取突发新闻,追踪金属/石油/加密货币/股票价格,预测短中长期市场连锁反应

下载
  • 主库实例:设 db_unique_name=orcl_prim,service_name=orcl_prim,监听中 GLOBAL_DBNAME=orcl_prim
  • 备库实例:设 db_unique_name=orcl_stby,service_name=orcl_stby,监听中 GLOBAL_DBNAME=orcl_stby
  • 两个实例的 ORACLE_SID 也需不同(如 orcl1 / orcl2),且 $ORACLE_HOME/dbs 下的密码文件名必须匹配对应 SID(orapworcl1、orapworcl2)
  • tnsnames.ora 中两个服务名不能指向同一个 SID,否则 log_archive_dest_2='SERVICE=orcl_stby' 会连错实例

log_archive_dest_2 指向本地监听服务,不是 localhost:1521

很多人写成 'SERVICE=localhost:1521/orcl_stby',这是错的 —— Oracle 的 SERVICE 参数只认 tnsnames.ora 里定义的服务名,不支持 host:port 写法。它会尝试用默认端口连 localhost,但实际监听可能绑在 127.0.0.1 或具体网卡 IP 上,导致 TNS-12514。

  • 正确做法:在 $ORACLE_HOME/network/admin/tnsnames.ora 中为备库定义完整条目,例如:
    ORCL_STBY =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl_stby)
        )
      )
  • 然后主库设置:ALTER SYSTEM SET log_archive_dest_2='SERVICE=ORCL_STBY VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl_stby';
  • 注意端口要错开:主库监听用 1521,备库监听用 1522,避免冲突;两套 listener.ora 文件需分别管理(建议用不同 LISTENER 名,如 LISTENER_PRIM / LISTENER_STBY)

备库控制文件必须用 FOR STANDBY 创建,不能直接复制

单机环境下最容易省略这步:直接把主库 control01.ctl 复制过去,结果启动时报 ORA-01102 或 ORA-19802(control file not from standby database)。因为普通控制文件不含 standby 所需的 thread 和 archive log 位置元数据。

  • 主库执行:ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/standby_control01.ctl';
  • 复制到备库对应路径(如 $ORACLE_BASE/oradata/orcl_stby/control01.ctl),并确保所有控制文件副本都替换(control02.ctl 等也要同步生成)
  • 备库启动时必须用 STARTUP NOMOUNT → ALTER DATABASE MOUNT STANDBY DATABASE;,不能 OPEN
  • 如果后续要用 ADG(Active Data Guard),还需提前在备库创建 standby redo logs,组数 ≥ 主库 online redo log 组数 + 1

单机双实例 DG 的核心矛盾在于:Oracle 认为“同一主机上的两个实例天然共享存储和故障域”,所以很多保护机制(比如 FAL_SERVER 自动推断、Broker 的 instance failover 判断)会失效或行为异常。真正要注意的不是“能不能跑起来”,而是哪些功能它根本不会触发 —— 比如 switchover 时 Broker 不会检查网络连通性(因为它是本地 loopback),failover 后也不会自动清理主库残留进程。这些细节,只有在切换后观察 v$archive_dest_status 和 MRP 进程状态才能暴露出来。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

oracle

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2432

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

729

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2196

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4032

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程