升级

可以使用edge-boot程序升级,也可以手动升级

升级方式1:使用edge-boot升级

可以使用edge-boot简单升级管理平台,如果你还没有在服务器上安装过,可以从以下下载地址下载:

在服务器上下载此文件,然后执行:

  1. chmod u+x ./edge-boot #第一次运行时,需要修改此文件为可执行
  2. ./edge-boot upgrade admin

升级方式2:手动升级

  1. 在官网下载新的管理平台压缩包;
  2. 备份配置文件:为了防止不小心删除原有的配置文件,可以备份原安装目录下的:

    1. edge-admin/
    2. configs/ -- 需要备份的配置目录1
    3. edge-api/
    4. configs/ -- 需要备份的配置目录2

    在安装完成后,如果发现重新进入了安装界面,请将备份的配置目录重新覆盖相应的位置,然后重启edge-admin服务进程;

  3. 在目标服务器上解压后覆盖原有的安装目录,注意 不要 删除原来安装目录下的任何文件,以防丢失配置:

    1. unzip -o edge-admin-xxx-xxx-vxxx.zip
  4. 重启管理平台进程:

    1. cd $EdgeAdmin安装目录
    2. bin/edge-admin restart

数据库相关

数据库是通过API节点升级的,如果用户在安装时选择的是启动自带的API节点,则每次在重启的时候,都会自动检查数据库是否有升级,并自动执行升级;如果是用户单独自行安装的API节点,可以在升级完API节点后,重启API节点,就会自动执行数据库升级。

如果数据库数据量比较大,为了防止启动edge-api等待时间过长,你可以先升级数据库:

  1. cd $EdgeAPI安装目录
  2. bin/edge-api upgrade

等完成后,再重启edge-api进程。

常见问题

可以跨版本升级吗?

GoEdge是支持跨版本升级的,比如从 v0.2.0 升级到 v0.4.0,是允许的。

升级后重启时提示 panic: runtime error: invalid memory address or nil pointer deference

如果在重启节点时,提示类似于以下的错误:

  1. panic: runtime error: invalid memory address or nil pointer deference
  2. [signal] SIGSEGV: ...
  3. goroutine 1 [running]:
  4. github ....

是因为在 v0.2.6 版本之后,我们采用了新的进程启停管理方式,所以第一次需要特殊方法启动:

  1. 需要使用 ps 获取进程ID
  2. 使用 kill 命令关掉进程ID
  3. 重新启动进程

比如在启动 edge-admin 时遇到这个问题,可以:

  1. pa ax|grep edge-admin

输出结果类似于:

  1. [root@localhost ~]# ps ax|grep edge-admin
  2. 4386 pts/1 S+ 0:00 grep --color=auto edge-admin
  3. 6683 ? Sl 4:10 bin/edge-admin
  4. 6695 ? Sl 42:28 /home/opt/www/teaos/edge-admin/edge-api/bin/edge-api

那我们可以知道 edge-admin 的进程ID是6683,那么就可以使用 kill 命令关掉这个进程:

  1. kill 6683

然后再重新启动:

  1. bin/edge-admin restart

其他的进程 edge-adminedge-apiedge-node等进程都可以同样处理。