修复背景:

基于k8s,未删除旧集群的情况下,使用脚本搭建部署平台(linux系统:x86 centos7.4)。

脚本初始化成功,但无法登录部署平台的web界面,排查脚本搭建部署的日志,发现sqlite文件损坏。

注意:所有方式都需要停止运行iomp,执行后完成后重启iomp(通过更改iomp文件名实现停止运行操作)

第一种方式(并未完全损坏不会丢失数据)

1、备份数据库:

sqlite3 iomp.db

sqlite> PRAGMA wal_checkpoint=PASSIVE

sqlite> .output tmp.sql

sqlite> .dump

sqlite> .quit

2、导入新库 iomp_tmp:

sqlite3 iomp_tmp

sqlite> PRAGMA journal_mode = wal;

wal

sqlite> .read tmp.sql

sqlite> .quit

3、删除临时数据

rm iomp.db-wal;rm iomp.db-shm; rm iomp.db; rm tmp.sql

(若不存在wal文件及shm文件则只需要执行rm iomp.db; rm tmp.sql)

4、 更改为之前的名称

mv iomp_tmp iomp.db

5、 重启服务

第二种方式(丢失部分数据)数据库完全损坏情况使用

1、 删除损坏数据

rm iomp.db-wal;rm iomp.db-shm; rm iomp.db;

2、 进入备份数据文件夹

3、选择需要恢复的db文件,放入该路径下

4、 更改文件名称为 iomp.db即可

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐