• backup()
    • 名称
    • 语法
    • 类别
    • 描述
    • 参数描述
    • 返回值
    • 错误
    • 版本
    • 示例

    backup()

    名称

    backup - 备份数据库。

    语法

    db.backup([options])

    类别

    Sdb

    描述

    备份数据库。

    参数描述

    • options ( Object选填 )

    options参数可以设置备份的属性,如指定设定备份名,指定复制组,备份方式等。可组合使用 options 的如下选项:

    • GroupID ( Array ):指定备份的复制组 ID,缺省为所有复制组。

    格式:GroupID:1000GroupID:[1000, 1001]

    • GroupName ( String ):指定备份的复制组名,缺省为所有复制组。

    格式:GroupName: "data1"GroupName: ["data1", "data2"]

    • Name ( String ):备份名称,缺省为 “YYYY-MM-DD-HH:mm:SS” 时间格式的备份名。

    格式:Name: "backup-2014-1-1"

    • Path ( String ):备份路径,缺省为配置参数指定的备份路径。 该路径支持通配符 (%g/%G: group name, %h/%H: host name, %s/%S: service name)。 当在协调节点上执行命令使用该参数时,需要使用通配符,以避免所有的节点往同一个路径下进行操作而导致未知IO错误。

    格式:Path: "/opt/sequoiadb/backup/%g"

    • IsSubDir ( Bool ):上述 Path 参数所配置的路径是否为配置参数指定的备份路径的子目录,如果为true,则真实的备份目录为:" 配置参数中指定的备份目录 / Path目录 "。 缺省为 false。

    格式:IsSubDir: false

    • Prefix ( String ):备份前缀名,支持通配符(%g,%G,%h,%H,%s,%S),缺省为空。

    格式:Prefix: "%gbk"

    • EnableDateDir ( Bool ):是否开启日期子目录功能,如果开启则会自动根据当前日期创建 “YYYY-MM-DD” 的子目录,缺省为 false。

    格式:EnableDateDir: false

    • Description ( String ):备份描述。

    格式:Description: "First backup"

    • EnsureInc ( Bool ):是否开启增量备份,缺省为 false。

    格式:EnsureInc: false

    • OverWrite ( Bool ):存在同名备份是否覆盖,缺省为 false。

    格式:OverWrite: false

    • Compressed ( Bool ):是否开启数据压缩,缺省为 true。

    格式:Compressed: true

    • CompressionType ( String ):压缩格式类型,取值"lz4"、"snappy"和"zlib",缺省为 "snappy"。

    格式:CompressionType: "zlib"

    • BackupLog ( Bool ):当全量备份时是否需要备份所有日志,缺省为 false。

    格式:BackupLog: false

    返回值

    成功:返回新集合的对象。

    失败:抛出异常。

    错误

    backup()函数常见异常如下:

    错误码错误类型描述解决方法
    -240SDB_BAR_BACKUP_EXIST相同名字的备份已存在先删除该备份或开启 OverWrite: true
    -241SDB_BAR_BACKUP_NOTEXIST增量备份对应的全量备份不存在先执行一次全量备份
    -70SDB_BAR_DAMAGED_BK_FILE备份文件已损坏-
    -57SDB_DPS_LOG_NOT_IN_BUF增量备份的开始日志已不存在重新执行全量备份后再增量备份
    -98SDB_DPS_CORRUPTED_LOG相同日志Hash校验不一致,日志发生变更重新执行全量备份后再增量备份

    当异常抛出时,可以通过getLastError()获取错误码,或通过getLastErrMsg()获取错误信息。可以参考常见错误处理指南了解更多内容。

    版本

    v1.2及以上版本。v2.8.2及以上版本增加 CompressedCompressionTypeBackupLog 参数。

    示例

    • 对数据库节点进行全量备份。
    1. > db.backup( { Name: "FullBackup1" } )
    2. > db.listBackup()
    3. {
    4. "Version": 2,
    5. "Name": "FullBackup1",
    6. "ID": 0,
    7. "NodeName": "susetzb:30000",
    8. "GroupName": "SYSCatalogGroup",
    9. "EnsureInc": false,
    10. "BeginLSNOffset": 0,
    11. "EndLSNOffset": 195652068,
    12. "StartTime": "2015-10-20-16:52:42",
    13. "LastLSN": 195652020,
    14. "LastLSNCode": 1845751176,
    15. "HasError": false
    16. }
    17. Return 1 row(s).