开发者社区 > 大数据与机器学习 > 实时数仓 Hologres > 正文

Hologres数据库异常,报以下错误,怎么处理呢?

Hologres数据库异常,报以下错误,怎么处理呢?error: status { code: SERVER_INTERNAL_ERROR message: "[fragment_service.cc:227 AcquireOrRelease] HGERR_code 53200 HGERR_msge Total memory used by all existing queries exceeded memory limitation. HGERR_detl memory usage for existing queries=(40101858094637903,36028345960)(40034022320546343,250778824)(20112042212492113,218087632)(20032044679241614,4756992)(40022042036936059,3517432); Used/Limit: 36519804928/36139859968 quota/sum_quota: 100/100. HGERR_end[query_id:40034022320546343]" err_data { filename: "fragment_service.cc" lineno: 227 funcname: "AcquireOrRelease" sqlerrcode: 8389 message: "Total memory used by all existing queries exceeded memory limitation." detail: "memory usage for existing queries=(40101858094637903,36028345960)(40034022320546343,250778824)(20112042212492113,218087632)(20032044679241614,4756992)(40022042036936059,3517432); Used/Limit: 36519804928/36139859968 quota/sum_quota: 100/100." context: "[query_id:40034022320546343]" } } Where: [query_id:40034022320546343]

展开
收起
cuicuicuic 2024-02-06 08:23:17 58 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据提供的错误信息,这是一个Hologres数据库异常。错误代码为SERVER_INTERNAL_ERROR,具体错误信息如下:

    HGERR_code 53200 HGERR_msge Total memory used by all existing queries exceeded memory limitation. HGERR_detl memory usage for existing queries=(40101858094637903,36028345960)(40034022320546343,250778824)(20112042212492113,218087632)(20032044679241614,4756992)(40022042036936059,3517432); Used/Limit: 36519804928/36139859968 quota/sum_quota: 100/100. HGERR_end[query_id:40034022320546343]" err_data { filename: "fragment_service.cc" lineno: 227 funcname: "AcquireOrRelease" sqlerrcode: 8389 message: "Total memory used by all existing queries exceeded memory limitation." detail: "memory usage for existing queries=(40101858094637903,36028345960)(40034022320546343,250778824)(20112042212492113,218087632)(20032044679241614,4756992)(40022042036936059,3517432); Used/Limit: 36519804928/36139859968 quota/sum_quota: 100/100." context: "[query_id:40034022320546343]" } } Where: [query_id:40034022320546343]
    

    这个错误表明当前所有查询所使用的总内存超过了内存限制。具体来说,内存使用情况如下:

    • 查询ID为40101858094637903的查询使用了36028345960字节的内存;
    • 查询ID为40034022320546343的查询使用了250778824字节的内存;
    • 查询ID为20112042212492113的查询使用了218087632字节的内存;
    • 查询ID为20032044679241614的查询使用了4756992字节的内存;
    • 查询ID为40022042036936059的查询使用了3517432字节的内存。

    目前使用的内存总量为36519804928字节,而内存限制为36139859968字节。此外,当前的配额为100,总配额为100。

    要解决这个问题,你可以考虑以下几种方法:

    1. 优化查询语句:检查正在执行的查询语句,看是否可以通过优化来减少内存使用量。例如,避免使用不必要的临时表或子查询,合理使用索引等。

    2. 增加内存限制:如果可能的话,可以尝试增加内存限制以适应更大的查询需求。这可能需要与数据库管理员联系并调整相关配置。

    3. 分批处理数据:如果查询需要处理大量数据,可以考虑将数据分批处理,而不是一次性加载到内存中。这样可以减少单次查询的内存占用。

    请注意,具体的解决方法取决于你的具体情况和数据库环境。建议与数据库管理员或专业人士进一步讨论和排查问题。

    2024-02-06 17:44:54
    赞同 展开评论 打赏
  • 常见OOM问题 排查方法请参考文档 https://help.aliyun.com/zh/hologres/user-guide/faq-about-oom ,此回答整理自钉群“实时数仓Hologres交流群”

    2024-02-06 10:14:24
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,根据你提供的报错信息提示“Total memory used by all existing queries exceeded memory limitation”,表示所有现有查询所使用的内存超过了设定的内存限制。

    这个错误可能是由于数据库中运行的查询消耗了太多的内存资源导致的。解决这个问题,你可以优化查询,主要是针对消耗较大内存的查询,进行性能优化,优化查询语句、索引、查询计划等,减少内存消耗。还有就是调整内存限制,根据需求和服务器资源情况,适当调整Hologres数据库的内存限制。

    还有就是错误详情中还包含了查询的ID([query_id:40034022320546343]),你可以使用该ID来定位具体是哪条查询导致了内存超限,以便更精确地解决问题。

    2024-02-06 08:43:52
    赞同 展开评论 打赏

本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975

相关产品

  • 实时数仓 Hologres
  • 相关电子书

    更多
    实时数仓Workshop(广州站)- 李佳林 立即下载
    阿里云实时数仓Hologres技术揭秘2.0 立即下载
    实时数仓Hologres技术实战一本通2.0版(下) 立即下载