sec2er 命令会在将主服务器和辅助服务器对转换为 ER 系统之前检查多个条件。
以下条件通过 sec2er 命令进行检查;仅当满足以下条件时才会进行 ER 转换:
- 组定义必须使用 i= 选项。
- 主服务器和辅助服务器上的 CDRID 选项必须相同(CDRID 是 sqlhosts 文件的 Options 字段中数据库服务器的唯一标识)。
- 主服务器上的 sqlhosts 文件必须与辅助服务器上的 sqlhosts 文件相匹配。sec2er 命令只检查 sqlhosts 文件中必须匹配以支持 ER 的行。
- 数据库不能包含不带主键的类型表。
- 用户定义的类型 (UDT) 必须支持 ER。
- 表不能通过基于标号的访问控制 (LBAC) 进行保护。
- 必须已定义辅助服务器。
- 必须存在稳定队列的 sbspace。
- 必须正在运行 GBase 8s V8.5。
还可能发生以下警告。虽然警告并不总是指示有问题,但也应予以解决。如果发生以下任一情况,将生成警告:
- 未设置 CDR_SERIAL 配置参数。
- 主服务器和辅助服务器上的 CDR_SERIAL 配置参数的值相同。相同值可能会导致冲突。
- 数据库具有序列生成器。因为不会复制序列生成器,所以如果复制表时将序列对象用于更新、插入或删除操作,那么可能会在不同服务器上同时生成相同的序列值,从而导致冲突。
- 未记录数据库。
- 未记录表。
- DBSPACE 的已用百分比超过 70%。