sync()
语法
db.sync( [options] )
持久化数据和日志到磁盘。
参数描述
参数名 | 参数类型 | 描述 | 是否必填 |
---|---|---|---|
options | Json 对象 | 设定 深度刷盘、 阻塞模式、 指定集合空间 以及 命令位置参数 | 否 |
- 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及以上版本
示例
- 对全系统所有集合空间和日志进行深度持久化
- > db.sync()
- 对指定集合空间"foo"进行深度持久化
- > db.sync( { CollectionSpace : "foo" } )
- 对指定数据组"group1"进行深度加阻塞的持久化
- > db.sync( { GroupName : "group1", Block : true } )