首批通过分布式安全可靠测评,为关键业务系统打造
日志归档的准备工作
更新时间:2025-03-25 14:27:26
本节主要介绍日志归档前的准备工作。
(可选)配置归档并发度
开启归档模式前,您可以通过配置日志归档的并发度来提高租户的日志归档速度。
sys租户或用户租户的租户管理员登录到数据库。选择合适的语句,设置配置项
log_archive_concurrency。租户级配置项
log_archive_concurrency用于配置日志归档总的工作线程数量。该配置项为动态生效,不需要重启 OBServer 节点。该配置项的取值范围为 [0, 100],默认值为0,表示使用 OceanBase 数据库自适应的日志归档并行度。建议使用默认值。注意
对于小规模租户(CPU 小于或等于 4C 的租户),建议使用默认值,不要调整该配置项的值。
设置方法如下:
sys租户调整指定租户的日志归档并发度ALTER SYSTEM SET log_archive_concurrency = 10 TENANT = mysql_tenant;sys租户调整所有租户的日志归档并发度ALTER SYSTEM SET log_archive_concurrency = 10 TENANT = ALL;用户租户调整本租户的日志归档并发度
ALTER SYSTEM SET log_archive_concurrency = 10;
有关配置项
log_archive_concurrency的更多信息,请参见 log_archive_concurrency。
配置归档目的端
在开始日志归档任务前,您需要使用 ALTER SYSTEM 命令配置 LOG_ARCHIVE_DEST 参数。由于系统租户不包含用户数据,是集群管理用的租户,不支持备份恢复,故 sys 租户无需配置归档目的端。
配置归档目的端的操作主要是设置 LOCATION、BINDING 和 PIECE_SWITCH_INTERVAL 属性。
注意事项
配置归档目的端时,要求每个租户的归档路径需要配置为独立的空目录,不同租户不能配置相同的归档路径。
操作步骤
sys租户或用户租户的租户管理员登录到数据库。说明
MySQL 模式的管理员用户为
root用户,Oracle 模式的管理员用户为SYS用户。配置归档目的端。
目前,OceanBase 数据库支持 NFS、阿里云 OSS 作为归档目的端。
系统租户为指定租户配置归档目的端
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=archive_path [BINDING=archive_mode] [PIECE_SWITCH_INTERVAL=piece_switch_interval]' TENANT = tenant_name;用户租户配置本租户的归档目的端
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=archive_path [BINDING=archive_mode] [PIECE_SWITCH_INTERVAL=piece_switch_interval]';
注意
对于从 OceanBase 数据库 V4.0.x 版本升级到 V4.1.0 版本的场景,版本升级后需要更改归档路径。对于从 OceanBase 数据库 V4.1.x 版本升级到 V4.2.0 版本的场景,版本升级后不需要更改归档路径。此外,从 OceanBase 数据库 V4.1.x 版本升级到 V4.2.0 版本时,支持升级期间进行日志归档。
详细配置说明如下。
配置
LOCATION(必选)LOCATION属性用于指定归档目的端,目前 OceanBase 数据库支持的归档目的端介质为 NFS 和阿里云 OSS。阿里云 OSSNFS使用 OSS 作为归档目的端介质时,除了设置归档路径、
host、access_key和access_id,您还可以通过delete_mode参数来配置归档文件的清理模式。注意
使用 OSS 作为归档介质时,其
access_key参数中不能包含逗号等特殊符号。delete_mode参数当前支持delete和tagging两种归档文件的清理模式,如果不配置,则默认为delete清理模式。delete:表示清理模式为直接删除满足清理要求的归档文件。配置为该模式后,当您通过自动方式清理归档文件时,对于满足清理要求的归档文件,系统会直接将其删除。
注意
该模式为默认的清理模式,如果不配置
delete_mode参数,则默认使用delete清理模式。tagging:表示清理模式为对满足清理要求的归档文件设置Tag,归档文件将仍然保留。配置为该模式后,当您通过自动方式清理归档文件时,对于满足清理要求的归档文件,系统会给这些文件设置标签,标签的
key为"delete_mode",value为"tagging",以便后续您可以通过设置的标签在OSS上对这些文件的生命周期进行管理。
使用 OSS 作为归档介质时,系统租户为指定租户
mysql_tenant设置归档目的端,并配置tagging清理模式的示例如下:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=tagging' TENANT = mysql_tenant;使用 OSS 作为归档介质时,用户租户为本租户设置归档目的端,并配置
tagging清理模式的示例如下:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?host=***.aliyun-inc.com&access_id=******&access_key=******&delete_mode=tagging';示例中,
oss://表示使用 OSS 作为归档目的端介质类型,存储桶名oceanbase-test-bucket,在存储桶中的路径是/backup/archive,同时使用?来分隔路径的其他参数,host用于设置存储桶的主机地址,access_id和access_key用于设置OSS的访问密钥, 清理模式设置为tagging。设置
delete模式或tagging模式后,自动清理归档数据的相关操作请参见 自动清理归档的数据。注意
使用 NFS 作为归档目的端时,需要注意以下事项:
LOCATION的值不支持设置为带有问号(?)的字符串。LOCATION的值必须设置为绝对路径,保证 OBServer 服务器对LOCATION具有读写权限。- 必须保证所有 OBServer 服务器都挂载了同一个服务器的 NFS。同时,为保证归档顺利进行,务必使用本文档中建议的参数挂载 NFS。挂载 NFS 的具体操作,请参见 部署 NFS 客户端。
使用 NFS 作为归档介质时,系统租户为指定租户
mysql_tenant设置归档目的端的示例如下:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive' TENANT = mysql_tenant;使用 NFS 作为归档介质时,用户租户为本租户设置归档目的端的示例如下:
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive';示例中,
file://表示使用 NFS 作为归档目的端的介质类型,归档路径为/data/nfs/backup/archive。配置
BINDING属性(可选)BINDING属性用于设置归档和业务的优先模式。目前支持Optional模式和Mandatory模式。如果不配置,默认为Optional模式。Optional模式表示以用户业务优先。在该模式下,当归档(日志归档)速度跟不上日志生成的速度时,日志有可能来不及归档就被回收了,然后发生断流。Mandatory模式表示以归档优先。在该模式下如果归档跟不上用户数据的写入,可能会导致用户无法写入。
使用 NFS 作为归档介质时,系统租户为指定租户
mysql_tenant配置归档路径并设置BINDING属性的示例如下:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional' TENANT = mysql_tenant;使用 NFS 作为归档介质时,用户租户为本租户配置归档路径并设置
BINDING属性的示例如下:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional';配置
PIECE_SWITCH_INTERVAL属性 (可选)PIECE_SWITCH_INTERVAL属性用于配置piece的切换周期,取值范围为[1d, 7d]。如果不设置,默认为1d。使用 NFS 作为归档介质时,系统租户为指定租户
mysql_tenant配置归档路径并设置每隔一天切分一个日志piece的示例如下:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional PIECE_SWITCH_INTERVAL=1d' TENANT = mysql_tenant;使用 NFS 作为归档介质时,用户租户为本租户配置归档路径并设置每隔一天切分一个日志
piece的示例如下:obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional PIECE_SWITCH_INTERVAL=1d';
配置成功后,您可以通过视图查询详细的参数设置信息。
sys租户可以通过CDB_OB_ARCHIVE_DEST视图来查看参数设置信息;用户租户可通过DBA_OB_ARCHIVE_DEST视图来查看参数设置信息。查看参数设置的详细操作,请参见 查看归档参数。
配置后的注意事项及说明
参数 LOG_ARCHIVE_DEST 设置成功后,默认系统会在配置的目的端所在的目录下创建一个 format 文件,用于校验备份目的端的有效性信息,确保目的端内数据的完整性。故,在配置日志归档的目的端时,需要注意以下事项:
如果
format文件不存在,则要求配置的目的端所在的目录为空,配置项才能设置成功。否则,系统会报-9080的错误,提示 format 文件不存在。如果
format文件已存在,则要求format文件的内容检验通过,配置项才能设置成功。否则,系统会报-9081的错误,提示 format 文件不匹配, format 文件的内容校验主要是检查集群、租户与备份目的端类型等与当前操作的集群、租户及备份目的端类型是否匹配。在执行备份任务时,如果
format文件不存在或format文件校验不通过,任务会发起失败。
此外,归档目的端配置成功后,不支持增量配置。例如,假设 NFS 下归档路径 /data/nfs/backup/archive 配置的 BINDING 属性为 Mandatory ,PIECE_SWITCH_INTERVAL 属性为 1d。若需要更新 PIECE_SWITCH_INTERVAL 为 2d ,但保留 BINDING 属性的配置 Mandatory ,您仍然需要在命令中指定其他属性的值,否则未指定的属性将使用默认值。
您需要重新执行以下语句进行修改。
系统租户修改指定租户
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST = 'LOCATION=file:///data/nfs/backup/archive BINDING=Mandatory PIECE_SWITCH_INTERVAL=2d' TENANT = mysql_tenant;用户租户修改本租户
obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST = 'LOCATION=file:///data/nfs/backup/archive BINDING=Mandatory PIECE_SWITCH_INTERVAL=2d';