一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Oracle 11g Data Guard如何配置物理备库

时间:2026-08-18 20:59:49 编辑:袖梨 来源:一聚教程网

Oracle 19c搭建ADG物理备库必须满足三大硬前提:主库启用ARCHIVELOG和FORCE LOGGING、确认Data Guard组件已授权;RMAN DUPLICATE需指定NOREDO和NOFILENAMECHECK;备库须设standby_file_management=AUTO并配置正确STANDBY LOGFILE及双向TNS连通。

物理备库配置不是“一键完成”的流程,而是多个环节环环相扣。主库没开归档、没启强制日志、没配好 standby redo log,备库哪怕建得再快,也必然卡在 MRP0 进程起不来或 ARCH 报错上。

主库必须满足的三个硬性前提

缺一不可,否则后续所有操作都白搭:

  1. archive log list 输出必须含 Database log mode: Archive Mode —— 非归档模式下 DG 无法传输和应用日志
  2. alter database force logging; 必须执行成功,且 select force_logging from v$database; 返回 YES —— 否则 nologging 操作会导致主备块不一致
  3. select * from v$option where parameter = 'Oracle Data Guard'; 必须返回 TRUE —— 确认企业版已启用 DG 组件(标准版不支持)

standby redo log 的数量和大小怎么定

这是最容易被抄错参数的地方。不是随便建几组就行,它直接影响 MRP 进程能否持续应用日志:

  1. 组数公式:(online redo log 组数 + 1) × 线程数;单实例线程数为 1,RAC 通常是 2
  2. 每组大小必须 ≥ 主库最大 redo log 文件大小(查 v$log.bytes),否则备库日志切换时会报 ORA-00313
  3. 每组至少含 2 个成员(推荐镜像),路径需提前创建且权限属 oracle 用户,例如:alter database add standby logfile group 4 ('/u01/oradata/stdby_redo04a.log', '/u01/oradata/stdby_redo04b.log') size 200m;

tnsnames.ora 和 listener.ora 必须双向可连

常见错误是只配了主库能连备库,忘了备库也要能反向连主库 —— 因为 DG Broker 或手动 switchover 时会触发反向连接:

  1. 主库 tnsnames.ora 中必须定义备库服务名(如 orcldg),指向备库 IP+端口+service_name
  2. 备库 tnsnames.ora 中必须定义主库服务名(如 orcl),指向主库 IP+端口+service_name
  3. 两边 listener.oraSID_LIST_LISTENER 都要包含各自实例的 SID_NAMEGLOBAL_DBNAME,否则 tnsping 通但 sqlplus 连不上

备库启动后 MR0/PR0/MRP0 进程状态怎么看

很多人以为 startup mount 就算好了,其实关键在后台进程是否就位:

  1. 登录备库后执行 ps -ef | grep ora_.*stdby,应看到 MRP0(Managed Recovery Process)—— 它才是真正应用日志的进程
  2. 若只有 MR0PR0,说明没启动实时应用:alter database recover managed standby database using current logfile disconnect;
  3. 查应用进度:select sequence#, applied from v$archived_log order by sequence# desc;,最新一条 APPLIED = YES 才算同步中;若全是 NO,大概率是 LOG_ARCHIVE_DEST_2 参数里 DB_UNIQUE_NAME 写错了或网络不通

最常被忽略的是密码文件一致性 —— 主库生成的 orapw$ORACLE_SID 必须完整拷贝到备库同路径,且备库 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE;否则 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE 会直接报 ORA-16191

热门栏目