租户克隆咨询

【 使用环境 】测试环境
【 OB or 其他组件 】社区版4.3.5.1
【 使用版本 】
【问题描述】源租户开启归档,执行克隆报错ERROR 4179 (HY000): log archive is not ready, create tenant snapshot not allowed
查看租户是归档模式,但是CDB_OB_ARCHIVELOG没有任何记录
手动执行了一次转储 好像也不行
归档目录有生成校验文件 创建的时候也没有报错 请老师帮忙给看看

image

image

observer.log (6.9 MB)

4 个赞

根因分析场景: 日志归档问题
根因分析命令: obdiag rca run --scene=log_archive

日志采集场景: 日志归档问题
日志采集命令: obdiag gather scene run --scene=observer.log_archive

推荐使用 obdiag 工具进行根因分析和日志采集,以便确认问题所在。上述命令将帮助您收集与日志归档相关的诊断信息,并分析可能的根因。

请您执行上述命令后,将生成的日志压缩包提供给我们,以便进一步确认问题。

另外,为了更好地了解问题的具体情况,请您提供以下信息:

  1. 源租户开启归档时的具体配置参数是什么?例如归档路径、归档模式等。
  2. 手动转储操作的具体步骤是什么?是否在转储过程中遇到任何异常或警告信息?
  3. 归档目录生成校验文件的具体过程是怎样的?是否有相关日志记录可以提供?
  4. 报错发生的时间点前后,系统是否有其他异常行为或告警信息?
  5. 是否尝试过重启 observer 进程?如果尝试过,重启后问题是否仍然存在?

附上敏捷诊断工具 obdiag 使用帮助链接

4 个赞

执行alter system archivelog报错吗

3 个赞

小助手真及时

3 个赞

老师 不报错

1 个赞

归档路径设置了吗

1 个赞


老师 有设置

1 个赞

根据您提供的信息,源租户已经开启了归档功能,并且设置了归档路径为 file:///nfs_data/ob/archive。然而,在执行克隆操作时仍然报错 ERROR 4179 (HY000): log archive is not ready, create tenant snapshot not allowed,并且 CDB_OB_ARCHIVELOG 表中没有任何记录。

问题分析

  1. 归档日志未生成
    根据您的描述,CDB_OB_ARCHIVELOG 表为空,说明归档日志尚未生成。这可能是由于以下原因之一:

    • 归档路径不可写或权限不足。
    • 源租户尚未产生足够的数据变更以触发归档日志的生成。
    • 系统配置或状态异常导致归档功能未能正常工作。
  2. 手动转储未生效
    您提到手动执行了一次转储 (ALTER SYSTEM MINOR FREEZE TENANT = t1;),但仍未生成归档日志。这可能表明转储操作并未触发归档日志的生成,或者归档路径存在问题。

  3. 克隆操作依赖归档日志
    OceanBase 的租户克隆操作需要确保归档日志已准备好(即归档日志已生成并可用)。如果归档日志未准备好,则克隆操作会失败。


解决方案

1. 验证归档路径

请确认归档路径 file:///nfs_data/ob/archive 是否可写,并检查是否有足够的磁盘空间。您可以使用以下命令验证:

SHOW PARAMETERS LIKE 'archive%';

确保 archive_dest 参数正确指向了归档路径,并且路径存在且可写。

2. 检查归档状态

运行以下命令检查归档状态:

SELECT * FROM CDB_OB_ARCHIVE_STATUS;

如果归档状态显示为 INACTIVE 或其他非正常状态,请尝试重新启用归档功能:

ALTER SYSTEM SET ENABLE_ARCHIVE = TRUE;

3. 强制生成归档日志

为了确保归档日志已生成,您可以尝试以下步骤:

  • 在源租户中插入一些数据以产生数据变更:
    INSERT INTO test_table VALUES (1, 'test');
    
  • 执行手动转储:
    ALTER SYSTEM MINOR FREEZE TENANT = t1;
    
  • 检查 CDB_OB_ARCHIVELOG 表是否已生成记录:
    SELECT * FROM CDB_OB_ARCHIVELOG;
    

4. 检查系统日志

如果上述步骤仍无法解决问题,请检查 observer 日志,查找与归档相关的错误信息。重点关注以下关键词:

  • archive
  • minor freeze
  • log archive

5. 使用 obdiag 工具诊断

推荐使用 obdiag 工具进行根因分析和日志采集:

obdiag rca run --scene=log_archive
obdiag gather scene run --scene=observer.log_archive

将生成的日志压缩包提供给我们,以便进一步分析。


注意事项

  1. 确保归档路径正确
    如果归档路径配置错误或不可写,归档日志将无法生成。请确保路径存在且具有正确的权限。

  2. 等待足够时间
    归档日志的生成可能需要一定时间,尤其是在数据变更较少的情况下。建议在插入数据后等待几分钟再检查。

  3. 重启 observer
    如果问题仍未解决,可以尝试重启 observer 进程,然后重新执行上述步骤。


如果您按照上述步骤操作后问题仍未解决,请提供更多日志信息或联系 OceanBase 技术支持团队以获取进一步帮助。

详情请参考:

  1. 并行 DML
  2. 使用 ob-operator 进行运维

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

3 个赞

1.路径已验证可写入,磁盘空间足够
2.CDB_OB_ARCHIVE_STATUS视图不存在
3.已尝试写入数据并转储,仍没生成归档
4.系统日志我已经上传了,在附件里边
5. 执行obd obdiag rca run ob --scene=log_archive 报错如下
Get local repositories and plugins ok
The tool oceanbase-diagnostic-tool is already installed the latest version 2.6.0
Open ssh connection ok
[ERROR] rca run Exception: rca_scene :log_archive is not exist

执行obd obdiag gather scene run ob --scene=observer.log_archive 报错如下 找不到文件
Gather Ob Log Summary:
±---------------±---------------------±-------±-------±-----------+
| Node | Status | Size | Time | PackPath |
+================+======================+========+========+============+
| 172.16.135.166 | Error:No files found | 0.000B | 3 s |

按照下面的步骤 可以先排查一下
开启归档流程

  1. 用户执行 alter system archivelog 后,由 RS 添加一行记录到该表,并且设置初始 statusPREPARE
    CDB_OB_LS_LOG_ARCHIVE_PROGRESS
  2. RS 在做初步检查等操作成功后,会将状态推到 BEGINNING
    CDB_OB_LS_LOG_ARCHIVE_PROGRESS
  3. OBServer 通过监控该表状态为 BEGINNINGDOING 感知到需要开启归档,会持续为日志流归档日志,并将日志流归档进度更新到另外一张日志流级别视图 CDB_OB_LS_LOG_ARCHIVE_PROGRESS,并标示状态为 DOING
  4. RS 检测日志流状态表 CDB_OB_LS 以及 CDB_OB_LS_LOG_ARCHIVE_PROGRESS 表,当所有日志流归档状态都是 DOING,则 RS 将该表状态推到 DOING
  5. RS 检测到 CDB_OB_LS_LOG_ARCHIVE_PROGRESS 中日志流归档状态为 INTERRUPT,会将租户级归档视图 CDB_OB_ARCHIVELOG 状态置为 INTERRUPT