大对象工具

sdblobtool 是一款用于管理 SequoiaDB 集合大对象的工具。

功能列表

设置 sdblobtool 的 —operation 选项可以使用不同功能:

设置功能描述
export导出将集合中的大对象导出至本地文件
import导入将本地文件中的大对象导入至集合
migration迁移将一个集合中的大对象复制到另一个集合中

选项

导出选项

名称描述默认值是否必填
—hostname协调节点(Coord) 地址localhost
—svcname协调节点(Coord) 服务名11810
—usrname用户名
—passwd密码,指定值则使用明文输入,不指定值则命令行提示输入
—cipher使用加密文件输入密码false
—token加密口令
—cipherfile加密文件./passwd
—operation操作类型是,设置为 export
—file本地文件全路径
—collection需要导出的集合全名
—prefer优先选择的实例M
—ssl使用 SSL 连接false

Note:

  • --prefer 的取值 m 或 M 指 master,s 或 S 表示 slave,a 或 A 表示 anyone,1 - 7 表示 node1 - node7,默认值为 M。

导入选项

名称描述默认值是否必填
—hostname协调节点(Coord) 地址localhost
—svcname协调节点(Coord) 服务名11810
—usrname用户名
—passwd密码,指定值则使用明文输入,不指定值则命令行提示输入
—cipher使用加密文件输入密码false
—token加密口令
—cipherfile加密文件./passwd
—operation操作类型是,设置为 import
—file本地文件全路径
—collection需要导入的集合全名
—ignorefe当前大对象如果已经存在于集合中,忽略这个错误并开始导入下一条记录false
—ssl使用 SSL 连接false

Note:

  • 当需要开启 —ignorefe 时只需要添加 —ignorefe 即可,不需要为其制定具体值。下同。
  • 本地文件必须为导出生成的文件。

迁移选项

名称描述默认值是否必填
—hostname协调节点(Coord) 地址localhost
—svcname协调节点(Coord) 服务名11810
—usrname用户名
—passwd密码,指定值则使用明文输入,不指定值则命令行提示输入
—cipher使用加密文件输入密码false
—token加密口令
—cipherfile加密文件./passwd
—operation操作类型是,设置为 migration
—file本地文件全路径
—collection需要导出的集合全名
—dsthost目标协调节点(Coord) 地址localhost
—dstservice目标协调节点(Coord) 服务名11810
—dstusrname目标用户名
—dstpasswd目标密码
—dstcollection需要导入的目标集合全名
—ignorefe当前大对象如果已经存在于集合中,忽略这个错误并开始导入下一条记录false
—ssl使用 SSL 连接false

日志

使用 sdblobtool 时会在用户的当前运行目录产生日志文件“sdblobtool.log”,当发生错误时可以在日志中查看详细信息。

常见错误

错误码(rc)描述应对措施
-5本地文件已存在或者集合中存在相同 OID 的大对象- 如果是导出操作,检查本地文件是否已经存在
- 如果是导入或者迁移操作,检查目标集合中是否已存在相同 OID 的大对象
-6参数不合法检查参数是否输入错误
-10系统错误需要根据日志进行错误排查
-15无法连接到指定地址- 检查地址相关参数是否填写正确
- 检查数据库是否正常启动
- 如果使用主机名作为参数,检查本地主机名列表是否配置正确
- 检查防火墙是否开启
-23集合不存在- 检查集合相关参数是否填写正确
- 检查相关集合是否存在

示例

  1. 将集合 foo.bar 中的大对象导出至本地文件 mylob 中。

    1. $ ./sdblobtool --operation export --hostname hostname1 --svcname 11810 --collection foo.bar --file /opt/mylob
  2. 将本地文件 mylob 中的大对象导入至集合 foo.bar 中,当遇到已存在的大对象时直接跳过。

    1. $ ./sdblobtool --operation import --hostname hostname1 --svcname 11810 --collection foo.bar --file /opt/mylob --ignorefe
  3. 将集合中的大对象复制到另一个集合中。

    1. $ ./sdblobtool --operation migration --hostname hostname1 --svcname 11810 --collection foo.bar --dsthost hostname2 --dstservice 11810 --dstcollection foo.bar