最近在生产中发现vertica有个别节点老是宕机(又碰到的童鞋交流下),实际业务中有Python通过odbc连接vertica,还有Java通过jdbc连接vertica。假如你连接的那个节点正好是down的节点或者是standby节点,那么就会连接失败,程序就会报错,影响正常业务。其实vertica官方文档已经给出了解决方法,下面我们来看一下如何实现。
官方给出的代码如下:
[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
代码:
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>
相关推荐
Connection conn = DriverManager.getConnection("jdbc:vertica...", "user", "password"); ``` 4. **执行SQL**:通过`Statement`或`PreparedStatement`对象执行SQL查询。`Statement`用于执行静态SQL,而`...
Java连接数据vertica数据库 就可以连接数据库 import java.sql.*; import java.util.Properties;... conn = DriverManager.getConnection("jdbc:vertica://172.19.1.135:5433/DB_vertica", myProp);
- **事务管理**:利用JDBC的`Connection`对象进行事务的开始、提交和回滚。 - **连接池管理**:为了提高性能和资源利用率,可以使用连接池(如C3P0、HikariCP等)来管理和复用数据库连接。 - **错误处理**:捕获并...
《Vertica 9.1.x 完整文档》是针对Vertica Analytic Database的一个详尽指南,涵盖了从安装到高级特性的全方位介绍。该文档旨在帮助用户深入理解Vertica的功能和工作原理,以便更好地利用其进行数据分析和管理。 在...
《HP Vertica Essentials》是关于HP Vertica列式数据库的详细指南书籍。Vertica作为一款列式数据库系统,被HP公司收购,并在数据分析及挖掘领域展现出巨大潜力。列式数据库相比传统的关系型数据库,在处理列式数据...
文档还提供了关于Vertica数据库备份和恢复的详细指导,包括全备份、增量备份、对象级备份和灾难恢复的最佳实践。 在数据加载方面,文档解释了TUPLEMOVER的工作原理,包括TMmoveout和TMmergeout过程以及性能优化。它...
**标题:“Vertica Windows客户端”** **描述:**Vertica是一种高性能的多处理(MPP)数据库系统,由美国HP公司收购。它以其出色的查询速度、大规模数据处理能力和高可用性而受到赞誉。作为Vertica的客户端,它为用户...
在C#中与Vertica数据库进行交互是一种常见的需求,特别是在.NET开发环境中。Vertica是一个高性能、高度可扩展的关系型数据库管理系统,尤其适用于大数据分析。本文将深入探讨如何使用C#来实现对Vertica数据库的连接...
《Vertica用户手册9.2》提供了关于Vertica Community Edition (CE) 的详细指导,这是一个分析数据库,旨在帮助用户理解如何下载、安装、启动Vertica的社区版虚拟机(VM),以及如何在该虚拟机上创建和管理集群及...
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 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 ...
根据给定文件信息,我们将详细探讨HPE Vertica Analytics Platform版本8.1的相关知识点,这一版本的Vertica是适用于大规模并行处理(MPP)数据库架构的分析平台。由于文件信息中包含了文档的标题、描述和部分内容,...
Vertica 9.1版本的官方文档是Micro Focus公司发布的Vertica分析数据库的指南,它提供了从配置到使用的一系列信息和细节。Vertica是一个列式数据库管理系统,专门设计用来进行大规模的数据分析,具备高性能和可伸缩性...
对于开发人员,文档中的API参考章节尤为重要,它提供了关于SQL扩展、存储过程、UDX(用户自定义函数)的详细说明,帮助开发者利用Vertica的强大功能构建定制化的数据处理逻辑。同时,文档还可能涵盖与各种编程语言...
这份文档提供了关于**Vertica 7 JAVA SDK**的详细说明,包括了类层次结构、类索引、类列表以及类文档等内容,旨在帮助开发者更好地理解和使用该SDK。 #### 知识点详解 ##### Hierarchical Index(类层次结构) - ...
- 如果在当前用户的 `.bash_profile` 文件中还没有关于 `VSQL` 的配置,则进行添加。 - 配置内容包括设置 `VSQLARGS` 和 `VSQL` 变量,以简化从Shell环境中使用 `vsql` 工具的命令格式。 ```sh if [ 0 -eq `grep...
HPE Vertica分析型数据库是一款高性能、大规模并行处理的列式数据库管理系统。它设计用于实时分析和管理海量数据集,支持大数据分析应用,适用于数据仓库、商业智能(BI)以及机器学习分析等场景。下面我们将从手册中...
Vertica数据库是由HP实验室开发的高性能分析型数据库管理系统,其设计主要用于处理大型数据仓库工作负载。Vertica在数据存储、索引和查询执行方面使用了列式存储架构,这使其在执行复杂的分析查询时比传统的行式存储...
Vertica是一款高性能的数据库软件,被设计用于处理和分析海量数据。Vertica数据库的基本原理是将数据结构化为表格、字段和记录,从而保证了数据的规范化存储。它可以在普通的硬件设备上运行,如Linux系统。支持的...
vertica jdbc驱动