根据您描述的情况,OceanBase 数据库上午访问正常,未修改任何配置,但突然不可访问。这种问题可能由多种原因引起,例如网络连接问题、白名单设置异常、账号密码错误或数据库实例本身的异常事件等。以下是详细的排查和解决步骤:
1. 检查网络连接
首先确认是否能够正常连接到 OceanBase 数据库的公网或私网地址。
操作步骤:
- 登录 OceanBase 管理控制台。
- 在 集群列表 页面,选择目标集群,单击集群名称进入 集群工作台。
- 在左侧导航栏中单击 租户管理,进入 租户列表 页面。
- 单击目标租户名称,进入 租户工作台。
- 在 部署关系图 部分,查看您的私网地址和公网地址。
注意事项:
- 如果使用公网连接,请确保已申请公网地址。
- 如果使用内网连接,请确认 ECS 实例的内网地址是否正确。
2. 检查白名单设置
白名单设置可能会限制访问权限,导致无法连接数据库。
操作步骤:
- 登录 OceanBase 管理控制台。
- 在 集群列表 页面,选择目标集群,单击集群名称进入 集群工作台。
- 在左侧导航栏单击 安全设置。
- 在 白名单分组 中,检查是否添加了测试连接本地的白名单 IP/IP 段。
注意事项:
- 内网访问:白名单地址段应设置为 ECS 实例的内网地址。
- 外网访问:确认白名单中添加的设备公网 IP 地址为设备的真实出口 IP 地址。
- 如果白名单设置不正确,请及时修改并保存。
3. 检查账号密码
账号密码错误也可能导致无法访问数据库。
操作步骤:
- 登录 OceanBase 管理控制台。
- 在左侧导航栏中,单击 集群列表。
- 选择目标集群,单击进入 集群工作台。
- 在 租户列表 中单击目标租户,进入 租户详情 页面。
- 在左侧导航栏单击 账号管理。
- 在 账号管理 列表中,找到对应账号,单击 修改密码,重置账号密码后重试连接。
注意事项:
4. 查看异常事件
如果上述步骤均无问题,则可能是数据库实例本身出现了异常事件。
操作步骤:
- 登录 OceanBase 管理控制台。
- 在左侧导航栏选择 自治服务 > 异常应急。
- 在 异常事件 区域,查看所有实例的异常事件列表。
- 系统默认展示最近 3 天内的异常事件,包括异常中的事件和已恢复的事件。
- 支持的异常事件类型包括但不限于节点 CPU 异常、租户 CPU 异常、租户 SQL 队列等待时间异常等。
- 单击目标实例 操作 列的 根因分析,查看该事件的根因分析和优化建议。
- 如果异常事件的原因在分析图谱中,系统会红色高亮显示该原因,并提供优化建议。
- 如果异常事件的原因不在分析图谱中,系统会在 解决方案 区域提供建议。
注意事项:
- 可以单击 查看智能解读,查看 AI 提供的诊断结果和建议。
- 在 SQL 汇总信息 和 可能的根因 SQL 区域,可以进一步分析可能导致问题的 SQL。
5. 查看性能监控数据
通过性能监控数据,可以进一步确认是否存在资源瓶颈或其他异常。
操作步骤:
- 登录 OceanBase 管理控制台。
- 在左侧导航栏选择 自治服务 > 诊断中心。
- 在 实例详情 区域,单击目标实例名称。
- 在左侧导航栏单击 异常应急。
- 在 性能监控 区域,查看 CPU 使用率、租户 CPU 使用率、请求等待队列耗时 等监控指标的数据。
- 系统默认展示最近 3 天内的数据。
- 您可以通过右上角的时间选择器调整时间范围。
- 将光标悬停在问号图标上方,查看监控指标说明。
- 单击租户名称后的图标,查看该租户的监控数据。
注意事项:
- 如果发现某些指标异常(如 CPU 使用率过高或请求等待队列耗时过长),请结合异常事件分析进行进一步排查。
6. 其他可能原因及建议
如果以上步骤仍未解决问题,可以考虑以下可能性: - 硬件故障或可用区灾难:OceanBase 支持多可用区容灾能力,RTO 小于 8 秒,可自动切换到健康的可用区。请确认是否有相关告警。 - 异步备库问题:如果主集群异常,可能导致备集群无法正常工作。请检查主备集群的状态。 - SQL 性能问题:通过 TopSQL 或 SlowSQL 分析是否存在性能瓶颈。
总结
按照上述步骤逐一排查,通常可以定位并解决 OceanBase 数据库不可访问的问题。如果问题仍未解决,建议联系阿里云技术支持团队,提供详细的日志和监控数据以便进一步分析。