OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

ロードバランスの設定方法

公開日:
更新日:
基本操作
#ロードバランス

はじめに

本稿では、Verticaのロードバランスの設定方法を詳しく解説します。ロードバランスの概要については、こちらを参照してください。

データベース側の設定

設定は以下のステップで、おこないます。

1. ロードバランス用パラメータの設定
2. ロードバランス用ネットワークの設定

1.ロードバランス用パラメータの設定

データベースにログインし、 set_load_balance_policy関数でロードバランスの方式(roundrobin / random)パラメータを設定します。

/* 設定例 */
dbadmin=> SELECT set_load_balance_policy('roundrobin');

/* 確認 */
dbadmin=> SELECT get_load_balance_policy();

 get_load_balance_policy
-------------------------
 roundrobin
(1 row)

2.ロードバランス用ネットワークの設定

Vertica内でサブネット設定を定義します。

/* 構文 */
CREATE SUBNET <サブネット名> WITH ‘パブリックIPアドレスのサブネット';

/* 作成例 */
dbadmin=> CREATE SUBNET public_subnet WITH '172.16.20.0'; 
CREATE SUBNET

/* 確認例 */
dbadmin=> SELECT * FROM vs_subnets;
        oid        |      name     | schema |    subnet    | address_family 
-------------------+---------------+--------+--------------+----------------
 45035996274270972 | public_subnet |      0 |  172.16.20.0 | ipv4
(1 row)

上記で作成したサブネットを、ロードバランス時にクライアントへ返却するサブネットとして定義します。

/* 構文 */
ALTER DATABASE <データベース名> EXPORT ON <サブネット名>;

/* 設定例 */
dbadmin=> ALTER DATABASE vdb EXPORT ON public_subnet; 
ALTER DATABASE 

/* 確認例 */
dbadmin=> SELECT database_name, export_subnet, load_balance_policy FROM databases;
 database_name |    export_subnet  | load_balance_policy
---------------+-------------------+---------------------
 vdb           | 45035996274270972 | roundrobin
(1 row)

クライアント側の設定(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

接続データベース・ユーザ名のパスワード

※上記以外のパラメータ項目については、マニュアルをご参照ください。

【データソースの設定画面】

クライアント側の設定(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のオプションで以下のパラメータを設定します。

項目

内容

ConnectionLoadBalance

ロードバランス設定の有無

※上記以外のプロパティ項目については、マニュアルをご参照ください。

【JDBC接続URLに記述する場合の例】

/* 設定箇所:ConnectionLoadBalance=1  */

jdbc:vertica://172.16.21.11:5433/vdb?ConnectionLoadBalance=1&|BackupServerNode="172.16.21.12,172.16.21.13"

【Javaプログラム内に記述する場合の例】

/* 設定箇所:"ConnectionLoadBalance", 1  */

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.ODBC接続テスト①

ODBCから、接続テストをおこないます。作成したデータソースの[Test connection]をクリックします。

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

2.各ノードの接続数①

各ノードに接続された数を確認します。1号機がカウントアップされました。

/* 1回目 */
dbadmin=>  SELECT node_name,count(*) FROM user_sessions  GROUP BY node_name order by node_name;
      node_name | count
----------------+-------
 v_vdb_node0001 |     7 /* ★カウントアップ */
 v_vdb_node0002 |     6
 v_vdb_node0003 |     6
(3 rows)

3.ODBC接続テスト②

ODBCから、2回目の接続テストをおこないます。作成したデータソースの[Test connection]をクリックします。

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

4.各ノードの接続数②

各ノードに接続された数を確認します。今度は、2号機がカウントアップされました。
※2号機がカウントアップされない場合は、サーバ側またはクライアント側の設定が誤っているので、見直してください。

/* 2回目 */
dbadmin=>  SELECT node_name,count(*) FROM user_sessions  GROUP BY node_name order by node_name;
      node_name | count
----------------+-------
 v_vdb_node0001 |     7
 v_vdb_node0002 |     7 /* ★カウントアップ */
 v_vdb_node0003 |     6
(3 rows)

5.ODBC接続テスト③

ODBCから、3回目の接続テストをおこないます。作成したデータソースの[Test connection]をクリックします。

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

6.各ノードの接続数③

各ノードに接続された数を確認します。今度は、3号機がカウントアップされました。

/* 3回目 */
dbadmin=>  SELECT node_name,count(*) FROM user_sessions  GROUP BY node_name order by node_name;
      node_name | count
----------------+-------
 v_vdb_node0001 |     7
 v_vdb_node0002 |     7
 v_vdb_node0003 |     7 /* ★カウントアップ */
(3 rows)

参考情報

ロードバランスの概要
https://www.ashisuto.co.jp/cm/analytics-database/load-balance.html

Connection Load Balancing
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/AdministratorsGuide/ManagingClientConnections/LoadBalancing/ConnectionLoadBalancing.htm

ロードバランスおよび接続時フェイルオーバー機能を使用したvsqlからの接続
https://www.ashisuto.co.jp/cm/analytics-database/vsql_lb_cf.html

検証バージョンについて

この記事の内容はVertica 9.2で確認しています。

更新履歴

2019/08/23 本記事を公開