爱折腾的特斯拉车主必看!手把手教你TESLAMATE数据库的跨平台迁移、备份和恢复
前言
去年国庆前提了一辆标续Model Y,开到现在小半年,五千多公里里程,非常满意,不仅对车子的驾驶乘坐体验满意,还包括了对这个电子产品可玩性的满意,比如今天要聊的TESLAMATE。
TESLAMATE是个开源项目,顾名思义,特斯拉伴侣,一款可以记录车子所有的位置、轨迹、速度、温度、海拔、续航、充电等等非常详细的信息的工具,和其他第三方软件数据库都放在别人那里不同,这个东西是架设在自己的虚拟或实体服务器(比如支持docker的NAS)里的,所有的数据都在自己控制之下,安全性相对其他第三方软件要好不少,最早折腾的时候,是参考了张大妈上面这篇帖子:
安装方法基本上参考上面文章就行,这里主要讲一下数据库的备份和恢复
为什么需要备份和恢复?
不折腾不舒服呗(不是),就我自己而言,是因为之前七八年一直用的黑群晖,TESLAMATE也是架设在上面的,去年底入了威联通的453dmini,用来当主力nas,告别盗版群晖(白嫖了这么多年群晖转投了威联通是不是有点过分 )
新机到手,就准备把TESLAMATE的数据库倒腾到威联通里面。
一开始跑偏了方向,百度上各种搜索,“TESLAMATE备份 恢复”、“群晖 威联通 docker 备份 恢复”、“群晖 威联通 docker 迁移”等等,查不到特别有用的信息,又在各种技术群里跟大神们咨询,倒是问到了一些解决方法,但是自己操作起来,因为对docker的理解浮于表面,没有保姆教程的情况下完全没办法弄好,花了很多时间,整个人很崩溃
后来突然想起来去TESLAMATE的官方网站,看了一眼,我*,这不是都写的清清楚楚了吗,瞎折腾个什么劲啊,中文媒体里都没有相关的内容,我就来搬运一下吧
备份操作
打开nas的ssh功能,威联通是在:控制台/网络&文件服务/ Telnet/SSH里面,打钩即可
然后使用putty或者其他类似软件连接你的nas,输入nas的用户名,密码,要注意的是用户必须是管理员,而且输入密码时屏幕不会有任何显示,输完之后回车即可
输入sudo -i,再输入一次密码,这时威联通会弹出一个提示
按Q回车再Y回车即可
前面提到的那篇文章正文里面有一点没有提到,操作时必须进入你存放docker-compose.yml文件的目录,像我的文件放在了威联通的Container这个共享文件夹里,就必须输入 cd /share/Container (和windows不同,文件夹名字必须严格注意大小写字母)
输入:
docker-compose exec -T database pg_dump -U teslamate teslamate > /backuplocation/teslamate.bck
上面的/backuplocation/teslamate.bck是根据自己想要存放的目录和文件名来写,比如我就存在Container文件夹里,就写/share/Container/aa.bck
回车之后稍等片刻,就能在你指定的文件夹里找到这个备份文件了
恢复操作
提前准备好扩展名为bck的备份文件,建议和docker-compose.yml文件放到一起,方便操作,如果是在群晖和威联通之间互转,把文件拷贝过去,先参考前文教程重新安装TESLAMATE再进行下面操作,如果是同个机器备份恢复就直接ssh到NAS,cd到存放文件的目录。
接下来,先停止TESLAMATE服务:
docker-compose stop teslamate
然后输入以下内容,逐行输入后回车,清除现有的数据并初始化
docker-compose exec -T database psql -U teslamate << .
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';
.
需要特别注意的是最后一个半角句点是单独的一行,不要弄到上一行去了
下一步是恢复备份文件:
docker-compose exec -T database psql -U teslamate -d teslamate < teslamate.bck
最后这个teslamate.bck就是备份文件的名字,如果你和docker-compose.yml放在同个文件夹里,就只需要输入文件名,否则需要输入完整目录和文件名
再重启TESLAMATE服务
docker-compose start teslamate
到这里就大功告成了,打开GRAFANA网页就能访问你的数据了
碎碎念
爱折腾的朋友一定要记得在折腾之前备份!!
爱折腾的朋友一定要记得在折腾之前备份!!
爱折腾的朋友一定要记得在折腾之前备份!!
以前TESLAMATE是无需登录,打开网页就能查看所有信息,感觉不太舒服,前天就想修改一下权限,结果强行在文件总管里面修改了TESLAMATE文件夹的权限之后,服务就再也打不开了!我*!千万不要手贱乱改权限啊
只能找到12月份的备份文件来恢复,中间三个月数据全没啦,伤心,本来是想用这小半年的数据聊聊标续Y的使用心得的,也只能推后了,那么,最后附两张贴膜店拍的车车图,我们下次再见吧!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
值友6561335261
具体来说可以执行下面这个命令,借助ubuntu容器挂载db volume, 进行备份还原操作。
旧机器执行以下命令备份:
tar vcf /backup/ubuntu.tar /var/lib/postgresql/data
新机器执行以下命令恢复:
cd /var
tar xvf /backup/ubuntu.tar --strip 1
校验提示文案
折腾这快乐着折腾
校验提示文案
就此别过
校验提示文案
风风鱼鱼
校验提示文案
chleicool
校验提示文案
kissz87
校验提示文案
王二狗
校验提示文案
值友8916268194
校验提示文案
coffeemilk
校验提示文案
泛舸
校验提示文案
值友4275971523
校验提示文案
峻小峻
校验提示文案
值友1688855920
校验提示文案
ruan239168
校验提示文案
dainihui
校验提示文案
内心极度膨胀
校验提示文案
kissz87
校验提示文案
汐敖
校验提示文案
nicktsai
校验提示文案
GGplay
校验提示文案
GGplay
校验提示文案
值友1688855920
校验提示文案
nicktsai
校验提示文案
峻小峻
校验提示文案
值友4275971523
校验提示文案
泛舸
校验提示文案
汐敖
校验提示文案
coffeemilk
校验提示文案
值友8916268194
校验提示文案
值友6561335261
具体来说可以执行下面这个命令,借助ubuntu容器挂载db volume, 进行备份还原操作。
旧机器执行以下命令备份:
tar vcf /backup/ubuntu.tar /var/lib/postgresql/data
新机器执行以下命令恢复:
cd /var
tar xvf /backup/ubuntu.tar --strip 1
校验提示文案
kissz87
校验提示文案
内心极度膨胀
校验提示文案
dainihui
校验提示文案
王二狗
校验提示文案
kissz87
校验提示文案
chleicool
校验提示文案
风风鱼鱼
校验提示文案
就此别过
校验提示文案
ruan239168
校验提示文案
折腾这快乐着折腾
校验提示文案