【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】我有两台 ocenabase 机器,物理备库形式搭建。主库防火墙规则出问题了一会,没过一会恢复了。后面主备同步了一段时间,最后卡在了 11:41
【复现路径】断开主备 ocenabase 之间网络
【附件及日志】
oceanbase_bak.tar.gz (10.1 MB)
@论坛小助手 物理备库同步日志以及错误信息,应该在哪个文档看呢?
【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】我有两台 ocenabase 机器,物理备库形式搭建。主库防火墙规则出问题了一会,没过一会恢复了。后面主备同步了一段时间,最后卡在了 11:41
【复现路径】断开主备 ocenabase 之间网络
【附件及日志】
oceanbase_bak.tar.gz (10.1 MB)
@论坛小助手 物理备库同步日志以及错误信息,应该在哪个文档看呢?
根据您的描述,主备库之间存在同步延迟问题,可能是由于防火墙规则导致的。推荐使用 obdiag 工具进行日志采集,以便您查看相关日志和错误信息。
日志采集场景: 主备库延迟
日志采集命令: obdiag gather scene run --scene=observer.delay_of_primary_and_backup
请您执行上述命令采集日志,并将生成的日志压缩包提供给我们以便进一步分析。
另外,为了更好地帮助您解决问题,需要您提供以下信息:
附上敏捷诊断工具 obdiag 使用帮助链接
1、已经恢复正常,我重建了备租户
2、是连通的,因为恢复之后我看继续同步了一段时间才停止
3、通过 sql 查询,同步进度停留在了 11:41;查询 sql如下:
SELECT TENANT_NAME, TENANT_ID, TENANT_ROLE, SCN_TO_TIMESTAMP(SYNC_SCN) FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = ‘tenant’;
4、同步
另外我想问下,普通 ob 日志里面是否有主从同步相关日志呢?
根据您的问题和补充信息,以下是针对您提出的问题的解答:
普通 OB 日志中确实包含主从同步相关的日志信息。这些日志可以帮助您排查主备库同步过程中可能存在的问题。以下是具体说明:
日志路径:OceanBase 的日志文件通常位于数据目录下的 log
文件夹中。例如:
/home/admin/oceanbase/log/
其中,observer.log
是主要的日志文件,记录了数据库运行过程中的各种事件,包括主备同步相关信息。
日志关键字:在 observer.log
中,您可以搜索以下关键字来查看主备同步相关的日志:
sync standby
:与备库同步相关的日志。replay log
:与日志回放相关的日志。archive log
:与归档日志相关的日志。standby tenant
:与备租户相关的日志。日志级别:默认情况下,日志级别为 INFO
,如果您需要更详细的日志信息,可以将日志级别调整为 DEBUG
或 TRACE
。调整方法如下:
ALTER SYSTEM SET ob_log_level='DEBUG';
日志采集工具:为了更方便地收集和分析日志,建议使用 obdiag
工具。您可以执行以下命令采集日志:
obdiag gather log --start-time="2023-11-01 00:00:00" --end-time="2023-11-02 00:00:00"
这将采集指定时间段内的日志文件。
根据您提供的查询 SQL 和结果,备租户的同步进度停留在了 11:41。以下是可能的原因及解决方法:
RECOVER
命令:根据文档片段 4 的描述,如果未执行 RECOVER
命令或执行了 ALTER SYSTEM RECOVER xxx CANCEL
命令,备租户的日志同步会停留在某个固定时间点。检查日志恢复源:
重新执行 RECOVER
命令:
ALTER SYSTEM RECOVER STANDBY TENANT = standby_tenant UNTIL UNLIMITED;
ALTER SYSTEM RECOVER STANDBY UNTIL UNLIMITED;
检查主备库角色:
PRIMARY
,备库角色为 STANDBY
:SELECT TENANT_ID, TENANT_NAME, TENANT_ROLE, STATUS FROM oceanbase.DBA_OB_TENANTS;
查看日志同步进度:
SELECT * FROM oceanbase.DBA_OB_LS;
sync standby
、replay log
等关键字进行排查。RECOVER
命令,并确认主备库角色是否正确。obdiag
工具采集日志并提供更多信息以便进一步分析。希望以上信息对您有所帮助!如果还有其他问题,请随时提问。
更多信息请查看:
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
是重建完以后 恢复了同步 同步一段时间以后 同步卡住了是么?ob的版本号提供一下
信息查一下
select * from oceanbase.DBA_OB_TENANTS\G;
-在备租户查一下信息
select * from __all_virtual_tenant_info where tenant_id = 1002\G;
排查思路:
1.检查日志流恢复状态
2.网络
3.时钟同步情况
4.主库日志拉取情况
5.备库日志流 leader 状态
是的,4.2.4
目前已经重建了备租户,下次如果遇到。我查一下。这里的逻辑是什么呢?
如果发现主库日志流正常记录,备库日志流leader卡主不动。应该怎么继续排查呢?
你这个同步卡住 差不多可以按照这几步排查一下
select * from __all_virtual_tenant_info where tenant_id = 1002;
重点关注 “sync_status” 列,表示日志流恢复状态,正常为 NORMAL,其他状态表示恢复异常
select * from v$ob_ls_log_restore_status where tenant_id = 1002;
select * from cdb_ob_log_restore_source where tenant_id = 1002;
select *, scn_to_timestamp(end_scn) from gv$ob_log_stat where tenant_id = 1002 and role = ‘leader’ order by end_scn;
好的,observer 中主备同步日志有什么特点么?和上面说的一样吗
sync standby
:与备库同步相关的日志。replay log
:与日志回放相关的日志。archive log
:与归档日志相关的日志。standby tenant
:与备租户相关的日志。到时候可以直接提供过来 这样可以帮助分析看看什么问题
好的,谢谢