首页 > 数据库 > 国内数据库 > OceanBase NFS备份路径注册失败
Approximate reading time: 15 minutes
1. Cite article
2. [Oracle租户错误信息概述](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000881417)
3. [知识库](https://www.oceanbase.com/knowledge-base)
4. [MySQL租户错误信息概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000749638)
OceanBase 数据库 V3.1.x、V3.2.x、V3.3.x、V4.0.x、V4.1.x
因测试需求,需进行部署NFS服务进行OceanBase备份恢复,在进行备份路径注册发现如下情况:
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/oracle_pdb_archive BINDING=Optional PIECE_SWITCH_INTERVAL=2d';--因内入OBProxy集群管理,执行SQL失败时,可以第一时间执行如下如下语句,获取当前obclient连接的observerselect utl_inaddr.get_host_address from dual;

如上图可知,注册备份路径失败,且当前OBClient分配的处理OBServer IP为192.168.24.52,也就是节点二。
OceanBase Oracle租户黑屏注册日志归档目录失败,是因其所预注册的备份NFS目录权限异常,其拥有者并非为nobody用户而是root,导致客户端无法写入文件。
进入到OceanBase知识库进行文档搜索:

根据错误关键词,搜索 ORA-00600 相关文档概述信息:

有关 ORA-00600:
在 Oracle 数据库中,
ORA-00600 表示内部错误,是针对 Oracle 程序异常的 Catchall 内部错误消息。它表示进程遇到了低级或意外的错误。
在 OceanBase 数据库的 Oracle 租户中, 对于不兼容 Oracle 的错误,也会返回该错误码,格式为:
ORA-00600: internal error code, arguments: %d, %s
其中,
%d 为 OceanBase 数据库错误码,
%s 为 OceanBase 数据库错误信息。
报错信息如下:
ORA-00600: internal error code, arguments: -4009, IO error
基于此,我们查询Oracle模式的错误码并未有详细信息展示,因此获取arguments:4009 编号,查询MySQL模式【OceanBase 错误码:4009】错误码,反而会有详细一些的解释:

## ERROR 4009 (58030 ) : IO error- OceanBase 错误码:4009 - 错误原因:READ 或 WRITE 等 IO 相关的系统调用失败。 - 解决方式:请联系技术支持人员协助排查。
当前部署的OceanBase为 单机房3副本,因此需要检查每一个节点OBServer的数据库日志【虽然我们已经提前知道执行配置修改的数据库节点是节点二】。
进入各节点服务器的/home/admin/oceanbase/log目录


[2024-11-19 11:02:21.892325] WDIAG [SERVER] do_process (obmp_query.cpp:903) [21777][T1002_L0_G0][T1002][YB42C0A81834-00062639955E6ED4-0-0] [lt=25][errcode=-5001] query failed(ret=-5001, session={this:0x7fe785a6fe18, id:3221852338, deser:false, tenant:"OraclePDB", tenant_id:1002, effective_tenant:"OraclePDB", effective_tenant_id:1002, database:"SYS", user:"SYS", consistency_level:3, session_state:2, autocommit:false, tx:null}, sql=ORA-00600: internal error code, arguments: -4009, IO errorORA-00600: internal error code, arguments: -4009, IO error, retry_ctrl_.need_retry()=0)OBServer节点二是有相应告警,但未有其他有价值信息。

systemctl status nfs

systemctl status nfs

检查NFS的客户端服务端可知其状态正常,根据OceanBase错误码提示,进行以下共享目录文件创建测试:
touch test01.txt

创建文件发现,客户端root用户无法在NFS共享目录创建文件,显示权限异常。


经检查,目录拥有者为root用户,而不是nobody用户,导致客户端无法正常往目录写入。
cd /data/nfs_share/chown nobody:nobody -R backup

修改备份路径权限后,再次进行备份路径测试:
ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/oracle_pdb_archive BINDING=Optional PIECE_SWITCH_INTERVAL=2d';SELECT * from DBA_OB_ARCHIVE_DEST;

备份目录注册成功!
OceanBase目前的告警信息显示较为 委婉,不仅有租户之间的 错误码区别、不同节点执行的 日志记录区别,还有较为 复杂日志架构的区别【日志刷新写入频率极高】,与Oracle数据库告警日志获取ORA ERROR信息方式相比,还是较为 曲折。
本文故障案例虽然较为简单,但主要是想与大家分享一下如何去快速进行OceanBase告警信息的解读,提供一些可行的方法与路径。
来自 “ ”, 原文作者: ;原文链接:,如有侵权,请联系管理员删除。