ODC数据库变更工单上传SQL附件失败

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】4.3.0
【问题描述】ODC提交数据库变更工单时,上传部分文件报错
【复现路径】上传SQL附件时,5k的文件没问题,但上传5M的文件就上传失败了。
image

【附件及日志】查询后台日志
报错信息.txt (2.7 KB)
错误提示为写入文件出错,请检查磁盘空间和目录权限。小文件能上传成功,证明具有目录权限,磁盘空间也足够,请问该怎么解决?@论坛小助手

1 个赞

根据您提供的信息,您在使用 ODC V4.3.0 版本提交数据库变更工单时遇到上传大文件失败的问题。虽然小文件能够成功上传,但是 5MB 的文件上传失败,并且后台日志提示“写入文件出错,请检查磁盘空间和目录权限”。

根据文档中的信息,ODC 支持上传的文件总大小不超过 256MB,且最多支持上传 500 个文件。 [2]

您的问题可能存在误解,实际上据我所知,如果小文件能够成功上传,那么通常情况下目录权限和磁盘空间都不是问题。但是,考虑到您提到的错误信息,这里有几个可能的原因和解决方案:

  1. 网络问题:大文件上传过程中可能会因为网络不稳定导致传输中断,建议检查网络连接情况,确保网络稳定后再尝试上传。
  2. 服务器配置:某些服务器配置可能对上传文件的大小有限制,比如 PHP 的 post_max_sizeupload_max_filesize 设置。您可以联系系统管理员检查这些配置项,确保它们允许上传较大的文件。
  3. ODC 客户端缓存:有时候客户端缓存可能导致上传失败,尝试清除 ODC 客户端的缓存或重启客户端再进行上传。
  4. 防火墙或安全软件:某些防火墙或安全软件可能会拦截大文件的上传请求,检查是否有此类软件正在运行,并尝试临时禁用它们。

如果以上方法都不能解决问题,建议您联系 OceanBase 的技术支持团队,提供详细的错误日志和环境信息,以便他们能够更准确地定位问题并提供解决方案。

详情请参考:

  1. 数据库变更管理
  2. ODC V4.3.0
  3. 导入结构和数据
2 个赞

这个是这样的,我们会把文件分快存储到数据库,默认是按1M分块,然而写入的时间超过了系统最大限定值(1min)。
解决方案有两个:

  1. 调整分块大小,可以通过调整系统参数来改变,具体来说就是修改odc元数据库的config_system_configuration表,update config_system_configuration set value=‘xxx’ where key=‘odc.objectstorage.default-block-split-length’,这里的单位是字节。

  2. 调整上传的超时时间,同样修改元数据库,update config_system_configuration set value=‘xxx’ where key=‘odc.objectstorage.upload-timeout-seconds’,单位是秒,默认是 60 秒,可以改成 120,或更高。

修改完成后重启odc,推荐采用第二种方式

2 个赞

试了下第二种方式,还是不行。根本没等60s,几秒就报错了。

2 个赞

根据您的反馈,尝试调整服务器配置的方法未能解决问题。考虑到您提到的“根本没等60秒,几秒就报错了”,这可能意味着问题并不是由服务器配置引起的,而是其他因素导致的。

可能的原因和解决方案

  1. 网络问题

    • 原因:网络不稳定或带宽不足可能导致大文件上传过程中断。
    • 解决方案:检查网络连接,确保网络稳定。可以尝试在不同的网络环境下上传文件,看是否仍然报错。
  2. ODC 客户端缓存

    • 原因:客户端缓存可能导致上传失败。
    • 解决方案:清除 ODC 客户端的缓存或重启客户端,然后再次尝试上传。
  3. 防火墙或安全软件

    • 原因:某些防火墙或安全软件可能会拦截大文件的上传请求。
    • 解决方案:检查是否有防火墙或安全软件正在运行,并尝试临时禁用它们,然后再进行上传。
  4. ODC 服务器端配置

    • 原因:ODC 服务器端可能有特定的配置限制了大文件的上传。
    • 解决方案:联系系统管理员或技术支持团队,检查 ODC 服务器端的配置,确保没有对大文件上传的限制。
  5. 日志分析

    • 原因:详细的日志信息可以帮助定位问题。
    • 解决方案:提供更多的日志信息,特别是上传失败时的详细日志,以便进一步分析问题。

详细步骤

  1. 检查网络连接

    • 确保网络连接稳定,可以尝试在不同的网络环境下上传文件。
    • 使用 ping 命令测试网络延迟,确保延迟在合理范围内。
  2. 清除 ODC 客户端缓存

    • 关闭 ODC 客户端。
    • 删除 ODC 客户端的缓存文件夹(通常位于用户目录下的 .odc 文件夹)。
    • 重新启动 ODC 客户端,再次尝试上传文件。
  3. 检查防火墙或安全软件

    • 暂时禁用防火墙或安全软件。
    • 再次尝试上传文件,看是否仍然报错。
  4. 联系技术支持

    • 提供详细的日志信息,特别是上传失败时的详细日志。
    • 联系 OceanBase 的技术支持团队,获取进一步的帮助。

日志分析

如果您能提供更多的日志信息,特别是上传失败时的详细日志,将有助于更准确地定位问题。请将日志文件发送给技术支持团队,他们可以为您提供更具体的解决方案。

希望以上建议能帮助您解决问题。如果问题仍然存在,请随时联系 OceanBase 的技术支持团队。

更多信息请查看:

  1. 事务超时,错误代码 ERROR 4012
  2. 查询表时表不存在,错误代码 ERROR 1146
  3. 创建表时表已存在,错误代码 ERROR 1050
  4. 4000 ~ 4499
  5. 命令行工具相关问题
  6. 更改归档目的端
  7. 数据备份失败
  8. 4500 ~ 4999
  9. 10000 ~ 12000

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

2 个赞

你提供一下odc.log 搭建的时候如果没有改动的话odc web的日志路径/opt/odc/log/odc.log

2 个赞

应该是文件大小哪里有限制吧?

1 个赞