#逻辑备库功能约束
主备集群架构中,如果存在逻辑备库,将对主库的业务功能和操作做了如下约束:
# 功能约束
- TAC和LSC表类型的无法同步
- 不允许主键列更新(主库执行主键列更新,逻辑备库可能会与主库的数据不一致)
- 外部表无法同步
- SEQUENCE的高水位线无法同步
- 不允许表的数据闪回(逻辑备库可能会与主库的数据不一致)
- 不允许的数据类型:游标、JSON、XML、UDT等
- 无法同步的对象:
- 审计策略
- 权限
- PROFILE
- 用户以及角色(支持同步drop user)
- 表空间和数据文件、双写文件
- OUTLINE
- DATABASE LINK
- AC
- DIRECTORY
# 操作约束
- 逻辑备库同步期间,不允许手动关闭主库的库级附加日志。(关闭库级附加日志会导致逻辑备库出现异常,无法正常同步)
- 逻辑备库不允许级联部署。
- 逻辑备库不能开启自选主。
- 逻辑备库的非SYS用户不能执行写业务。
- 逻辑备库不同步主库SYS用户的业务。
- 逻辑备库执行Failover之后,集群的其他节点需要重新构建。
# 容错策略
- SQL回放时如遇资源类错误(例如,表空间不足,CURSOR POOL不足等)会阻塞回放,DBA_LOGSTDBY_EVENTS视图会记录相关事件,需要DBA介入修复。
- SQL回放时如遇主键更新冲突将直接跳过引起冲突的操作,可能会出现与主库数据一致,DBA_LOGSTDBY_EVENTS视图会记录相关事件。
- STREAM POOL空间不足时,SQL回放会被中断,数据库被置为ABNORMAL状态,需要DBA介入,调整STREAMP POOL并重启数据库。