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 容器里可能没有 vi、vim 等编辑器,所以建议用 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

558

被折叠的 条评论
为什么被折叠?



