sync()

语法

db.sync( [options] )

持久化数据和日志到磁盘。

参数描述

参数名参数类型描述是否必填
optionsJson 对象设定 深度刷盘阻塞模式指定集合空间 以及 命令位置参数
  • Options 格式

属性名描述格式Deep是否开启深度刷盘,取值0/1/-1, 0表示不开启,1表示开启,-1表示采用服务器端默认配置。缺省为1。 Deep取值兼容bool类型。Deep:1Block持久化期间是否阻塞所有的变更操作,取值true/false,缺省为false。Block:falseCollectionSpace指定持久化的集合空间名称,字符串类型。如果指定该参数,则只会持久化该集合空间,否则会持久化所有的集合空间和日志文件。CollectionSpace:"foo"Location Elements命令位置参数项,详细见 命令位置参数GroupName:"db1"

返回值

无返回值,出错抛异常,并输出错误信息。可以通过 getLastErrObj()getLastErrMsg() 获取错误信息 或 通过 getLastError() 获取错误码。该操作主要的异常如下:

  • SDB_BACKUP_HAS_ALREADY_START(-67) 与离线备份任务冲突,可以关闭'阻塞模式'进行重试。
  • SDB_REBUILD_HAS_ALREADY_START(-149) 与本地重建任务冲突,可以关闭'阻塞模式'进行重试。
  • SDB_DMS_STATE_NOT_COMPATIBLE(-148) 与其它阻塞操作冲突(如其它sync操作),可以关闭'阻塞模式'进行重试。
  • SDB_DMS_CS_NOTEXIST(-34) 指定集合空间不存在。更多错误可以参考常见错误处理指南

版本信息

2.8及以上版本

示例

  • 对全系统所有集合空间和日志进行深度持久化
  1. > db.sync()
  • 对指定集合空间"foo"进行深度持久化
  1. > db.sync( { CollectionSpace : "foo" } )
  • 对指定数据组"group1"进行深度加阻塞的持久化
  1. > db.sync( { GroupName : "group1", Block : true } )