kong的postgre数据库挂了后的处理

2018-11-11  本文已影响0人  鹏鹏他爸

首先,kong的postgreSql 数据库挂了,并不会立刻影响kong的运行。

但在kong的 /usr/local/kong/logs/error.log中有不停地报错:
2018/11/11 16:40:05 [error] 14931#0: *4252478 [lua] postgres.lua:221: [postgres] could not cleanup TTLs: connection refused, context: ngx.timer
说明kong无法刷新缓存。
这是只要不重启kong,该kong仍然可以使用。

如果不想对外界访问有任何影响,可以在操作前,先将要操作的kong从负载均衡器上取消掉。一台一台来修复。

在任意一台可以访问到的机器上安装postgre,或用postgre的docker。

参见https://www.jianshu.com/p/5f31ccf9ecb3

可以新建一个kong数据库,也详见上一步的连接。

修改kong的配置文件,/etc/kong/kong.conf:

pg_host = 172.xx.xxx.xxx # The PostgreSQL host to connect to.
pg_port = 5435 # The port to connect to.
pg_user = postgres # The username to authenticate if required.
pg_password = aaxxx # The password to authenticate if required.
pg_database = postgres # The database name to connect to.

pg_ssl = off
pg_ssl_verify = off

把host ip,port,user, password, database都改为最新建立的。

运行 kong migrations up -c /etc/kong/kong.conf

然后重启kong

kong restart

这时新建的kong数据库都是空的。要在konga中restore 以前的备份到这个kong中:

konga中选择这个坏了的kong,并点击ACTIVATE


image.png

然后选择SNAPSHOTS,在最新的或要恢复的备份上点击DETAILS

image.png

在下一个页面上点击RESTORE,勾选所有对象后点击IMPORT OBJECTS即可


image.png

这样,这个kong又满血复活。

上一篇下一篇

猜你喜欢

热点阅读