前言
metabase是一个非常好用的开源BI分析工具,上手简单,可以非常方便地进行数据分析及报表展示,同时也支持自定义sql查询,在日常工作中能极大地提升工作效率。具体的使用方法可参考我另一篇文章:《开源BI分析工具Metabase配置与完全使用手册》其自带的应用数据库H2虽然小巧轻便,但是稳定性方面就不那么尽人意了,这一点官方文档中也有说明:
所以要使用默认数据源的话,千万要多备份,像我就踩坑了…最近部署metabase的服务器磁盘满了导致服务挂了,在清理磁盘后,发现metabase还是死活起不来,其中有段sql一直执行报错。虽经过一系列操作之后可算把数据恢复过来了,但想想还是有点后怕,而且官方也推荐用自己的数据库,遂决定将其改为MySQL
我的metabase是直接用jar包部署的,所以这里以jar包方式为例,具体更换步骤如下:
变更步骤
1. 停止metabase
先找到metabase进程,直接kill -9
停止服务
kill -9 metabase进程号
2. 备份数据文件,以防万一
在metabase根目录下找到metabase.db.mv.db
文件,备份到你喜欢的目录下,这里就是metabase的所有记录信息,包括你自己建的集合,用户信息,权限,连接的数据库等等,如果是老版本的话,文件名叫做metabase.db.h2.db
cp metabase.db.mv.db ../back
3. 配置mysql环境变量
在用户环境变量中配置MySQL信息,当然数据库要提前建好,这里要注意最低版本是MySQL 5.7.7,且必须使用utf8mb4
字符集
vim ~/.bash_profile
写入数据库配置信息:
export MB_DB_TYPE=mysql
export MB_DB_DBNAME=apicloud_metabase
export MB_DB_PORT=3306
export MB_DB_USER=metabase_user
export MB_DB_PASS=metabase321
export MB_DB_HOST=20.26.85.68
source ~/.bash_profile
4. 数据文件迁移
然后把H2里面的历史记录同步到MySQL里,进到metabase.jar
所在目录,
使用metabase自带命令迁移H2数据至mysql:
java -jar metabase.jar load-from-h2 metabase.db # 不需要 .mv.db 或 .h2.db 前缀
等待数据同步完成
然后重启metabase即可
nohup java -jar metabase.jar >> ./metabase.log &
补充
连接oracle
首先去oracle官网下载ojdbc驱动:
放到/metabase/plugins目录下,重启metabase即可