archive stop超过1小时,如何排查

【 使用环境 】生产环境
【 使用版本 】4.2.0_CE
【问题描述】

目的:开启日志归档和数据备份,使用backup快照的方式恢复备租户

  1. 开启日志归档
  2. 取消归档
  3. 一直卡在stopping(已一个小时),怎么修改命令操作都不起作用

【问题】

  1. 如何删除清空已设置过的日志归档,从而重新进行设置?(或强制删除)
  2. 如何排查?

确认一下租户的归档情况

select * from cdb_ob_archivelog where tenant_id=xxx \G

确认一下租户日志流的归档情况,piece_id 使用上一个sql中的 USED_PIECE_ID

select * from __all_virtual_ls_log_archive_progress where tenant_id = xxx and piece_id = yyy;

  1. 这个哪里查看?:sql中的 USED_PIECE_ID
  2. 归档仍是stopping
    image

就是上面发的第一个sql中的字段,可以看看。


数据是空
ps:

  1. 这数据是记录在缓存中,还是磁盘中?
  2. 设置的归档目的本地文件夹已经被删掉,是否有影响?
  3. 异常清空下,如何强制清空删除归档,重新设置?

1、具体删除了哪些目录结构呢

2、在 rs leader节点上 select svr_ip from dba_ob_servers where with_rootserver=‘yes’;
grep “ob_log_archive_scheduler” rootservice.log

  1. 如设置的归档路径为/tmp/aaa,手动将/tmp/aaa文件夹给删除
  2. 查询结果:

grep “ob_log_archive_scheduler” rootservice.log 查询结果为空( rootservice.log日志有存在)

在33.207主机上再搜一下
grep “ob_archive_scheduler_service” rootservice.log
grep “ob_tenant_archive_round” rootservice.log

可搜到相关日志,已转发

没看到日志呢

发一下rs节点上一个完整的 rootservice.log日志附件看看
[2023-11-24 15:34:56.808460] WDIAG [SHARE] disable_archive (ob_tenant_archive_round.cpp:260) [8742][T1005_ArchiveSv][T1005][YB42C0A821CF-00060AD2ACCAE0CC-0-0] [lt=11][errcode=-4007] cannot stop log archive(ret=-4007, round={key:{tenant_id:1006, dest_no:0}, incarnation:1, dest_id:1023, round_id:1, state:{status:“STOPPING”}, start_scn:{val:1700788396084931855, v:0}, checkpoint_scn:{val:1700788396084931855, v:0}, max_scn:{val:1700788396084931855, v:0}, compatible:{version:1}, base_piece_id:1, used_piece_id:1, piece_switch_interval:86400000000, frozen_input_bytes:0, frozen_output_bytes:0, active_input_bytes:0, active_output_bytes:0, deleted_input_bytes:0, deleted_output_bytes:0, path:“file:///ysdisk/cache/ob/archive”, comment:""})