使用 Postgres 作为 Grafana 后端,并迁移数据

11 篇文章 0 订阅
3 篇文章 0 订阅

迁移 SQLite to Postgres

单纯的使用 PG 用来当 Grafana 的后端存储,这个倒是简单,难的是怎么样把现有数据迁移过去。网络上的方案千千万,N 种方式失败之后终寻得成功

迁移数据

  • 停止 Grafana, copy grafana.db 文件

这个太复杂了,根据环境想办法导出 db 文件

  • 配置 PG 后端
    配置文件、环境变量皆可,这里用环境变量(k8s 环境里面跑的),根据实际情况更改

PS:需先到 pg 中创建 grafana 库

      - env:
        - name: GF_DATABASE_TYPE
          value: postgres
        - name: GF_DATABASE_HOST
          value: pg.postgres-system.svc.cluster.local:5432
        - name: GF_DATABASE_NAME
          value: grafana
        - name: GF_DATABASE_USER
          value: postgres
        - name: GF_DATABASE_PASSWORD
          value: u14b3MrK
        - name: GF_DATABASE_SSL_MODE
          value: disable
  • 停止 Grafana, 导出 pg 中的 grafana 库的 schema(表结构)
pg_dump --schema-only-U postgres grafana > schema.sql
  • 删库(不)跑路
    删除 grafana 库,重新创建 grafana 库,导入表结构

PS: 记得删库、建库

导入表结构

psql -d grafana -f schema.sql
  • 神器 pgloader 导入数据

pgloader 的配置 db.load

load database
    from sqlite:///var/db/grafana.db
    into postgresql://postgres:u14b3MrK@pg.postgres-system.svc:5432/grafana
    with data only, reset sequences
    set work_mem to '1024MB', maintenance_work_mem to '2048MB';

开始导入

PS: 这里所有的操作都是用容器化操作的,pgloader 不要使用 latest(程序本身有些问题,在 github 的 issue 里面有讨论,忘记记录 url 了),使用的是 dimitri/pgloader:ccl.latest

pgloader db.load
  • 启动 Grafana
    至此,整个迁移过程结束,现在可以检查数据是否正确的迁移过来了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值