文档中心

运维管理

回收站

SequoiaDB 巨杉数据库提供回收站机制,可以有效防止因误删集合空间或集合而导致的数据丢失,加强对数据的保护。

回收站机制默认为启用状态,并且仅对以下操作有效:

启用回收站机制后,SequoiaDB 将对已删除的集合空间或集合数据进行回收,并生成对应的回收站项目。用户可通过回收站项目,快速恢复集合空间或集合的数据。

使用

生成回收站项目

下述以集合 sample.employee 为例,介绍操作步骤。

  1. 连接协调节点

    > db = new Sdb("localhost", 11810)
  2. 确认回收站机制已启用

    > db.getRecycleBin().getDetail()

    输出结果如下,字段 Enable 显示为 true 表示回收站机制已启用:

    {
      "Enable": true,
      "ExpireTime": 4320,
      "MaxItemNum": 100,
      "MaxVersionNum": 2,
      "AutoDrop": false
    }

    Note:

    • getRecycleBin() 用于获取回收站的引用。
    • 如果字段 Enable 显示为 false,用户可通过 enable() 启用回收站机制。
    • 其他结果字段说明可参考 getDetail()
  3. 删除集合 sample.employee

    > db.sample.dropCL("employee")
  4. 查看是否已生成对应的回收站项目

    > db.getRecycleBin().list({OriginName: "sample.employee"})
    {
      "RecycleName": "SYSRECYCLE_5_12884901889",
      "RecycleID": 5,
      "OriginName": "sample.employee",
      "OriginID": 12884901889,
      "Type": "Collection",
      "OpType": "Drop",
      "RecycleTime": "2022-02-11-16.52.59.000000"
    }

    Note:

    用户可通过 list()回收站项目列表查看所有已生成的回收站项目,结果字段说明可参考回收站项目列表

从回收站中恢复数据

下述以从回收站中恢复集合 sample.employee 为例,介绍操作步骤。

  1. 连接协调节点

    > db = new Sdb("localhost", 11810)
  2. 查看已生成的回收站项目

    > db.getRecycleBin().list()

    输出结果中显示集合空间 sample 和集合 sample.employee 分别在不同时间被删除

    {
      "OpType": "Drop",
      "OriginID": 12884901889,
      "OriginName": "sample.employee",
      "RecycleID": 5,
      "RecycleName": "SYSRECYCLE_5_12884901889",
      "RecycleTime": "2022-02-11-16.52.59.000000",
      "Type": "Collection"
    }
    {
      "RecycleName": "SYSRECYCLE_6_3",
      "RecycleID": 6,
      "OriginName": "sample",
      "OriginID": 3,
      "Type": "CollectionSpace",
      "OpType": "Drop",
      "RecycleTime": "2022-02-11-16.54.06.000000"
    }
  3. 恢复集合空间 sample

    > db.getRecycleBin().returnItem("SYSRECYCLE_6_3")

    Note:

    returnItem() 用于恢复指定的回收站项目。在恢复集合时,如果集合对应的集合空间已被删除,需要先恢复该集合空间。

  4. 查看集合空间是否已恢复

    > db.listCollectionSpaces()
    {
      "Name": "sample"
    }
  5. 恢复集合 sample.employee

    > db.getRecycleBin().returnItem("SYSRECYCLE_5_12884901889")
  6. 查看集合是否已恢复

    > db.listCollections()
    {
      "Name": "sample.employee"
    }

配置

用户可通过 getDetail() 查看当前回收站的配置。如果配置不符合预期,可以使用 alter()setAttributes() 进行修改。

参考

更多操作可参考

操作 说明
SdbRecycleBin.disable() 禁用回收站机制
SdbRecycleBin.returnItemToName() 以特定的名称恢复指定的回收站项目
SdbRecycleBin.snapshot() 查看回收站项目的快照
SdbRecycleBin.count() 查看回收站项目的个数
SdbRecycleBin.dropItem() 删除指定的回收站项目
SdbRecycleBin.dropAll() 删除所有的回收站项目
Sdb.dropCS()/SdbCS.dropCL()/SdbCollection.truncate() 删除集合空间/删除集合/删除集合的所有数据
函数中增加参数 SkipRecycleBin,当一些临时表的操作不希望被回收时,可以设置 SkipRecycleBin 为 true
回到顶部