1,组分裂的解释:
同一守护进程组中,不同数据库实例的数据出现不一致,并且无 法通过重演 Redo 日志重新同步数据情况。
产生组分裂的原因:
- 即时归档中,主库将 Redo 日志写入本地联机 Redo 日志文件之后, 发送到备库之前出现故障,导致主备库数据不一致,为了继续提 供服务,执行备库强制接管,此时,当故障主机重启之后,就会 引发组分裂。
- 故障备库重新完成数据同步之前,主库硬件故障,并且长时间无 法恢复,在用户接受丢失部分数据情况下,为了尽快恢复数据库 服务,执行备库强制接管,将备库切换为主库,此时,如果故障 主库重启,也会造成组分裂。
- 搭建实时主备的过程中,主库完成备份,并将备份集复制到备库 进行了还原,此时以 open 方式重新启动了主库或者备库,也会造 成组分裂。
2,产生组分裂时状态:
- 主备环境正常时监视器的状态
- 产生组分裂时监视器的状态
- 产生组分裂时的 dmwatcher 日志信息:
3,如何避免组分裂的形成:
- 主库与备库搭建过程中第一次初始化以后先用 open 的启停一次, 根据配置文件中给定的各参数向操作系统申请内存,打开数据文 件和日志文件,并启动后台进程或者线程。
- 在主库执行完任务备份操作以后,不能以 open 方式开启数据库, 防止新数据的写入。
- 备库执行还原操作以后,不能在主库关闭的情况下,以 open 方式 启动备库,防止备库的 LSN 值出现不一致。