`
WindyQin
  • 浏览: 32384 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

关于vertica的Connection Failover

 
阅读更多

最近在生产中发现vertica有个别节点老是宕机(又碰到的童鞋交流下),实际业务中有Python通过odbc连接vertica,还有Java通过jdbc连接vertica。假如你连接的那个节点正好是down的节点或者是standby节点,那么就会连接失败,程序就会报错,影响正常业务。其实vertica官方文档已经给出了解决方法,下面我们来看一下如何实现。

ODBC Connection Failover

官方给出的代码如下:

[VMartBadNode]
Description=VMart Vertica Database
Driver=/opt/vertica/lib64/libverticaodbc.so
Database=VMart
Servername=badnode.example.com
BackupServerNode=node02.example.com,node03.example.com

其中上面的BackupServerNode就是备用的IP

JDBC Connection Failover

代码:

import java.sql.*;
import java.util.Properties;

public class ConnectionFailoverExample {
    public static void main(String[] args) {
        // Assume using JDBC 4.0 driver on JVM 6+. No driver loading needed.
        Properties myProp = new Properties();
        myProp.put("user", "dbadmin");
        myProp.put("password", "vertica");
        // Set two backup hosts to be used if connecting to the first host
        // fails. All of these hosts will be tried in order until the connection
        // succeeds or all of the connections fail.
        myProp.put("BackupServerNode", "VerticaHost02,VerticaHost03");
        Connection conn;
        try {
            // The connection string is set to try to connect to a known
            // bnad host (in this case, a host that never existed). 
            conn = DriverManager.getConnection(
                    "jdbc:vertica://BadVerticaHost:5433/vmart", myProp);
            System.out.println("Connected!");
            // Query system to table to see what node we are connected to. 
            // Assume a single row in response set.            
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(
                    "SELECT node_name FROM v_monitor.current_session;");      
            rs.next();
            System.out.println("Connected to node " + rs.getString(1).trim());
            // Done with connection.
            conn.close();
        } catch (SQLException e) {
            // Catch-all for other exceptions
            e.printStackTrace();
        }
    }
}

另外也可以通过jdbc连接串来实现:

jdbc:vertica://192.168.111.25:5433/DBname?ConnectionLoadBalance=1&BackupServerNode=192.168.111.12:5433,192.168.111.13:5433

其中ConnectionLoadBalance是vertica的负载均衡,如果在库中没有开启该功能的话,此时是没有作用的,不影响。
开启ConnectionLoadBalance的话,需要管理员账户

SELECT SET_LOAD_BALANCE_POLICY('ROUNDROBIN');

取消该功能:

SELECT SET_LOAD_BALANCE_POLICY('NONE');

查询是否开启:

SELECT GET_LOAD_BALANCE_POLICY();

通过这次设置,加了几个备用连接节点,确保业务正常。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

分享到:
评论

相关推荐

    vertica jdbc 驱动driver

    Connection conn = DriverManager.getConnection("jdbc:vertica...", "user", "password"); ``` 4. **执行SQL**:通过`Statement`或`PreparedStatement`对象执行SQL查询。`Statement`用于执行静态SQL,而`...

    vertica数据库的连接jar包

    Java连接数据vertica数据库 就可以连接数据库 import java.sql.*; import java.util.Properties;... conn = DriverManager.getConnection("jdbc:vertica://172.19.1.135:5433/DB_vertica", myProp);

    vertica jdbc driver 驱动下载

    - **事务管理**:利用JDBC的`Connection`对象进行事务的开始、提交和回滚。 - **连接池管理**:为了提高性能和资源利用率,可以使用连接池(如C3P0、HikariCP等)来管理和复用数据库连接。 - **错误处理**:捕获并...

    Vertica_9.1.x完整文档

    《Vertica 9.1.x 完整文档》是针对Vertica Analytic Database的一个详尽指南,涵盖了从安装到高级特性的全方位介绍。该文档旨在帮助用户深入理解Vertica的功能和工作原理,以便更好地利用其进行数据分析和管理。 在...

    HP Vertica Essentials

    《HP Vertica Essentials》是关于HP Vertica列式数据库的详细指南书籍。Vertica作为一款列式数据库系统,被HP公司收购,并在数据分析及挖掘领域展现出巨大潜力。列式数据库相比传统的关系型数据库,在处理列式数据...

    HP_Vertica数据库从入门到精通

    文档还提供了关于Vertica数据库备份和恢复的详细指导,包括全备份、增量备份、对象级备份和灾难恢复的最佳实践。 在数据加载方面,文档解释了TUPLEMOVER的工作原理,包括TMmoveout和TMmergeout过程以及性能优化。它...

    vertica windows客户端

    **标题:“Vertica Windows客户端”** **描述:**Vertica是一种高性能的多处理(MPP)数据库系统,由美国HP公司收购。它以其出色的查询速度、大规模数据处理能力和高可用性而受到赞誉。作为Vertica的客户端,它为用户...

    c#实现Vertica数据库的连接及各类操作

    在C#中与Vertica数据库进行交互是一种常见的需求,特别是在.NET开发环境中。Vertica是一个高性能、高度可扩展的关系型数据库管理系统,尤其适用于大数据分析。本文将深入探讨如何使用C#来实现对Vertica数据库的连接...

    Vertica用户手册9.2

    《Vertica用户手册9.2》提供了关于Vertica Community Edition (CE) 的详细指导,这是一个分析数据库,旨在帮助用户理解如何下载、安装、启动Vertica的社区版虚拟机(VM),以及如何在该虚拟机上创建和管理集群及...

    vertica-jdbc-9.2.1-0.jar

    You can download the Vertica drivers here: https://my.vertica.com/download/vertica/client-drivers/ Once you have the files you want (i.e. vertica-jdbc-9.2.1-0.jar) you should be able to run a ...

    Vertica 分析型数据库完全参考文档

    Vertica Documentation - Vertica Analytic Database Contents Vertica® 9.1.x Documentation 5 Vertica 9.1.x Supported Platforms 11 Vertica 9.1.x New Features and Changes 39 Vertica Concepts 64 ...

    vertica 8.1 完整文档

    根据给定文件信息,我们将详细探讨HPE Vertica Analytics Platform版本8.1的相关知识点,这一版本的Vertica是适用于大规模并行处理(MPP)数据库架构的分析平台。由于文件信息中包含了文档的标题、描述和部分内容,...

    Vertica_9.1文档

    Vertica 9.1版本的官方文档是Micro Focus公司发布的Vertica分析数据库的指南,它提供了从配置到使用的一系列信息和细节。Vertica是一个列式数据库管理系统,专门设计用来进行大规模的数据分析,具备高性能和可伸缩性...

    vertica文档

    对于开发人员,文档中的API参考章节尤为重要,它提供了关于SQL扩展、存储过程、UDX(用户自定义函数)的详细说明,帮助开发者利用Vertica的强大功能构建定制化的数据处理逻辑。同时,文档还可能涵盖与各种编程语言...

    Vertica 7 JAVA SDK

    这份文档提供了关于**Vertica 7 JAVA SDK**的详细说明,包括了类层次结构、类索引、类列表以及类文档等内容,旨在帮助开发者更好地理解和使用该SDK。 #### 知识点详解 ##### Hierarchical Index(类层次结构) - ...

    Vertica 常用操作说明 v1

    - 如果在当前用户的 `.bash_profile` 文件中还没有关于 `VSQL` 的配置,则进行添加。 - 配置内容包括设置 `VSQLARGS` 和 `VSQL` 变量,以简化从Shell环境中使用 `vsql` 工具的命令格式。 ```sh if [ 0 -eq `grep...

    vertica中文手册(7.2)

    HPE Vertica分析型数据库是一款高性能、大规模并行处理的列式数据库管理系统。它设计用于实时分析和管理海量数据集,支持大数据分析应用,适用于数据仓库、商业智能(BI)以及机器学习分析等场景。下面我们将从手册中...

    Introduction Vertica Architecture_Overview

    Vertica数据库是由HP实验室开发的高性能分析型数据库管理系统,其设计主要用于处理大型数据仓库工作负载。Vertica在数据存储、索引和查询执行方面使用了列式存储架构,这使其在执行复杂的分析查询时比传统的行式存储...

    Vertica_technology

    Vertica是一款高性能的数据库软件,被设计用于处理和分析海量数据。Vertica数据库的基本原理是将数据结构化为表格、字段和记录,从而保证了数据的规范化存储。它可以在普通的硬件设备上运行,如Linux系统。支持的...

    vertica jdbc驱动

    vertica jdbc驱动

Global site tag (gtag.js) - Google Analytics