4 步跑通:kkFileView 文档预览元数据接入 KingbaseES 的数据库备份完整做法

发布时间:2026/9/12 10:02:59
4 步跑通:kkFileView 文档预览元数据接入 KingbaseES 的数据库备份完整做法 4 步跑通kkFileView 文档预览元数据接入 KingbaseES 的数据库备份完整做法【免费下载链接】kkFileViewUniversal File Online Preview Project based on Spring-Boot项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileViewkkFileView 是一个基于 Spring Boot 的通用文件在线预览项目支持 Office、PDF、CAD 等 200 格式本文带你把它与 KingbaseES人大金仓兼容 PostgreSQL 协议的国产关系型数据库组合实现文档预览 元数据数据库备份把每次预览的文档元数据落到数据库里再用定时任务归档备份。预览用的元数据现在都存在哪预览能用了但谁在什么时候传了什么文件、多大这些元数据只躺在服务器内存和本地临时目录里一次重装或误操作就全丢。这篇的数据库备份方案就是解决这件事。为什么是 kkFileView KingbaseES 这个组合两个项目的分工一句话说清kkFileView 负责看KingbaseES 负责存。角色承担者具体职责预览引擎kkFileView 5.0.0解析并在线预览 Office、PDF、CAD 等格式元数据仓库KingbaseES建议 V8R6存文件名、大小、上传者、备份状态等元数据备份调度Spring Scheduled定期把元数据归档到备份集选它而不是更熟的 MySQL理由有两个一是属于国产化数据库合规上好交代二是兼容 PostgreSQL 协议JDBC 驱动生态成熟接入成本和 MySQL 基本一致。动手前3 个前置条件先核对运行环境Java 21 和 MavenkkFileView 5.0.0 的硬性要求具体版本见 pom.xml数据库KingbaseES V8R6 已部署默认监听 54321 端口并建一个有建表权限DDL的专用账号网络kkFileView 所在机器执行telnet 金仓主机 54321能连通构建git clone https://gitcode.com/GitHub_Trending/kk/kkFileView再执行mvn clean package -DskipTests产物为server/target/kkFileView-5.0.0.jar集成实操从连接串到定时备份的完整链路KingbaseES 连接串怎么配先在server/pom.xml里加上驱动依赖com.kingbase:kingbase8然后在 server/src/main/config/application.properties 末尾追加连接配置spring.datasource.urljdbc:kingbase8://127.0.0.1:54321/kkfileview?currentSchemapublic spring.datasource.usernamesystem spring.datasource.passwordyourpassword spring.datasource.driver-class-namecom.kingbase8.Driver spring.datasource.hikari.maximum-pool-size10两个细节注意URL 里的currentSchemapublic是默认模式Hikari 连接池中小部署给 10 就够别调太大备份任务会批量占用。文档元数据表怎么建在金仓里建一张元数据表起步用这几个字段足够CREATE TABLE document_metadata ( id BIGSERIAL PRIMARY KEY, file_name VARCHAR(255), file_size BIGINT, uploader VARCHAR(64), upload_time TIMESTAMP DEFAULT now(), backup_time TIMESTAMP, status VARCHAR(16) DEFAULT PENDING ); CREATE INDEX idx_dm_upload_time ON document_metadata(upload_time);upload_time上的索引不能省备份任务就是按它排序取增量。落库代码放在service层文件上传后提取元数据并插入该表。工程代码结构可以参考 server/src/main/java/cn/keking/ 目录建议实体类放model包、数据访问放service包和现有分层保持一致。定时备份一行配好在备份服务类里加一个定时方法Scheduled(cron 0 0 2 * * ?) public void fullBackup() { backupService.backupAllDocuments(); }任务体做三件事查statusPENDING的记录、写入备份集、成功后把状态改成BACKED_UP并回填backup_time。想改成每小时增量把 cron 换成0 0 * * * ?查询条件加上晚于上次备份时间即可。效果验证备份到底生效没有✅ 三个动作每个不到一分钟启动java -jar server/target/kkFileView-5.0.0.jar访问http://localhost:8012首页能正常打开。上传并预览一份 Word 文档然后在金仓里执行SELECT file_name, uploader, status FROM document_metadata ORDER BY upload_time DESC LIMIT 5;结果里出现新记录、凌晨 2 点任务跑完后状态从PENDING变成BACKED_UP闭环就算通了再访问http://localhost:8012/actuator/health确认接口返回 UP服务侧无异常。避坑指南3 个高频问题 ⚠️1. 启动报No suitable driver现象服务启动日志出现No suitable driver found for jdbc:kingbase8原因驱动 jar 没进 classpath或driver-class-name拼错解法确认server/pom.xml里有com.kingbase:kingbase8驱动值写全com.kingbase8.Driver2. 连接串对却连不上现象报no pg_hba.conf entry或连接直接超时原因KingbaseES 的pg_hba.conf默认不放开外部地址访问解法给 kkFileView 来源 IP 加一条放行记录保存后重启数据库服务再试3. 备份时偶发连接池耗尽现象connection is not available, request timed out after 30000ms原因备份任务批量拿连接不还池子又调得太小解法调小maximum-pool-size并在备份任务里给连接使用加超时保护这套组合把预览和数据落地各自最擅长的事都交了出去元数据从此只存内存变成数据入库存档一次集成一下午能跑完。下一步可以把备份集归档到对象存储再结合 Actuator 指标做备份监控告警。【免费下载链接】kkFileViewUniversal File Online Preview Project based on Spring-Boot项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询