Skip to content

mo_br 备份与恢复

数据库物理备份和快照备份是两种重要的数据保护策略,它们在很多场景下都发挥着重要的作用。物理备份通过复制数据库的物理文件,如数据文件和日志文件,能够实现快速和完整的数据库恢复,特别适合于数据库整体迁移或灾难恢复的情况。另一方面,快照备份通过记录数据在特定时间点的状态,提供了一种快速且存储效率高的备份方式,适用于需要进行时间点恢复或只读查询操作的场景,如生成报告或进行数据分析。物理备份的恢复可能需要较长时间,而快照备份则可以提供快速的数据访问,两者结合使用,可以为数据库提供全面的保护,确保数据的安全性和业务的连续性。

MatrixOne 支持通过 mo_br 实用工具进行常规物理备份和快照备份。本章节将介绍 mo_br 的使用方法。

Note

mo_br 企业级服务的物理备份与恢复工具,你需要联系你的 MatrixOne 客户经理,获取工具下载路径。

参考命令指南

help - 打印参考指南

./mo_br help
the backup and restore tool for the matrixone

Usage:
  mo_br [flags]
  mo_br [command]

Available Commands:
  backup      backup the matrixone data
  check       check the backup
  completion  Generate the autocompletion script for the specified shell
  delete      delete the backup
  help        Help about any command
  list        search the backup
  restore     restore the matrixone data
  snapshot    Manage snapshots

Flags:
      --config string      config file (default "./mo_br.toml")
  -h, --help               help for mo_br
      --log_file string    log file (default "console")
      --log_level string   log level (default "error")

Use "mo_br [command] --help" for more information about a command.

物理备份

创建备份

语法结构

mo_br backup
    --host
    --port 
    --user 
    --password 
    --backup_dir s3|filesystem 
        //s3 oss minio
            --endpoint
            --access_key_id 
            --secret_access_key 
            --bucket 
            --filepath
            --region 
            --compression 
            --role_arn 
            --is_minio
            --parallelism 
        //filesystem
            --path
            --parallelism
    --meta_path 
    //增量备份需要
    --backup_type
    --base_id

参数说明

参数 说明
host 目标 MatrixOne 的 IP
port 端口号
user 用户
password 用户的密码
backup_dir 备份的目标路径类型。s3 或 filesystem
endpoint 连接到备份到 s3 的服务的 URL
access_key_id 备份到 s3 的 Access key ID
secret_access_key 备份到 s3 的 Secret access key
bucket 备份到的 s3 需要访问的桶
filepath 备份到 s3 的相对文件路径
region 备份到 s3 的对象存储服务区域
compression 备份到 s3 的文件的压缩格式。
role_arn 备份到 s3 的角色的资源名称。
is_minio 指定备份到的 s3 是否为 minio
path 本地文件系统备份路径
parallelism 并行度
meta_path 指定 meta 文件位置。只能是文件系统中的路径。如果不指定,默认是同一目录下的 mo_br.meta 文件。
backup_type 指定备份类型为增量备份,incremental。
base_id 上次一次备份的 ID,主要用于确定上次备份的时间戳。

示例

  • 全量备份到本地文件系统
./mo_br backup --host "127.0.0.1" --port 6001 --user "dump" --password "111" --backup_dir "filesystem"  --path "yourpath"
  • 全量备份到 minio
./mo_br backup --host "127.0.0.1" --port 6001 --user "dump" --password "111" --backup_dir "s3"  --endpoint "http://127.0.0.1:9000" --access_key_id "S0kwLuB4JofVEIAxWTqf" --secret_access_key "X24O7t3hccmqUZqvqvmLN8464E2Nbr0DWOu9Qs5A" --bucket "bucket1" --filepath "/backup1" --is_minio
  • 增量备份到本地文件系统
./mo_br backup --host "127.0.0.1" --port 6001 --user "dump" --password "111" --backup_dir "filesystem"  --path "yourpath" --backup_type "incremental" --base_id "xxx"

查看备份

语法结构

mo_br list
    -- ID
    //要查询备份数据。如果备份在s3(oss minio)上时,需要指定
      --access_key_id 
      --secret_access_key 
    --not_check_data 
    --meta_path 

参数说明

参数 说明
ID 备份的 ID
access_key_id 备份到的 s3 的 Access key ID
secret_access_key 备份到的 s3 的 Secret access key
not_check_data 只查看 meta 中的信息。不查看备份数据。默认不带这个参数的,就是会检查备份的文件。当前只会检查备份的文件是否存在。
meta_path 指定 meta 文件位置。如果不指定,默认是同一目录下的 mo_br.meta 文件。

示例

  • 查看所有备份列表
./mo_br list
+--------------------------------------+--------+--------------------------------+---------------------------+--------------+---------------------------+
|                  ID                  |  SIZE  |              PATH              |          AT TIME          |   DURATION   |       COMPLETE TIME       |
+--------------------------------------+--------+--------------------------------+---------------------------+--------------+---------------------------+
| 4d21b228-10dd-11ef-9497-26dd28356ef2 | 586 kB |  BackupDir: filesystem  Path:  | 2024-05-13 12:00:12 +0800 | 1.700945333s | 2024-05-13 12:00:13 +0800 |
|                                      |        |    /Users/admin/soft/backup    |                           |              |                           |
| 01108122-10f9-11ef-9359-26dd28356ef2 | 8.3 MB |  BackupDir: filesystem  Path:  | 2024-05-13 15:18:28 +0800 | 3.394437375s | 2024-05-13 15:18:32 +0800 |
|                                      |        |    /Users/admin/soft/backup    |                           |              |                           |
+--------------------------------------+--------+--------------------------------+---------------------------+--------------+---------------------------+
  • 查看指定 ID 备份列表,list 确定的 ID 时,会检测备份的文件。
./mo_br list 4d21b228-10dd-11ef-9497-26dd28356ef2
+--------------------------------------+--------+--------------------------------+---------------------------+--------------+---------------------------+
|                  ID                  |  SIZE  |              PATH              |          AT TIME          |   DURATION   |       COMPLETE TIME       |
+--------------------------------------+--------+--------------------------------+---------------------------+--------------+---------------------------+
| 4d21b228-10dd-11ef-9497-26dd28356ef2 | 586 kB |  BackupDir: filesystem  Path:  | 2024-05-13 12:00:12 +0800 | 1.700945333s | 2024-05-13 12:00:13 +0800 |
|                                      |        |    /Users/admin/soft/backup    |                           |              |                           |
+--------------------------------------+--------+--------------------------------+---------------------------+--------------+---------------------------+

Checking the backup data(currently,no checksum)...

check: /backup_meta
check: /mo_meta
check: hakeeper/hk_data
check: tae/tae_list
check: tae/tae_sum
check: config/log.toml_018f70d1-3100-7762-b28b-8f85ac4ed3cd
check: config/tn.toml_018f70d1-310e-78fc-ac96-aa5e06981bd7
...

删除备份

语法结构

mo_br delete ID  
    //要删除备份数据。如果备份在s3(oss minio)上时,需要指定
      --access_key_id 
      --secret_access_key
    --not_delete_data
    --meta_path

参数说明

参数 说明
ID 要删除的备份的 ID
access_key_id 备份到的 s3 的 Access key ID
secret_access_key 备份到的 s3 的 Secret access key
not_delete_data 只删除 meta 中的信息。不删除备份数据。
meta_path 指定 meta 文件位置。如果不指定,默认是同一目录下的 mo_br.meta 文件。

示例

  • 删除本地文件系统备份
./mo_br delete e4cade26-3139-11ee-8631-acde48001122
  • 删除 minio 上的一个备份。
./mo_br delete e4cade26-3139-11ee-8631-acde48001122 --access_key_id "S0kwLuB4JofVEIAxWTqf" --secret_access_key "X24O7t3hccmqUZqvqvmLN8464E2Nbr0DWOu9Qs5A"

恢复备份

语法结构

  • 恢复指定 ID 的备份
mo_br restore ID
    //读取指定ID的备份数据。如果备份在s3(oss minio)上时,需要指定
    --backup_access_key_id
    --backup_secret_access_key 

    //恢复的目标路径 restore_directory
    --restore_dir s3|filesystem 
        //s3 
            --restore_endpoint 
            --restore_access_key_id 
            --restore_secret_access_key 
            --restore_bucket 
            --restore_filepath 
            --restore_region 
            --restore_compression 
            --restore_role_arn 
            --restore_is_minio
        //filesystem
            --restore_path 
            --dn_config_path 
    --meta_path 
    --checksum
    --parallelism 

参数说明

参数 说明
ID 要恢复的 ID
backup_access_key_id 备份在 s3 的 Access key ID
backup_secret_access_key 备份在 s3 的 Secret access key
restore_dir 恢复的目标路径类型。指定恢复的目标路径时使用。s3
restore_endpoint 连接到恢复到 S3 服务的 URL
restore_access_key_id 恢复到 s3 的 Access key ID
restore_secret_access_key 恢复到 s3 的 Secret access key
restore_bucket 恢复到 s3 需要访问的桶
restore_filepath 恢复到 s3 的相对文件路径
restore_region 恢复到 s3 的对象存储服务区域
restore_compression 恢复到 s3 的 S3 文件的压缩格式。
restore_role_arn 恢复到 s3 的角色的资源名称。
restore_is_minio 指定恢复到的 s3 是否是 minio
restore_path 恢复到本地的路径
dn_config_path dn 配置路径
meta_path 指定 meta 文件位置。只能是文件系统中的路径。如果不指定,默认是同一目录下的 mo_br.meta 文件。
checksum 恢复的时候 tae 文件复制的并行度,默认是 1
parallelism 并行度
  • 不指定恢复备份 ID
//恢复。
mo_br restore
    --backup_dir s3|filesystem 备份的目标路径类型。指定备份的目标路径时使用。
        //s3 
            --backup_endpoint 
            --backup_access_key_id 
            --backup_secret_access_key
            --backup_bucket
            --backup_filepath
            --backup_region 
            --backup_compression 
            --backup_role_arn 
            --backup_is_minio
        //filesystem
            --backup_path 
    //恢复的目标路径 restore_directory
    --restore_dir s3|filesystem 恢复的目标路径类型。指定恢复的目标路径时使用。
        //s3 
            --restore_endpoint 
            --restore_access_key_id 
            --restore_secret_access_key 
            --restore_bucket 
            --restore_filepath
            --restore_region 
            --restore_compression 
            --restore_role_arn 
            --restore_is_minio
        //filesystem
            --restore_path 
            --dn_config_path 
    --meta_path 
    --checksum
    --parallelism

参数说明

参数 说明
backup_dir 恢复的目标路径类型。指定恢复的目标路径时使用。s3
backup_endpoint 连接到备份在 s3 的的 URL
backup_access_key_id 备份在 s3 的 Access key ID
backup_secret_access_key 备份在 s3 的 Secret access key
backup_bucket 备份在 s3 的桶
backup_filepath 备份在 s3 的相对文件路径
backup_region 备份在 s3 的服务区域
backup_compression 备份在 s3 的文件的压缩格式。
backup_role_arn 备份在 s3 的角色的资源名称。
backup_is_minio 指定备份的 s3 是否是 minio
backup_path 本地备份的路径
restore_dir 恢复的目标路径类型。指定恢复的目标路径时使用。s3 或 filesystem
restore_endpoint 连接到恢复到 S3 服务的 URL
restore_access_key_id 恢复到 s3 的 Access key ID
restore_secret_access_key 恢复到 s3 的 Secret access key
restore_bucket 恢复到 s3 需要访问的桶
restore_filepath 恢复到 s3 的相对文件路径
restore_region 恢复到 s3 的对象存储服务区域
restore_compression 恢复到 s3 的 S3 文件的压缩格式。
restore_role_arn 恢复到 s3 的角色的资源名称。
restore_is_minio 指定恢复到的 s3 是否是 minio
restore_path 恢复到本地 matrixone 的路径
dn_config_path dn 配置路径
meta_path 指定 meta 文件位置。只能是文件系统中的路径。如果不指定,默认是同一目录下的 mo_br.meta 文件。
checksum 恢复的时候 tae 文件复制的并行度,默认是 1
parallelism 并行度

示例

从文件系统恢复到文件系统

步骤一:停止 mo,删除 mo-data

步骤二:执行以下恢复命令

./mo_br restore fb26fd88-41bc-11ee-93f8-acde48001122 --restore_dir filesystem --restore_path "your_mopath"

恢复后会在 matrixone 生成新的 mo-data 文件

步骤三:启动 mo

校验备份的校验码

读取备份文件夹中的每个文件及其 sha256 文件。计算文件的 sha256 值并与 sha256 文件值对比。sha256 文件是在文件创建或更新时,创建的。

语法结构

  • 校验某个 ID 的备份
mo_br check ID
    //校验指定ID的备份数据。如果备份在s3(oss minio)上时,需要指定
      --backup_access_key_id string
      --backup_secret_access_key string
    --meta_path string 指定meta文件位置。如果不指定,默认是同一目录下的mo_br.meta文件。

参数说明

参数 说明
backup_access_key_id 备份在 s3 的 Access key ID
backup_secret_access_key 备份在 s3 的 Secret access key
meta_path 指定 meta 文件位置。只能是文件系统中的路径。如果不指定,默认是同一目录下的 mo_br.meta 文件。
  • 校验备份,指定备份的 path
mo_br check
    --backup_dir s3|filesystem 
        //s3 
            --backup_endpoint
            --backup_access_key_id
            --backup_secret_access_key 
            --backup_bucket
            --backup_filepath 
            --backup_region 
            --backup_compression
            --backup_role_arn 
            --backup_is_minio
        //filesystem
            --backup_path
    --meta_path 

参数说明

参数 说明
backup_dir 备份所在的路径类型,在没有指定 ID 时,必须要指定。s3 或 filesystem
backup_endpoint 连接到备份在 s3 的的 URL
backup_access_key_id 备份在 s3 的 Access key ID
backup_secret_access_key 备份在 s3 的 Secret access key
backup_bucket 备份在 s3 的桶
backup_filepath 备份在 s3 的相对文件路径
backup_region 备份在 s3 的服务区域
backup_compression 备份在 s3 的文件的压缩格式。
backup_role_arn 备份在 s3 的角色的资源名称。
backup_is_minio 指定备份的 s3 是否是 minio
backup_path 本地备份的路径
meta_path 指定 meta 文件位置。只能是文件系统中的路径。如果不指定,默认是同一目录下的 mo_br.meta 文件。

示例

  • 校验某个 ID 的备份
./mo_br check  1614f462-126c-11ef-9af3-26dd28356ef3
+--------------------------------------+--------+-----------------------------------+---------------------------+---------------+---------------------------+
|                  ID                  |  SIZE  |               PATH                |          AT TIME          |   DURATION    |       COMPLETE TIME       |
+--------------------------------------+--------+-----------------------------------+---------------------------+---------------+---------------------------+
| 1614f462-126c-11ef-9af3-26dd28356ef3 | 126 MB |   BackupDir: filesystem  Path:    | 2024-05-15 11:34:28 +0800 | 22.455633916s | 2024-05-15 11:34:50 +0800 |
|                                      |        | /Users/admin/soft/incbackup/back2 |                           |               |                           |
+--------------------------------------+--------+-----------------------------------+---------------------------+---------------+---------------------------+

Checking the backup data...

check: /backup_meta
check: /mo_meta
check: hakeeper/hk_data
check: tae/tae_list
check: tae/tae_sum
check: config/launch.toml_018f7a50-d300-7017-8580-150edf08733e
...
  • 校验某个备份目录中的备份
(base) admin@admindeMacBook-Pro mo-backup % ./mo_br check --backup_dir filesystem --backup_path /Users/admin/soft/incbackup/back2
2024/05/15 11:40:30.011160 +0800 INFO malloc/malloc.go:42 malloc {"max buffer size": 1073741824, "num shards": 16, "classes": 23, "min class size": 128, "max class size": 1048576, "buffer objects per class": 23}
check: /backup_meta
check: /mo_meta
check: hakeeper/hk_data
check: tae/tae_list
check: tae/tae_sum
check: config/launch.toml_018f7a50-d300-7017-8580-150edf08733e
check: config/log.toml_018f7a50-d30c-7ed0-85bc-191e9f1eb753
...

快照备份

创建快照

语法结构

mo_br snapshot create
    --host
    --port 
    --user
    --password 
    --level 
    --account 
    --sname 

参数说明

参数 说明
host 目标 MatrixOne 的 IP
port 端口号
user 用户
password 用户的密码
level 快照备份的范围,暂只支持 account
account 快照备份的租户对象名
sname 快照名称

示例

  • 为系统租户 sys 创建快照:
./mo_br snapshot create --host "127.0.0.1" --port 6001 --user "dump" --password "111" --level "account" --sname "snapshot_01" --account "sys"
  • 系统租户为普通租户 acc1 创建快照:
 ./mo_br snapshot create --host "127.0.0.1" --port 6001 --user "dump" --password "111" --level "account" --sname "snapshot_02" --account "acc1" 
  • 普通租户创建快照:

    • 创建普通租户 acc1
    create account acc1 admin_name admin IDENTIFIED BY '111';
    
    • acc1 创建快照
    ./mo_br snapshot create  --host "127.0.0.1" --port 6001 --user "acc1#admin" --password "111" --level "account" --account "acc1" --sname "snapshot_03"
    

查看快照

语法结构

mo_br snapshot show
    --host
    --port 
    --user 
    --password 
    --account 
    --db 
    --table 
    --sname 
    --beginTs 
    --endTs

参数说明

参数 说明
host 目标 MatrixOne 的 IP
port 端口号
user 用户
password 用户的密码
account 要筛选的租户名,仅限 sys 管理员使用
db 要筛选的数据库名
table 要筛选的表名
sname 要筛选的快照名称
beginTs 要筛选的快照时间戳的开始时间
endTs 要筛选的快照时间戳的结束时间

示例

  • 查看系统租户下创建的快照:
./mo_br snapshot show --host "127.0.0.1" --port 6001 --user "dump" --password "111"
SNAPSHOT NAME           TIMESTAMP           SNAPSHOT LEVEL  ACCOUNT NAME    DATABASE NAME   TABLE NAME 
snapshot_02     2024-05-11 02:29:23.07401   account         acc1                                        
snapshot_01     2024-05-11 02:26:03.462462  account         sys  
  • 查看 acc1 下创建的快照:
./mo_br snapshot show --host "127.0.0.1" --port 6001 --user "acc1#admin" --password "111"
SNAPSHOT NAME           TIMESTAMP           SNAPSHOT LEVEL  ACCOUNT NAME    DATABASE NAME   TABLE NAME 
snapshot_03     2024-05-11 02:29:31.572512  account         acc1     
  • 查看系统租户下为租户 acc1 创建的快照,并对开始时间进行筛选:
./mo_br snapshot show --host "127.0.0.1" --port 6001 --user "dump" --password "111" --account "acc1" --beginTs "2024-05-11 00:00:00"     
SNAPSHOT NAME           TIMESTAMP           SNAPSHOT LEVEL  ACCOUNT NAME    DATABASE NAME   TABLE NAME 
snapshot_02     2024-05-11 02:29:23.07401   account         acc1 

删除快照

语法结构

mo_br snapshot drop
    --host
    --port 
    --user 
    --password 
    --sname 

参数说明

参数 说明
host 目标 MatrixOne 的 IP
port 端口号
user 用户
password 用户的密码
sname 要筛选的快照名称

示例

  • 删除系统租户创建的快照:
./mo_br snapshot drop --host "127.0.0.1" --port 6001 --user "dump" --password "111" --sname "snapshot_01"
  • 删除普通租户创建的快照:
./mo_br snapshot drop --host "127.0.0.1" --port 6001 --user "acc1#admin" --password "111" --sname "snapshot_03" 

恢复快照

语法结构

mo_br snapshot restore
    --host 
    --port 
    --user 
    --password 
    --sname 
    --account 
    --db 
    --table 
    --newaccount 
    --newaccountadmin 
    --newaccountpwd 

参数说明

参数 说明
host 目标 MatrixOne 的 IP
port 端口号
user 用户
password 用户的密码
sname 要恢复的快照名称
account 要恢复的租户名,仅限 sys 管理员使用
db 要恢复的数据库名
table 要恢复的表名
newaccount 新创建的租户名
newaccountadmin 租户管理员
newaccountpwd 租户管理员密码

NOTE: 只有系统租户才可以执行恢复数据到新租户,且只允许租户级别的恢复。

示例

  • 表级别恢复到本租户
./mo_br snapshot restore --host "127.0.0.1" --port 6001 --user "dump" --password "111" --account "sys" --db "snapshot_read" --table "test_snapshot_read" --sname "sp_01"
  • 数据库级别恢复到本租户
./mo_br snapshot restore --host "127.0.0.1" --port 6001 --user "dump" --password "111" --account "sys" --db "snapshot_read" --sname "sp_02"
  • 租户级别恢复到本租户
./mo_br snapshot restore --host "127.0.0.1" --port 6001 --user "dump" --password "111" --account "sys" --sname "sp_03"
  • 租户级别恢复到新租户
./mo_br snapshot restore --host "127.0.0.1" --port 6001 --user "dump" --password "111" --account "sys" --sname "sp_03" --new_account "acc2" --new_admin_name "admin" --new_admin_password "111";