はじめに
本稿では、Verticaの接続時フェイルオーバーの設定方法を詳しく解説します。接続時フェイルオーバーの概要については、こちら参照してください。
データベース側の設定
データベース側での設定は不要です。
クライアント側の設定(ODBC)
設定は以下のステップで、おこないます。
1. Vertica Clientをインストール
2. WindowsのODBC データソース アドミニストレーターで接続定義を作成
1.Vertica Clientをインストール
Verticaクライアントのセットアップ(Windows版)の手順に従って、Vertica Clientをインストールします。
2.WindowsのODBC データソース アドミニストレーターで接続定義を作成
Windowsの管理ツールから[データ ソース (ODBC)]を起動し、ユーザーDSNまたはシステムDSNでデータソースを追加します。この際、[Vertica]ドライバーを選択します。
その後、表示される VeritcaODBC DSN ConfigurationダイアログのBasic Settingsタブで接続設定を
行います。
【インストール時のインストール先とコンポーネント選択画面】
項目 | 内容 |
|---|---|
DSN Name | 任意のデータソース名称 |
Database | Verticaデータベース名 |
Server | メインとなる接続先のホスト名またはIPアドレス |
Backup Servers | サブとなる接続先のホスト名またはIPアドレス |
Port | Verticaデータベースのポート番号 |
Use Connection load balancing | ロードバランス設定の有無 |
User Name | 接続データベース・ユーザ名 |
Password | 接続データベース・ユーザ名のパスワード |
※上記以外のパラメータ項目については、マニュアルをご参照ください。
上記設定の内、Backup serversにバックアップの接続先を記載します。例えば3ノード構成で、ノード1のIPアドレスをServerに記載している場合は、Backup serversにはノード2、ノード3のIPアドレスを記載します。
【データソースの設定画面】

クライアント側の設定(JDBC)
設定は以下のステップで、おこないます。
1. Vertica JDBCドライバの配置と環境設定
2. JDBC接続プロパティの設定
1.Vertica JDBCドライバの配置と環境設定
Vertica JDBCドライバをMyVerticaからダウンロードします。
【MyVerticaでの操作内容】
1) [Product]メニューを選択
2) [Downloads]メニューを選択
3) [Client Drivers]メニューを選択
4) [All Operating Systems]内にある、Verticaバージョンのリンクを選択
※選択後、JDBCドライバ(vertica-jdbc-n.n.n-n.jar)のダウンロードが始まります。
ダウンロード後、環境に合わせてJDBCドライバを配置し、環境設定を行います。
(環境変数 CLASSPATH の設定等)
2.JDBC接続プロパティの設定
JDBCのオプションで以下のパラメータを設定します。
項目 | 内容 |
|---|---|
BackupServerNode | サブとなる接続先のホスト名またはIPアドレス |
※上記以外のプロパティ項目については、マニュアルをご参照ください。
【JDBC接続URLに記述する場合の例】
/* 設定箇所:BackupServerNode="172.16.21.12,172.16.21.13" */
jdbc:vertica://172.16.21.11:5433/vdb?ConnectionLoadBalance=1&|BackupServerNode="172.16.21.12,172.16.21.13"【Javaプログラム内に記述する場合の例】
/* 設定箇所:"BackupServerNode", "172.16.21.12,172.16.21.13" */
Properties myProp = new Properties();
myProp.put("ConnectionLoadBalance", 1);
myProp.put("BackupServerNode", "172.16.21.12,172.16.21.13");
Connection conn;
conn = DriverManager.getConnection("jdbc:vertica://172.16.21.11:5433/vdb", myProp);動作確認
クライアント側の接続時フェイルオーバーの設定が完了した後で、動作確認をおこないます。
以下は、ODBCの例を示しています。
1.サーバのシャットダウン
データソースの[Server]に設定している、サーバをシャットダウンします。
[dbadmin@v92-node2 ~]$ admintools -t stop_node -s v_vdb_node0001
*** Forcing host shutdown ***
Sending host shutdown command to '10.0.0.126'
[dbadmin@v92-node2 ~]$ admintools -t list_allnodes
Node | Host | State | Version | DB
----------------+------------+-------+-----------------+-----------
v_vdb_node0001 | 10.0.0.126 | DOWN | vertica-9.2.1.3 | vdb /* ★1号機がシャットダウンした状態 */
v_vdb_node0002 | 10.0.0.127 | UP | vertica-9.2.1.3 | vdb
v_vdb_node0003 | 10.0.0.128 | UP | vertica-9.2.1.3 | vdb2.ODBC接続テスト①
ODBCから、接続テストをおこないます。作成したデータソースの[Test connection]をクリックします。

正常に接続できることを確認します。

3.ODBC接続テスト②
※データソースの[Backup servers]が誤っている場合は、エラーが発生するので、設定を見直してください。以下は、[Backup servers]が未設定の場合の動作です。
ODBCから、接続テストをおこないます。作成したデータソースの[Test connection]をクリックします。

接続時フェイルオーバーができないため、エラーが発生します。

参考情報
接続時フェイルオーバーの概要
https://www.ashisuto.co.jp/cm/analytics-database/failover.html
ODBC Connection Failover
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/ConnectingToVertica/ClientODBC/ODBCConnectionFailover.htm
JDBC Connection Failover
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/ConnectingToVertica/ClientJDBC/JDBCConnectionFailover.htm
ADO.NET Connection Failover
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/ConnectingToVertica/ClientADO/ADONETConnectionFailover.htm
ロードバランスおよび接続時フェイルオーバー機能を使用したvsqlからの接続
https://www.ashisuto.co.jp/cm/analytics-database/vsql_lb_cf.html
検証バージョンについて
この記事の内容はVertica 9.2で確認しています。
更新履歴
2019/08/23 本記事を公開