Vertica 高可用性测试

2022-05-06 15:09:49 浏览数 (1)

  • 1.基本概念介绍
  • 2.停止某节点服务
  • 3.测试其他节点访问

1.基本概念介绍

Vertica也是MPP架构的数据库,相比大家熟悉的MPP架构,比如Greenplum和hadoop这些产品,Vertica最大的不同就是没有主节点这个概念。 也就是说Vertica集群中(K-safe=1情况),任何一个节点宕机都不会影响到其他节点对外提供服务。 而在其他有主节点的架构中,一旦主节点挂掉,整个集群就会挂掉,所以还需要考虑进一步冗余主节点。

对架构有深入了解的朋友会问,没有主节点,那Vertica的元数据存放在哪里呢? 答案是存放在每一个节点中,因为元数据并不会很大,所以每个节点冗余元数据是可行的。

基于上面的理解,我们在一个3节点的Vertica集群测试环境中,任意停掉一个节点,其他节点都是可以对外提供服务的。

2.停止某节点服务

admintools 工具选择 “7 Advanced Menu” ,然后选 “2 Stop Vertica on Host” 或者 “3 Kill Vertica Process on Host”, 最后选择要停止服务的节点。

代码语言:javascript复制
 ``` admintools -> 7  Advanced Menu -> 2  Stop Vertica on Host / 3  Kill Vertica Process on Host -> Select host(s) 
 ``` 注:在选择“2  Stop Vertica on Host” 或者 “3  Kill Vertica Process on Host”,优先选择前者,前者停不掉才考虑后者杀掉。 这里杀掉第二个节点的vertica进程。
 ``` dbadmin=> select node_name, node_state from nodes;      node_name     | node_state  ------------------- ------------  v_testdb_node0001 | UP  v_testdb_node0002 | DOWN  v_testdb_node0003 | UP (3 rows) ``` 

3.测试其他节点访问

第二个节点宕机,但和预计的情况一样,从第一个节点和第三个节点的访问数据,都可以正常访问到。

代码语言:javascript复制
 ``` --说明节点1访问正常: [dbadmin@vertica1 ~]$ vsql Password:  
--说明节点3访问正常:
 [dbadmin@vertica3 ~]$ vsql
 Password:

从节点2访问,会报错:

代码语言:javascript复制
[dbadmin@vertica2 ~]$ vsql
 vsql: could not connect to server: 拒绝连接
 Is the server running on host "???" and accepting
 TCP/IP connections on port 5433?

所以,应用端配置连接,建议不要简单的固定集群某个节点的IP地址,而应该想办法配置一组IP,实现当发现有IP地址不能访问,可以连接别的节点IP地址正常访问数据库的逻辑。

0 人点赞