#单机主备部署

单机主备高可用部署基于一主一备的配置模式,用户可以初始配置一主多备、级联备,或者后续进行扩展配置。

以下部署指导基于在一个已运行的环境进行扩展配置的介绍:

以下部署指导基于在一个初装环境进行主备高可用配置的介绍:

  • 自动选举配置:部署一个一主多备,且可实现故障自动切换的HA环境。

# 常见问题

主备部署过程中出现问题时,可以通过查看V$REPLICATION_EVENT、V$DIAG_INCIDENT视图,以及run log来定位原因。

主备连接异常

  • 出现errno 113:防火墙问题,需要主备服务器配置白名单,或者关闭防火墙。
  • 出现errno 111:对端数据库没有启动,或者参数里的IP端口配置不正确。

build或restore失败

  • 检查local_fs目录,build之前需要删除local_fs 目录下内容,否则build失败。

  • 文件创建失败,路径不存在,可能是备机的文件夹没有创建完整,需要手动创建。

  • 文件创建失败,文件已存在,可能是上次残留的文件没有清理干净,build之前,需要清理所有ctrl,data,redo和归档文件;也可能是同一台服务器上部署主备,但是备机的转换路径没有配置,备机文件路径和主机文件路径重合,需要设置正确的转换路径。

  • 报错 receive timeout,可能是网络带宽过低,也可能是主机开启了最大保护模式,但备机还没部署完成,主机事务将卡住,需要先改为最大可用模式,部署结束后,再还原。

备机NEED REPAIR

1. 主备日志不匹配

  • 最大可用或最大性能模式下,原主机宕机前可能会有部分日志没有同步到备库,备库failover升主,原主机降备后,原主机的日志和新主机的日志会有分歧。需要用户决定回滚旧主机的这部分日志来消除日志分歧(一旦回滚,将无法恢复这部分日志),使备库正常同步新主机的日志。用户可以使用SQL语句ALTER SYSTEM IGNORE STANDBY MISMATCHED REDO快速修复。

2. 归档日志丢失

  • 主机归档清理参数配置错误,导致主机归档文件被数据库清理。
  • 主机归档文件意外丢失或被误删。

3. 文件内容存在损坏,无法同步

  • 备机在线redo文件或归档日志文件存在坏块,导致备机无法正常同步。

4. 主备数据不一致,出现脑裂

  • 原主机宕机前可能会有部分日志没有同步到备库,备库failover升主,原主机降备后,原主机的日志和新主机的日志会有分歧,且分歧日志已提交,无法回滚,导致主备脑裂,造成主备数据不一致。

5. 主备元数据信息不一致

  • 主备二进制版本不匹配,需更换版本。
  • 主备database_id不一样,一般是因为主机重新建过库,但备机没有重新build,导致数据库不匹配。

6. SLICE文件丢失

  • 主机参数配置错误,导致主机slice文件被数据库清理。这种情况需要重新构建备机。

7. 数据库故障

  • 备机发生FATAL错误,导致备机无法正常同步主机,会把备机置为need repair,让主机感知。常见有资源不足,文件操作失败等,可以查看运行日志明确FATAL错误的具体信息。这种情况需要DBA接入修复故障,并重启数据库。

级联备连接不到上级备机

  • 可能是链路参数设置不正确,或者是设置后未重启实例,导致参数没有生效。

Note

前4种need repair的类型,是可以通过BUILD DATABASE REPAIR STANDBY尝试修复的,具体操作请参考备机异常修复。 主备日志不匹配也是NEED REPAIR的一种,但是备机的状态显示为REDO MISMATCH。请参考主备切换

下载文档
复制链接