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(合规保留时长)符合预期。

相关推荐
唐宋元明清218813 小时前
.NET 磁盘管理-技术方案选型
windows·c#·存储
赵渝强老师21 小时前
【赵渝强老师】OceanBase的配置文件与配置项
数据库·oceanbase
少年攻城狮21 小时前
DBeaver系列---【如何使用dbeaver连接oceanbase?并且显示字段注释】
oceanbase
玖日大大21 小时前
OceanBase SeekDB:AI 原生数据库的技术革命与实践指南
数据库·人工智能·oceanbase
feng_blog66887 天前
oceanbase安装
oceanbase
GottdesKrieges9 天前
OceanBase数据库全链路追踪
数据库·oceanbase
码农老起13 天前
OceanBase性能调优分享:混合工作负载下的脚本自动化调优与深度分析
运维·自动化·oceanbase
查尔斯-BUG万象集16 天前
解决 OceanBase CE 启动失败:OBD-2002: Failed to start 0.0.0.0 observer
docker·k8s·oceanbase
IndulgeCui18 天前
SeekDB 向量检索实践全记录:从理论到 OceanBase Seekdb 落地的探索之旅
oceanbase
AthlonxpX8618 天前
关于OceanBase tpmC场景与异数OS 元宇宙OLTP场景的异同答疑。
操作系统·oceanbase·架构师·元宇宙·tps·oltp·数据库引擎