CloudBeaver 导出数据时报 `Data export quota exceeded` 问题处理记录

CloudBeaver 导出大文件配置说明

问题现象

使用 CloudBeaver 导出 CSV 时,如果数据量较大,可能会报错:

Data export quota exceeded
Please increase the resourceQuotas parameter in configuration (>10000000)

这里的 10000000 大约是 10 MB,表示 CloudBeaver 默认导出文件大小限制较小。

解决思路

推荐使用 Docker 挂载 CloudBeaver 的 workspace,并修改运行时配置文件:

/opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf

把导出文件大小限制 dataExportFileSizeLimit 调大。

例如调到 500 MB:

"dataExportFileSizeLimit": 524288000

一、启动 CloudBeaver 时挂载 workspace

先创建宿主机目录:

mkdir -p /opt/cloudbeaver-data/workspace

如果已经有旧容器,并且里面已经配置过连接信息,先把旧容器的 workspace 拷出来。

注意:不要先删除旧容器。

docker cp cloudbeaver:/opt/cloudbeaver/workspace/. /opt/cloudbeaver-data/workspace/

然后删除旧容器并重新启动:

docker rm -f cloudbeaver

docker run -d \
  --name cloudbeaver \
  --restart unless-stopped \
  -p 8978:8978 \
  -e TZ=Asia/Shanghai \
  -e JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \
  -v /opt/cloudbeaver-data/workspace:/opt/cloudbeaver/workspace \
  dbeaver/cloudbeaver:latest

二、修改导出文件大小限制

CloudBeaver 容器里可能没有 vivim 等编辑器,所以建议用 docker cp 把配置文件拷出来修改。

先拷出配置文件:

docker cp cloudbeaver:/opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf ./cloudbeaver.runtime.conf

备份一份:

cp ./cloudbeaver.runtime.conf ./cloudbeaver.runtime.conf.bak

编辑本地文件:

cloudbeaver.runtime.conf

找到这一行:

"dataExportFileSizeLimit": "${CLOUDBEAVER_RESOURCE_QUOTA_DATA_EXPORT_FILE_SIZE_LIMIT:10000000}",

改成:

"dataExportFileSizeLimit": 524288000,

说明:

524288000 字节 = 500 MB

然后拷回容器:

docker cp ./cloudbeaver.runtime.conf cloudbeaver:/opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf

重启容器:

docker restart cloudbeaver

三、验证配置是否生效

查看容器内实际配置:

docker exec cloudbeaver sh -c \
'grep -n -B 2 -A 2 "dataExportFileSizeLimit" /opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf'

如果看到:

"dataExportFileSizeLimit": 524288000,

说明配置文件已经改成功。

再确认 workspace 是否挂载成功:

docker inspect cloudbeaver \
  --format '{{range .Mounts}}{{println .Source " -> " .Destination}}{{end}}'

应看到类似:

/opt/cloudbeaver-data/workspace -> /opt/cloudbeaver/workspace

四、为什么不建议只靠环境变量

CloudBeaver 配置文件里可能是这种写法:

"dataExportFileSizeLimit": "${CLOUDBEAVER_RESOURCE_QUOTA_DATA_EXPORT_FILE_SIZE_LIMIT:10000000}"

理论上可以通过环境变量配置:

-e CLOUDBEAVER_RESOURCE_QUOTA_DATA_EXPORT_FILE_SIZE_LIMIT=524288000

但是如果环境变量名写错,CloudBeaver 会继续使用默认值:

10000000

常见错误变量名:

CLOUDBEAVER_APP_RESOURCE_QUOTAS_DATA_EXPORT_FILE_SIZE_LIMIT
CLOUDBEAVER_RESOURCE_QUOTAS_DATA_EXPORT_FILE_SIZE_LIMIT

更稳妥的方式是直接修改 runtime 配置文件,把值写成数字:

"dataExportFileSizeLimit": 524288000

五、CloudBeaver 导出 Oracle SQL 的注意事项

如果导出时报:

ORA-00911: invalid character

常见原因是 SQL 末尾带了分号。

在查询窗口执行 SQL 时,分号通常没问题;但 CloudBeaver 导出 CSV 时,会通过 JDBC 重新执行 SQL,Oracle JDBC 可能不接受末尾分号。

导出用 SQL 建议最后不要写分号。

正确写法:

ORDER BY v.reg_date, v.clinic_code

不要写成:

ORDER BY v.reg_date, v.clinic_code;

同时建议:

只选中完整的 WITH / SELECT 查询语句
不要额外选中无关字符
不要把多个 SQL 一起用于导出

六、常用排查命令

查看导出限制配置:

docker exec cloudbeaver sh -c \
'grep -n -B 2 -A 2 "dataExportFileSizeLimit" /opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf'

查看所有配置文件中的导出限制:

docker exec cloudbeaver sh -c \
'find /opt/cloudbeaver -type f \( -name "*.conf" -o -name "*.json" \) -exec grep -nH "dataExportFileSizeLimit" {} \; 2>/dev/null'

查看环境变量:

docker exec cloudbeaver sh -c \
'env | grep -i "CLOUDBEAVER.*RESOURCE\|EXPORT\|QUOTA" || true'

查看挂载目录:

docker inspect cloudbeaver \
  --format '{{range .Mounts}}{{println .Source " -> " .Destination}}{{end}}'

查看最近日志:

docker logs --tail 200 cloudbeaver

七、最终推荐配置

推荐最终使用这种方式:

docker run -d \
  --name cloudbeaver \
  --restart unless-stopped \
  -p 8978:8978 \
  -e TZ=Asia/Shanghai \
  -e JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \
  -v /opt/cloudbeaver-data/workspace:/opt/cloudbeaver/workspace \
  dbeaver/cloudbeaver:latest

并在:

/opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf

中配置:

"dataExportFileSizeLimit": 524288000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡斌附体

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值