记一次群晖teslamate数据库恢复过程

提出问题:         按官网的备份与恢复数据库说明,在群晖docker中的teslamate可以完成备份,但无法进行恢复,表现为输入指令后终端无响应。 官网说明链接:https://docs.teslamate.org/docs/maintenance/backup_restore 如果你正在使用或准备在NAS中部署teslamate,希望对你有所帮助。 以下操作默认本文读者具备linux命令行ssh基础操作、群晖docker知识! 解决方法: 恢复过程与官网相同,只是指令的输入形式做了修改: 1.停止taslamate容器 2.先清数据库 3.进行数据导入 4.开启teslamate容器 PS:清空数据库需要使用官网给的指令,但是命令有修改,否则会报错(根据报错提示,去掉最后一行的“\”)。以下有的行用户输入命令,有的行是返回提示,有些行注释,请注意区分。 sudo -i #ssh连接到群晖,登录后切换root账户cd /volume1/docker/ #进入.yml文件目录,根据实现情况修改 # 1.停止taslamate容器docker-compose stop teslamate # 2.进入database容器中的psqldocker-compose exec database psql teslamate teslamate psql (14.7 (Debian 14.7-1.pgdg110+1))Type "help" for help.teslamate=#  #复制官网指令,去掉多余的“\”,粘贴并按enter,清空数据库内容。drop schema public cascade;create schema public;create extension cube;create extension earthdistance;CREATE OR REPLACE FUNCTION public.ll_to_earth(float8, float8)    RETURNS public.earth    LANGUAGE SQL    IMMUTABLE STRICT    PARALLEL SAFE    AS 'SELECT public.cube(public.cube(public.cube(public.earth()*cos(radians($1))*cos(radians($2))),public.earth()*cos(radians($1))*sin(radians($2))),public.earth()*sin(radians($1)))::public.earth'; #exit退出 psqlteslamate=# exitroot@Ds3615:/volume1/docker# #进入docker docker_database_1的bashroot@Ds3615:docker exec -it docker_database_1 bashroot@8ec76e75c415:/# #将要恢复的备份文件挂载到/mnt/bakroot@8ec76e75c415:/# ls /mnt/bak/teslamate.bck #输入命令进行恢复数据root@8ec76e75c415:/# psql -U teslamate -d teslamate < /mnt/bak/teslamate.bck #退出docker bashroot@8ec76e75c415:/# exitexit # 4.开启teslamate容器root@Ds3615:/volume1/docker# docker-compose start teslamateStarting teslamate ... done 在docker中设置卷挂载主机路径,并把teslamate.bck放入NAS的对应路径的teslamateback目录下
记一次群晖teslamate数据库恢复过程
12
14 评论
53048 阅读

评论

太麻烦了,累心。用pgAdmin的数据备份与恢复不香么?
· 0
#复制官网指令,去掉多余的“\\”,粘贴并按enter,清空数据库内容。 这句解决了问题,chatgpt给的代码虽然没报错,但是让车子不在了
· 0
请教数据恢复后导致ip:4000提示登入成功,但是状态不可用,会是啥原因
· 0
妈的,谢谢你
· 0
收藏一下
· 0
这是要把小特变成国内第二大的同x交流平台吗,哈哈哈哈哈
· 0
感谢分享
· 0
我想重新装teslamate,但是库总是下不下来,全局代理和裸连都是过了。前几天还行的。楼主遇到了吗
· 0
感谢,收藏了
· 0
这里不是 csdn 是不是跑错了
· 0