OceanBase v4.3.5 特性解读:通过OSS WORM特性进行备份归档

概述

OceanBase 最新发布的V4.3.5 中,备份归档服务已适配阿里云OSS的 WORM特性,支持将配置了合规保留策略的OSS Bucket作为备份存储的目的端,有效满足用户数据安全存储与合规性的需求。

阿里云对象存储(OSS)的 WORM(Write Once Read Many)特性,可让用户通过命令为Bucket设置保留策略,在策略规定的Object保留期内,仅支持对Object进行上传和读取。只有当Object保留期限到期后,才能进行修改或删除操作。

使用方式

OceanBase 4.3.5bp2及以上版本支持在设置OSS介质的备份/归档路径时指定enable_worm参数。enable_worm参数默认为false,当设置enable_worm参数为true后,observer对相应路径的写入及删除操作将适配OSS WORM的要求。

1. 注意事项

(1) 仅有OSS介质路径支持设置enable_worm

(2) 设置enable_worm=true时需要设置checksum_type为md5(备份归档路径默认为md5)

(3) enable_worm参数配置不支持变更

(4) 需要用户明确bucket worm策略被正确设置

2. 配置示例

不带enable_worm参数的备份归档路径设置示例

复制代码
alter system set log_archive_dest='location=oss://example_path/archive?host=cn-heyuan.aliyuncs.com&access_id=AAAAAAAA&acces_key=CCCCCC&checksum_type=md5' tenant=xxxx;
alter system set data_backup_dest='oss://example_path/data?host=cn-heyuan.aliyuncs.com&access_id=AAAAAAAA&acces_key=CCCCCC&checksum_type=md5' tenant=xxxx;

设置enable_worm参数的备份归档路径示例

复制代码
alter system set log_archive_dest='location=oss://example_path/archive?host=cn-heyuan.aliyuncs.com&access_id=AAAAAAAA&acces_key=CCCCC&checksum_type=md5&enable_worm=true' tenant=xxxx;
alter system set data_backup_dest='oss://example_path/data?host=cn-heyuan.aliyuncs.com&access_id=AAAAAAAA&acces_key=CCCCC&checksum_type=md5&enable_worm=true' tenant=xxxx;

设置成功后可以在视图CDB_OB_BACKUP_STORAGE_INFO、DBA_OB_BACKUP_STORAGE_INFO中extension字段中看到enable_worm参数配置信息

复制代码
//不带enable_worm参数的备份归档路径设置视图展示结果
MySQL [oceanbase]> select PATH,DEST_TYPE,EXTENSION from CDB_OB_BACKUP_STORAGE_INFO;
+----------------------------+-------------+-------------------+
| PATH                       | DEST_TYPE   | EXTENSION         | 
+----------------------------+-------------+-------------------+
| oss://example_path/archive | archive_log | checksum_type=md5 |
| oss://example_path/data    | backup_data | checksum_type=md5 |
+----------------------------+-------------+-------------------+

//带enable_worm参数的备份归档路径设置视图展示结果
MySQL [oceanbase]> select PATH,DEST_TYPE,EXTENSION from CDB_OB_BACKUP_STORAGE_INFO;
+----------------------------+-------------+----------------------------------------------------------+
| PATH                       | DEST_TYPE   | EXTENSION                                                | 
+----------------------------+-------------+----------------------------------------------------------+
| oss://example_path/archive | archive_log | checksum_type=md5&enable_worm=true                       |
| oss://example_path/data    | backup_data | checksum_type=md5&enable_worm=true                       |
+----------------------------+-------------+----------------------------------------------------------+

备份路径可以在视图CDB_OB_BACKUP_PARAMETER/DBA_OB_BACKUP_PARAMETER中value字段中看到enable_worm参数配置信息

复制代码
//不带enable_worm参数的备份路径设置视图展示结果
select * from CDB_OB_BACKUP_PARAMETER;
+-----------+------------------+-------------------------------------------------------------------------------------------------------------+
| TENANT_ID | NAME             | VALUE                                                                                                       |
+-----------+------------------+-------------------------------------------------------------------------------------------------------------+
|      1002 | data_backup_dest | oss://example_path/data?host=cn-heyuan.aliyuncs.com&access_id=AAAAAAAA&encrypt_key=CCCCCC&checksum_type=md5 |
+-----------+------------------+-------------------------------------------------------------------------------------------------------------+
//带enable_worm参数的备份路径设置视图展示结果
select * from CDB_OB_BACKUP_PARAMETER;
+-----------+------------------+------------------------------------------------------------------------------------------------------------------------------+
| TENANT_ID | NAME             | VALUE                                                                                                                        |
+-----------+------------------+------------------------------------------------------------------------------------------------------------------------------+
|      1002 | data_backup_dest | oss://example_path/data?host=cn-heyuan.aliyuncs.com&access_id=AAAAAAAA&encrypt_key=CCCCCC&checksum_type=md5&enable_worm=true |
+-----------+------------------+------------------------------------------------------------------------------------------------------------------------------+

归档路径可以在CDB_OB_ARCHIVE_DEST/DBA_OB_ARCHIVE_DEST中看到enable_worm参数配置信息

复制代码
//不带enable_worm参数的归档路径设置视图展示结果
select * from CDB_OB_ARCHIVE_DEST;
+-----------+---------+-----------------------+---------------------------------------------------------------------------------------------------------------+
| TENANT_ID | DEST_NO | NAME                  | VALUE                                                                                                         |
+-----------+---------+-----------------------+---------------------------------------------------------------------------------------------------------------+
|      1002 |       0 | binding               | OPTIONAL                                                                                                      |
|      1002 |       0 | dest_id               | 1002                                                                                                          |
|      1002 |       0 | path                  | oss://example_path/archive?host=cn-heyuan.aliyuncs.com&access_id=AAAAAAAA&encrypt_key=BBBBBB&checksum_type=md5|
|      1002 |       0 | piece_switch_interval | 1d                                                                                                            |
|      1002 |       0 | state                 | ENABLE                                                                                                        |
+-----------+---------+-----------------------+---------------------------------------------------------------------------------------------------------------+
//带enable_worm参数的归档路径设置视图展示结果
select * from CDB_OB_ARCHIVE_DEST;
+-----------+---------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------+
| TENANT_ID | DEST_NO | NAME                  | VALUE                                                                                                                          |
+-----------+---------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------+
|      1002 |       0 | binding               | OPTIONAL                                                                                                                       |
|      1002 |       0 | dest_id               | 1002                                                                                                                           |
|      1002 |       0 | path                  | oss://example_path/archive?host=cn-heyuan.aliyuncs.com&access_id=AAAAAAAA&encrypt_key=BBBBBB&checksum_type=md5&enable_worm=true|
|      1002 |       0 | piece_switch_interval | 1d                                                                                                                             |
|      1002 |       0 | state                 | ENABLE                                                                                                                         |
+-----------+---------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------+
使用场景说明

使用场景说明

1. 设置路径时未设置enable_worm=true

在将有保留策略的OSS路径设置为备份归档路径时,如果不配置enable_worm=true,该设置语法将报错Incorrect arguments并提示需要设置enable_worm=true。

如果在设置备份归档路径成功后,相应的OSS bucket添加WORM策略:

  • 在备份任务执行过程中可能因为修改或者删除文件失败导致任务失败,在备份相关视图(如CDB_OB_BACKUP_DELETE_JOB_HISTORY)中报错-9140(the object is locked by worm)。
  • 归档可能会因为追加写失败进入interrupt状态,需要看相关归档报错日志是否报-9140(the object is locked by worm)。

在发现备份归档任务因为worm失败后,需要设置新备份/归档路径,并且配置参数enable_worm=true。

2. 设置路径时设置了enable_worm=true

设置enable_worm=true后,observer会适配worm的逻辑执行写操作,避免因为无法修改保留期内的object而导致备份归档任务失败。

因为observer不具有感知oss上worm策略详情的能力,所以备份清理策略仍然按照旧有逻辑执行(官网介绍链接:自动清理过期备份)。备份清理将依据recovery_window选择需要清理的备份集,进而执行清理操作。建议recovery_window值取保留时长需求及恢复需求时长的最大值,如保留期为90天,需要保证可恢复的时长是10天,那么设置recovery_window为90d。

复制代码
obclient> ALTER SYSTEM ADD DELETE BACKUP POLICY 'default' RECOVERY_WINDOW '90d';

如果备份集在recovery_window之外,但仍在worm保留期内,且清理模式为deleting,那么observer在清理该备份集将失败,在备份相关视图(清理备份相关视图介绍)中将相应失败任务上展示worm相关错误码-9140(the object is locked by worm)。对于tagging模式,observer为备份集打上tag后,oss bucket会在object保留期外且生命周期结束后删除相关object。

worm设置说明

oss worm具体设置方法可以参考oss官方说明使用命令行工具ossutil设置合规保留策略确保指定时间内不能修改和删除OSS数据_对象存储(OSS)-阿里云帮助中心

用户在配置完合规保留策略后查询已创建的合规保留策略是否符合预期。

  • 命令格式

    ossutil worm get oss://BucketName

  • 使用示例

查询examplebucket的合规保留策略。

复制代码
ossutil worm get oss://examplebucket

以下输出结果表明已查询到合规保留策略的配置参数,结果中包含策略ID、状态、保留天数、策略创建时间。

复制代码
<WormConfiguration>
      <WormId>581D8A7FFA064C80827CAB4076A93A78</WormId>
      <State>Locked</State>
      <RetentionPeriodInDays>360</RetentionPeriodInDays>
      <CreationDate>2021-01-19T03:36:53.000Z</CreationDate>
</WormConfiguration>

需要注意检查查询到的合规保留策略的state需要是Locked状态,并且RetentionPeriodInDays(合规保留时长)符合预期。

相关推荐
OceanBase数据库官方博客19 小时前
常用的OceanBase调优配置参数
oceanbase·分布式数据库·参数
smart199813 天前
制造企业搭建AI智能生产线怎么部署?
ai·制造·存储
OceanBase数据库官方博客17 天前
蚂蚁集团 CTO 何征宇:AGI时代,海量数据带来的质变|OceanBase 开发者大会实录
人工智能·oceanbase·分布式数据库·开发者大会
数据最前线19 天前
OceanBase 开发者大会,拥抱 Data*AI 战略,构建 AI 数据底座
人工智能·oceanbase
半岛铁盒BKB21 天前
3par persona设置错误,linux I/O持续报错
linux·存储·3par
wniuniu_21 天前
socc 19 echash论文部分解读
存储
久绊A21 天前
OceanBase 共享存储:云原生数据库的存储
数据库·云原生·oceanbase
OceanBase数据库官方博客24 天前
如何分析动态采样引起的计划不稳定 | OceanBase SQL 调优实践
sql·oceanbase·分布式数据库
OceanBase数据库官方博客24 天前
OceanBase 开发者大会:详解 Data × AI 战略,数据库一体化架构再升级
ai·oceanbase·分布式数据库·开发者大会