辅助服务器上的隔离级别

所有类型的辅助服务器上均支持以下语句:
Set isolation to committed read
Set isolation to committed read last committed
设置已落实读取隔离的辅助服务器可以在本地读取已落实的数据。 如果主服务器上的已落实数据在辅助服务器上可用并已落实,它们也可以读取这些数据。 连接至辅助服务器的应用程序会接收当前已在辅助服务器上落实的数据。 请参阅设计数据复制组客户机,以获取有关针对连接至正在运行数据复制的数据库服务器的客户机设计注意事项的更多信息。

辅助服务器上的缺省隔离级别是 DIRTY READ;然而,设置显式隔离级别将启用正确的隔离级别:DIRTY READ、COMMITTED READ 或 COMMITTED READ LAST COMMITTED。

不支持 REPEATABLE READ 和 CURSOR STABILITY 隔离级别。 在忽略 CURSOR STABILITY 和 REPEATABLE READ 级别的情况下使用 SET ISOLATION 语句。

启动辅助服务器后,只有在启动检查点打开的所有事务已落实或回滚时,客户机应用程序才与服务器连接。

如果禁用了 UPDATABLE_SECONDARY 配置参数(通过取消设置或设置为零),辅助数据复制服务器将为只读。在这种情况下,辅助服务器上只能使用 DIRTY READ 或 READ UNCOMMITTED 事务隔离级别。

如果启用了 UPDATABLE_SECONDARY 参数(通过将其设置为大于零的有效连接数),辅助数据复制服务器可支持 COMMITTED READ、COMMITTED READ LAST COMMITTED 或 COMMITTED READ 事务隔离级别,或 USELASTCOMMITTED 会话环境变量。只有 SQL 的 DML 语句(DELETE、INSERT、UPDATE 和 MERGE 语句)以及 dbexport 实用程序可支持对可更新辅助服务器执行写操作。(除 UPDATABLE_SECONDARY 之外,还必须设置 STOP_APPLY 和 USELASTCOMMITTED 配置参数,才能在辅助数据复制服务器上启用 dbexport 执行的写操作。)

使用 onstat -g sesonstat -g sql 可查看隔离级别设置。请参阅 GBase 8s 管理员参考 以获取更多信息。