SequoiaDB 简介
快速入门
安装部署
数据库实例
分布式引擎
SAC 管控中心
SequoiaPerf 性能分析工具
参考手册
常见问题及解答(FAQ)
版本信息
本章节介绍当出现一些特殊情况时,如何处理。
-315 错误码是集合正在处于不可写入的状态,通常可能由以下原因引起:
迁移任务迁移集合记录数据时,集合会被设置为不可写状态。
数据切换任务在进行数据切换时,集合会被设置为不可写状态。
解决方案:
将涉及到该集合的迁移任务和数据切换任务停止
连接源站点的 sdb shell,执行如下命令,查看集合是否完成了数据切换,以集合 cs.cl 为例:
$ db.snapshot(8, {Name: "cs.cl"})
- 若结果显示该集合关联了数据源,说明数据切换已经完成,该集合可以正常写入数据。
若结果显示该集合没有关联数据源,说明数据切换未完成,则需要手动将集合的不可写状态撤销,执行如下命令:
$ db.cs.cl.alter({RepairCheck: false})连接元数据服务的 sdb shell,执行如下命令,清理迁移与数据切换相关状态记录,以集合 cs.cl 为例:
# source_site: 源站点名称, target_site: 目标站点名称, collection: 集合全名(包含集合空间名称)
# 若工具使用的集合空间不是 SDB_SCHEDULE_SYSTEM,则需要切换到对应的集合空间下执行该命令
$ db.SDB_SCHEDULE_SYSTEM.COLLECTION_TRANSFER_RECORD_STATUS.remove({"source_site": "rootsite", "target_site": "datasource-site", "collection": "cs.cl"})
$ db.SDB_SCHEDULE_SYSTEM.COLLECTION_DATA_SWITCH_EVENT.remove({"source_site": "rootsite", "target_site": "datasource-site", "collection": "cs.cl"})
数据切换任务在数据切换时,会将集合的数据访问路径切换到数据源站点上,而原始集合会被重命名。如果发现数据不一致,可以通过以下操作,将数据访问路径切换回原始集合。
解决方案:
将涉及到该集合的迁移任务和数据切换任务停止,修改任务配置,将该集合移除后,重新启动任务。
删除集合
将重命名后的集合名修改为原始集合名,并撤销集合的不可写状态
将目标站点上的集合数据删除
连接元数据服务的 sdb shell,执行如下命令,清理迁移与数据切换相关状态记录,以集合 cs.cl 为例:
# source_site: 源站点名称, target_site: 目标站点名称, collection: 集合全名(包含集合空间名称)
# 若工具使用的集合空间不是 SDB_SCHEDULE_SYSTEM,则需要切换到对应的集合空间下执行该命令
$ db.SDB_SCHEDULE_SYSTEM.COLLECTION_TRANSFER_RECORD_STATUS.remove({"source_site": "rootsite", "target_site": "datasource-site", "collection": "cs.cl"})
$ db.SDB_SCHEDULE_SYSTEM.COLLECTION_DATA_SWITCH_EVENT.remove({"source_site": "rootsite", "target_site": "datasource-site", "collection": "cs.cl"})将涉及到该集合的迁移任务和数据切换任务停止,修改任务配置,将该集合移除后,重新启动任务。
查看子表挂载的信息
删除子表
将重命名后的子表名修改为原始子表名,并撤销集合的不可写状态
将原始子表重新挂载到主表上
将目标站点上的子表数据删除
连接元数据服务的 sdb shell,执行如下命令,清理迁移与数据切换相关状态记录,以集合 cs.sub_cl 为例
# source_site: 源站点名称, target_site: 目标站点名称, collection: 集合全名(包含集合空间名称)
# 若工具使用的集合空间不是 SDB_SCHEDULE_SYSTEM,则需要切换到对应的集合空间下执行该命令
$ db.SDB_SCHEDULE_SYSTEM.COLLECTION_TRANSFER_RECORD_STATUS.remove({"source_site": "rootsite", "target_site": "datasource-site", "collection": "cs.sub_cl"})
$ db.SDB_SCHEDULE_SYSTEM.COLLECTION_DATA_SWITCH_EVENT.remove({"source_site": "rootsite", "target_site": "datasource-site", "collection": "cs.sub_cl"})
展开