Docker实现keepalived + TimescaleDB 的高可用(三)
2020-01-13 16:13
323 查看
linux实现keepalived + TimescaleDB 的高可用
- TimescaleDB是什么?
- 1.使用docker-compose生成容器
- 2.创建check_timescale_port脚本文件
- 3.配置keepalived.conf文件
- (1)引入脚本
- (2)创建vrrp模块
- (3)完整的keepalived.conf文件
TimescaleDB是什么?
官网网址
TimescaleDB数据库是基于PostgreSQL数据库扩展的一个时序性数据库插件。可以使用标准sql语句。
1.使用docker-compose生成容器
进入
/root目录,创建文件,文件名
docker-compose.yml.文件内容:
version: "2.1" services: timescaledb: image: timescale/timescaledb:1.3.0-pg11 restart: unless-stopped ports: - "5432:5432" volumes: - /data/docker/timescaledb/data:/var/lib/postgresql/data
然后进入该目录下,
cd ~,运行命令
docker-compose up,即可生成容器。
可以看出来,你把docker-compose.yml文件创建在哪里,就进入该目录运行up命令即可。
2.创建check_timescale_port脚本文件
进入
/etc/keepalived目录,创建名为
check_timescale_port.sh的文件。
#!/bin/bash count=`nmap -p 5432 127.0.0.1|grep open|wc -l` if [ $count != 0 ] then exit 0 else exit 1 fi
照例,仅是端口号不同,TimescaleDB和PostgreSQL的端口号相同,都为
5432.
3.配置keepalived.conf文件
(1)引入脚本
vrrp_script chk_http4_port { script "/etc/keepalived/check_timescale_port.sh" interval 1 weight -20 }
(2)创建vrrp模块
vrrp_instance VI_4 { state MASTER interface eth0 virtual_router_id 54 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.50.225/24 } track_script { chk_http4_port } priority 100 ##主服务100 备服务90只要小于100就可以 }
(3)完整的keepalived.conf文件
vrrp_script chk_http1_port { script "/etc/keepalived/check_redis_port.sh" interval 1 weight -20 } vrrp_script chk_http2_port { script "/etc/keepalived/check_tomcat_port.sh" interval 1 weight -20 } vrrp_script chk_http3_port { script "/etc/keepalived/check_rabbitmq_port.sh" interval 1 weight -20 } vrrp_script chk_http4_port { script "/etc/keepalived/check_timescale_port.sh" interval 1 weight -20 }vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.50.222/24 } track_script { chk_http1_port } priority 100 ##主服务100 备服务90只要小于100就可以 } vrrp_instance VI_2 { state MASTER interface eth0 virtual_router_id 52 advert_int 1 authentication { auth_type PA auth_pass 123 } virtual_ipaddress { 192.168.50.223/24 } track_script { chk_http2_port } priority 100 ##主服务100 备服务90只要小于100就可以 } vrrp_instance VI_3 { state MASTER interface eth0 virtual_router_id 53 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.50.224/24 } track_script { chk_http3_port } priority 100 ##主服务100 备服务90只要小于100就可以 } vrrp_instance VI_4 { state MASTER interface eth0 virtual_router_id 54 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.50.225/24 } track_script { chk_http4_port } priority 100 ##主服务100 备服务90只要小于100就可以 }
惯例:主机的priority属性为100,备机为90.
4.修改check_timescale_port脚本权限
进入当前目录:
/etc/keepalived,使用命令:
chmod 777 check_timescale_port.sh,修改完毕。
使用
ls -l命令查看文件权限。
5.可视化界面
【后记:好吧,我的试用版过期了,不得不找个破解版,推荐下载最新版本,目前是12版本。
下载地址:Navicat 12 破解版下载/破解方式(亲测有效),我也是亲测有效。】
timescale可视化界面选择
Navicat,去官网下载最新版本即可,我是选择的
Navicat for PostgreSQL。
连接linux的数据库,如图所示:
填写了连接名,主机ip后,密码这栏却不知道怎么填了,接下来就得修改TimescaleDB的密码。
6.修改TimescaleDB密码
我们是使用的docker安装的数据库,所有得进入docker容器中修改密码。
(1)进入docker容器:
docker exec -it 容器id /bin/sh
(2)切换至postgres用户:
su postgres
(3)执行 psql ,进入 postgres的命令行
psql
(4)在psql 命令行 修改默认用户密码
ALTER USER postgres WITH PASSWORD '123456';
现在,我就将我的数据库密码修改为了123456.
(5)退出容器
exit
至此,我们就可以正常连接数据库了。
如果你在连接数据库时,报异常:
ERROR:column “proisagg” dose not exist…
这是因为你的Navicat版本太低的原因,重新下载新版本即可。
7.测试
分别启动主备机的keepalived,分别启动主备机的timescaleDB,在主和备数据库中插入不同的数据,看虚拟ip连接的数据库显示哪个表的数据,正常情况显示主机数据。
停止掉主机的timescaleDB,刷新虚拟ip数据库,查看数据是否切换到了备机的表数据,如果切换,配置正确。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Docker实现Timescale+pgpool-II复制的高可用(六)
- Docker实现TimescaleDB 基于异步流的主从复制(四)
- keepalived+nginx+docker实现负载均衡高可用服务
- Docker+Nginx+Keepalived实现架构高可用
- Docker实现keepalived+tomcat+redis+other的高可用(一)
- Centos 7部署docker+nginx+keepalived实现高可用web集群
- docker下用keepalived+Haproxy实现高可用负载均衡集群
- haproxy+keepalived实现高可用负载均衡
- Nginx+Keepalived实现高可用
- haproxy+keepalived实现高可用负载均衡
- nginx+keepalived实现高可用
- keepalived双机实现高可用和负载均衡
- 基于keepalived实现mariadb的高可用
- Keepalived+LVS实现web高可用负载集群
- 轻量级高可用实现工具--keepalived详解
- nginx使用keepalived实现高可用
- 双主模型高可用负载均衡集群的实现(keepalived+lvs-dr)
- keepalived安装配置实战心得(实现高可用保证网络服务不间断)
- 如何搭建高可用架构(三)--Nginx双主热备(Keepalived实现)
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡