ONLINE 关键字指示数据库服务器修改后台中表的存储,并且其它并发用户仍可以继续存取该表。
通过在 ALTER FRAGMENT 语句中使用 ONLINE 关键字,DBA 可以降低非独占存取错误的风险,可以提高分片表的可用性。该指示数据库服务器在内部 ATTACH
、DETACH 和 MODIFYT 操作以提交工作,如果没有错误,它将在该表上应用一个内部意向排他锁而非排他锁。
在 DETACH 和 MODIFY 操作中,在以下条件下,ONLINE 关键字可以降低 -710 错误的风险:
- AUTO_REPREPARE 配置参数设置为 1 ,
- IFX_ AUTO_REPREPARE 会话环境变量设置为 1 。
应用 ALTER FRAGMENT ONLINE FOR TABLE 语句有以下限制:
- ALTER FRAGMENT ONLINE 只有 ATTACH 、DETACH 和 MODIFY 选项是有效的。
- FOR TABLE 子句必须指定由范围区间架构分片的表。
- 正在修改的表不能被 LOCK TABLE 语句显示地锁定。
- ALTER FRAGMENT ONLINE 必须是该事务中首个修改任一数据库对象或表的语句。
- 在同一事务中 ALTER FRAGMENT ONLINE 语句后不能出现修改数据库中对象的操作。