#yasbak使用指导

# 命令简介

yasbak是一个针对yasrman的管理工具,对yasrman进行了简单封装,保存了执行过程中一些必须的参数。相比于yasrman,使用yasbak执行备份和恢复,可以减少参数输入次数、减轻执行备份和恢复的复杂度。

# 查看帮助

使用yasbak -h命令可查看帮助信息。

$ yasbak -h

# 使用指南

# yasbak deploy

本命令用于初始化yasbak和yasrman的运行环境。 本命令执行时会校验能否连接数据库,如果连接失败则初始化失败。

选项 含义
-c,--cluster 指定一个名称,该名称将用于配置数据库命名,一个数据库对应一个名称,建议与yasboot部署时的名称保持一致
-a,--addr 指定数据库的yasom访问地址,yasbak将通过该地址与yasom进行通信
-k,--key 连接yasom时校验的token,需要和yasom配置保持一致
-D,--cata-log yasrman所使用的cata log,将指定路径生成该目录。如果未指定,则默认cata log路径规则与yasrman保持一致,如果传相对路径,则在当前工作目录下创建该目录作为cata log路径
-u,--user 连接数据库使用的用户名,后续执行备份时默认将使用该用户
-p,--password 连接数据库用户对应密码,该密码将通过多次加密后保存在本地配置文件内,执行clean可以清理配置
-t,--cert 当yasom指定TLS加密通信时,需要指定对应的加密证书
-S,--server 当yasom指定server名称后,需要指定该名称
-f,--force 强制初始化运行环境,指定此参数时不进行权限校验

示例

$ yasbak deploy -c yashandb -a 127.0.0.1:1675 -k 96ed7a2c90e81a9e -D ./catalog -u sys -p password

# yasbak run

本命令用于执行yasrman的备份、恢复、清理备份等语句。

选项 含义
-c,--cluster deploy时指定的cluster名称
-s,--sql 指定yasrman运行的SQL,SQL用法参考 yasrman使用指导
-u,--user 执行yasrman使用的用户,若不指定将使用deploy时的用户名。
-p,--password 执行yasrman使用的密码,若不指定将使用deploy时的密码,yasbak解密后内部使用。
-r,--role 可选参数:primary、standby,使用指定类型节点进行备份操作。
-a, --addr yasdb的连接地址,若提供该参数值,将指定这个节点,--role将失效
-b,--build-all 指定该参数,在恢复备份时是否恢复其他备节点

Note

当addr和role均未指定时,节点信息选取规则如下:

  • 单机部署:备份时选择备节点执行操作(仅有一个节点时直接选择该节点);恢复时选择节点列表中第一个节点执行操作。
  • 分布式部署:选择第一个CN进行备份或恢复。
  • 共享集群部署:选择第一个节点进行备份,选择master role节点进行恢复。

示例

yasrman提供了对接第三方XBSA API的接口,需要在SQL语句中添加PARAMS参数,PARAMS请参见yasrman params简介

# 执行备份
YASRMAN_PARAM="XBSA_LIBRARY=/lib/libxbsa.so, TOKEN=157257815837, ENV=(key1=val1,key2=val2)"

$ yasbak run -c yashandb -s "backup database tag 'full_01' parallelism 4 dest client params '${YASRMAN_PARAM}'"
 
# 恢复备份
$ yasbak run -c yashandb -s "restore database from tag 'full_01' dest client params '${YASRMAN_PARAM}'" -u sys -p password  --build-all
 
# 清理备份
$ yasbak run -c yashandb -s "delete backupset tag 'full_01'"

# yasbak reset

本命令用于清理对应数据库数据,并将数据库以nomount模式启动,可用于通过备份集恢复数据库。

选项 含义
-c,--cluster deploy时指定的cluster名称
-f,--force 忽略确认,直接清理
-p,--password sys用户密码
--with-arch 删除归档日志
-d, --child 展示任务以及子任务信息
--disable 屏蔽任务进度条展示
-w, --nowait 运行后不等待执行命令结果

示例

$ yasbak reset -c yashandb -p password

# 全量恢复如果只恢复到备份集的时间点,需要删除归档
$ yasbak reset -c yashandb -p password --with-arch

# yasbak clean

本命令用于清理初始化时生成的配置文件、元数据信息等。

选项 含义
-c,--cluster deploy时指定的cluster名称
-f,--force 忽略确认,直接清理
-p,--purge 清理时是否同时删除cata log目录

示例

$ yasbak clean -c yashandb --purge

# yasbak distribute

本命令用于分发备份集,将备份集分发到对应节点的backup目录下。

选项 含义
-c,--cluster deploy时指定的cluster名称
-b,--backup-set 备份集压缩包的路径

压缩包的格式如下:

yashandb.tar.gz     # 文件名称无约束,但文件后缀名必须为.tar.gz
    mn-1-1.tar.gz   # 压缩包命名格式为"节点类型-节点id.tar.gz"
        full_01/... # 若为增量备份,则将多个备份集全压缩在同一个压缩包中
    cn-2-1.tar.gz
        full_01/...
    dn-3-1.tar.gz
        full_01/...

示例

$ yasbak distribute -c yashandb -b yashandb.tar.gz