首批通过分布式安全可靠测评,为关键业务系统打造
如何复制备份数据到异地进行恢复
更新时间:2025-06-23 08:36
本文主要介绍如何备份数据在异地恢复。
生产和测试环境网络不通的情况下,生产集群的备份数据在生产网络的 OSS上,需要下载下来然后复制到测试环境。建议复制到测试环境的 OSS 或者 NFS 上,确保测试环境的备份恢复机器可以访问到这份数据。
有两种方法,您可以根据实际情况选择其一。
适用版本
OceanBase 数据库 V2.2.52 及以前使用逻辑备份的版本。
全量恢复
在生产集群上,复制全部的备份数据到移动硬盘或其他介质。然后放入到测试环境的 OSS 上或者 NFS 上。
注意
如果复制到 OSS 上,目录必须保证不影响测试集群的备份数据。目前,生产和测试都采用 obbackup bucket,但是集群名字有区别。可以在测试环境的 OSS 上保证如下格式:
OSS://obbackup/cluster_nameOSS://obbackup/another_cluster_name
仅恢复指定租户
如果仅需要恢复一个租户到特定时间点,可以在生产环境的 OSS 上,复制如下信息。
oss://obbackup/cluster_name/目录下的所有文件。oss://obbackup/cluster_name/目录的子目录中以tenant_id命名的目录。
其中,tenant_id 表示要恢复的租户 id,major_version 表示要恢复的时间点 OceanBase 数据库的合并版本。
su admin
cp -rp oss://obbackup/cluster_name/*list <目的端目录>
cp -rp oss://obbackup/cluster_name/<major_version>/<tenant_id> <目的端目录>
cp -rp oss://obbackup/cluster_name/base_data_<major_version>/<tenant_id> <目的端目录>
cp -rp oss://obbackup/cluster_name/inc_data/<tenant_id> <目的端目录>
cp -rp oss://obbackup/cluster_name/tenant_id/<tenant_id> <目的端目录>
结果存在三个文件和四个目录。
文件:
all_tenant_id_list dropped_tenant_id_list inc_all_tenant_id_list文件夹:
32 base_data_32 inc_data tenant_id
目录结构如下。
$tree -a
.
├── 32
│ └── 1007
│ ├── 1107208209191461
│ ├── 1107208209191463
│ ├── create_database_definition
│ ├── create_tenant_definition
│ ├── create_user_definition
│ ├── data_table_ids_list
│ ├── index_table_ids_list
│ ├── resource_pool_definition
│ ├── resource_unit_definition
│ ├── system_variable_definition
│ └── user_privilege_definition
├── all_tenant_id_list
├── base_data_32
│ └── 1007
│ ├── 1107208209220433
│ │ └── 0
│ │ └── 1107208209220433
│ │ └── 30_0
│ ├── 1107208209220434
│ │ └── 0
│ │ └── 1107208209220434
│ │ └── 31_0
├── dropped_tenant_id_list
├── inc_all_tenant_id_list
├── inc_data
│ └── 1007
│ └── 0
│ ├── 1
│ ├── 1.meta
│ └── checkpoint
└── tenant_id
└── 1007
└── backup_info