ttGridRollout

ttGridRolloutユーティリティは、TimesTenインストールのinstallation_dir/tt22.1.1.21.0/binディレクトリから実行され、1つのデータベース定義を伴う新しいグリッドを作成します。データベースは作成およびロードされ、その分散が構成された後、オープンされます。

このユーティリティは、作成するグリッドのユーザー定義パラメータおよび属性が含まれている構成ファイルを読み取ります。TimesTenに付属する構成テンプレートをコピーして変更できます。

グリッドの形状、使用するホスト、管理インスタンスの数(1つまたは2つ)、データ・インスタンスの数などの設定を指定できます。デフォルトでは、ホスト、管理インスタンスおよびデータ・インスタンスを指定しない場合、指定した形状に適した単一の管理インスタンスと数多くのデータ・インスタンスがローカル・ホストに作成されます。

必要に応じて、指定した他のホストにttGridRolloutの実行元のインストールをコピーして、追加のデータ・インスタンスと、1つのスタンバイ管理インスタンスを作成できます。2つの管理インスタンスを指定する場合は、最初のものがローカル・ホストに存在する必要があります。

ttGridRolloutユーティリティは、ttGridAdminユーティリティ(同じく、最初の管理インスタンスにttInstanceCreateを使用)のラッパーであり、ttGridRolloutによって実行されたアクションをttGridAdminで必要に応じて直接実行できます。ttGridRolloutでグリッドを作成したら、ttGridAdminを使用してそれを保守し、変更を加えます。

ttGridRolloutユーティリティは、通常、サンプル・グリッドや、製品の設計および評価中に使用されるグリッドを作成するために使用します。

ノート:

このユーティリティは、正確に「ttGridRollout」と記入して実行します(たとえば、「ttgridrollout」などにしないでください)。

必要な権限

このユーティリティを実行するユーザーは作成されたすべてのインスタンスのインスタンス管理者になり、ユーザーのプライマリ・ユーザー・グループはTimesTenユーザー・グループになります。

どこにインストールおよびインスタンスを作成する場合でも、ファイル・システムへの書込み権限が必要です。

TimesTen ScaleoutおよびTimesTen Classicでの使用

このユーティリティは、TimesTen Scaleoutで特に使用されます。

構文

ttGridRollout [-h | -help | -?]
ttGridRollout [-n | -dry-run] [-wait n] [-timeout n] conf_file

オプション

ttGridRolloutには次のオプションがあります。

オプション 説明

-h

-help

-?

ヘルプ情報を表示します。

conf_file

グリッドおよびデータベースを作成するためのパラメータが含まれている構成ファイルを指定します。

読取り専用のテンプレート(ttgrid.conf.example)は、installation_dir/tt22.1.1.21.0/grid/confディレクトリにあります。このファイルをコピーおよび変更して、構成を設定できます。

-n | -dry-run

実行するコマンドを表示しますが、実行はしません。指定したその他のオプションは、実行するコマンドの表示に反映されます。

ノート: コマンドを実行する前にこれを行うことをお薦めします。

-wait n

ttGridRolloutが戻る前に、データベースの状態が完了に変化することを待機する時間を指定します。デフォルトでは、待機時間に制限はありません。

(作成、ロード、オープンなどTimesTen Scaleoutのデータベース操作によって状態の変更が開始され、それがグリッドのアクティブ管理インスタンスに記録されます。グリッドの各インスタンスでデータベース操作が完了すると、状態の変更が完了します。)

-timeout n

実行時間の長い操作の完了を待機する最大秒数。デフォルトは600です。

ノート:

-waitオプションは、データベース操作にのみ適用されます。-timeoutオプションは、任意の操作に適用されます。これらのオプションは、ttGridAdminに渡されます。

「コマンドのタイムアウトと待機」も参照してください。

構成ファイル・パラメータ

次の表では、ttGridRollout構成ファイル(慣例によりttgrid.confという名前)でサポートされている構成パラメータについて説明します。

ノート:

これらのパラメータは、構成ファイルで必須です。

  • grid_name

  • dbdef_file

  • shape (必要に応じてdata_hostsとともに)またはdata_instances

  • instance_location

  • zoo_conf (すべてのTimesTenインスタンスおよびメンバーシップ・サーバーがローカル・ホスト上にある場合を除く)

パラメータ 説明

cs_connect_files

必要に応じて、クライアント/サーバー接続可能オブジェクトの接続可能オブジェクト・ファイル(.connect)。複数の.connectファイルをカンマで区切って指定できます。例:

cs_connect_files = client1.connect, client2.connect

接続可能オブジェクト・ファイルの詳細は、「接続可能オブジェクトの作成(connectableCreate)」を参照してください。

data_hosts

データ・インスタンスに使用されるホストのエントリのリスト(JSON形式)。

必要に応じてこれをshapeとともに使用します(またshapeなしでは使用できない場合もあります)。

data_hostsdata_instancesを一緒に使用しないでください。

NxKグリッドに十分なホストを指定しない場合(shapeの説明を参照)、ttGridRolloutは指定したホスト・リストの開始にループ・バックし、必要な数のホストに追加のインスタンスを配置します。指定したホストの数が多すぎる場合は、最初のNxKホストのみが使用されます。

このパラメータは、addressexternalAddressinternalAddressinstallation_locationinstance_locationの各属性をサポートしています。デフォルト値の情報は、「構成ファイル・パラメータの属性」を参照してください。

アドレスの指定は必須です。addressを指定するか、externalAddressinternalAddressを指定します。

:

data_hosts = [
{ "internalAddress":"tthost1-priv", 
"externalAddress":"tthost1.example.com", 
"installation_location":"/u01/tthost1/TimesTen" }, 
{ "internalAddress":"tthost2-priv", 
"externalAddress":"tthost2.example.com", 
"installation_location":"/u01/tthost2/TimesTen" }, 
{ "internalAddress":"tthost3-priv", 
"externalAddress":"tthost3.example.com", 
"installation_location":"/u01/tthost3/TimesTen" }, 
{ "internalAddress":"tthost4-priv", 
"externalAddress":"tthost4.example.com", 
"installation_location":"/u01/tthost4/TimesTen" } 
]

ノート: shapeに関するノートを参照してください。

data_instances

データ・インスタンスのエントリのリスト(JSON形式)。このパラメータでは、データ領域グループ、ホスト名、インスタンス名、デーモン・ポート番号およびクライアント/サーバー・ポート番号を指定できます。

data_instancesshapeまたはdata_hostsと一緒に使用することはできません。(shapedata_hostsとともにまたはなしで指定するか、data_instancesを指定します。)

このパラメータは、addressexternalAddressinternalAddresshostinstancedataSpaceGroupdaemonportcsportinstallation_locationinstance_locationの各属性をサポートしています。デフォルト値の情報は、「構成ファイル・パラメータの属性」を参照してください。

グリッドの形状は、dataSpaceGroup設定によって決まります。データ領域グループを指定しない場合、グリッドは1つのデータ領域グループを持つNx1になります。

アドレスの指定は必須です。addressを指定するか、externalAddressinternalAddressを指定します。

:

data_instances = [
{ "internalAddress":"tthost1-priv", 
"externalAddress":"tthost1.example.com", 
"dataspacegroup":1, "daemonport":50001, "csport":50002 }, 
{ "internalAddress":"tthost2-priv", 
"externalAddress":"tthost2.example.com", 
"dataspacegroup":1, "daemonport":50001, "csport":50002 }, 
{ "internalAddress":"tthost3-priv", 
"externalAddress":"tthost3.example.com", 
"dataspacegroup":2, "daemonport":50001, "csport":50002 }, 
{ "internalAddress":"tthost4-priv", 
"externalAddress":"tthost4.example.com", 
"dataspacegroup":2, "daemonport":50001, "csport":50002 } 
]

ノート:

  • ホスト・オブジェクトは、インスタンスごとに作成されます。ただし、2つのデータ・インスタンスを同じシステムおよび同じデータ領域グループに指定した場合を除きます。その場合、これらは同じホスト・オブジェクトを共有します。

  • インストール・オブジェクトは、ホスト・オブジェクトごとに作成されます。複数のインストール・オブジェクトが同じ物理インストールを指すことができます。

dbdef_file

データベース定義ファイル(.dbdef)。これは必須です。

ディレクトリは、各ホストで必要に応じてDataStoreの場所およびLogDirの場所に対して作成されます。

データベース定義ファイルの詳細は、「データベース定義の作成(dbdefCreate)」を参照してください。

direct_connect_files

必要に応じて追加する直接接続可能オブジェクトの接続可能オブジェクト・ファイル(.connect)。ただし、データベースの作成時に自動的に作成される接続可能オブジェクトを除きます。複数の.connectファイルをカンマで区切って指定できます。例:

direct_connect_files = mydbcfg1.connect, mydbcfg2.connect

接続可能オブジェクト・ファイルの詳細は、「接続可能オブジェクトの作成(connectableCreate)」を参照してください。

grid_name

グリッドの目的の名前。これは必須です。

init_script

グリッドのロールアウト(最初に作成したデータ・インスタンスを使用)後にttGridRolloutがデータベースに対して実行するSQLスクリプト(ttIsqlスクリプト)。たとえば、スクリプトにはデータベースのユーザーおよびスキーマを作成するためのSQL文が含まれる場合があります。

installation_location

スタンバイ管理インスタンス(該当する場合)およびデータ・インスタンスがあるシステム上でTimesTenインストールを配置する親ディレクトリへのパス。tt22.1.1.21.0ディレクトリは、この場所の真下にあります。このディレクトリは、必要に応じて各ホストに作成されます。既存の場所を指定する場合、ディレクトリは空である必要があります。

デフォルトでは、ttGridRolloutの実行元であるローカル・ホスト上のインストールと同じ場所が使用されます。

この場所は、data_hostsdata_instancesまたはmgmt_instancesパラメータのinstallation_location属性を設定して特定のホストまたはインスタンス用に上書きした場合を除き、グリッド全体で使用されます。

instance_config

インスタンス構成に追加する設定のname=valueのペアで構成される、データ・インスタンスのカスタム構成ファイル。

これを行うには、ttGridAdmin instanceConfigImportコマンドを使用します。「インスタンス構成属性のインポート(instanceConfigImport)」も参照してください。

instance_location

TimesTenインスタンス(データおよび管理)の親ディレクトリへのパス。これは必須です。インスタンスごとに、timesten_homeディレクトリはこの場所の下にあるinstancenameという名前になります。このディレクトリは、必要に応じて各ホストに作成されます。

この場所は、data_hostsdata_instancesまたはmgmt_instancesパラメータのinstance_location属性を設定して特定のホストまたはインスタンス用に上書きした場合を除き、グリッド全体で使用されます。

mgmt_instances

管理インスタンスのエントリのリスト(JSON形式)。最初のエントリはローカル・ホスト上にある必要があり、これがアクティブ管理インスタンスになります。2つ目のエントリ(該当する場合)は別のシステムに存在する必要があり、これがスタンバイ管理インスタンスになります。

mgmt_instancesを設定しない場合、ttGridRolloutはローカル・ホストに1つの管理インスタンスを作成します。

このパラメータは、addressexternalAddressinternalAddresshostinstancedaemonportcsportmgmtportinstallation_locationinstance_locationの各属性をサポートしています。デフォルト値の情報は、「構成ファイル・パラメータの属性」を参照してください。

アドレスの指定は必須です。addressを指定するか、externalAddressinternalAddressを指定します。

:

mgmt_instances = [
{ "internalAddress":"tthost1-priv", 
"externalAddress":"tthost1.example.com" }, 
{ "internalAddress":"tthost2-priv", 
"externalAddress":"tthost2.example.com" } 
]

ノート:

  • ホスト・オブジェクトとインストール・オブジェクトはインスタンスごとに作成されます。

shape

グリッドの目的の形状NxK。それぞれの意味は次のとおりです。

  • Nは、各データ領域グループ内のインスタンスの数です。

  • Kは、グリッドのKファクタ(レプリケーション・ファクタ)であり、データ領域グループの数(1、2、3、4または5)と定義されています。

shapedata_hostsとともにまたはなしで指定するか、data_instancesを指定します。data_hostsなしでshapeを使用すると、すべてのTimesTenインスタンスがローカル・ホストに配置されます。

NxKグリッドのshapeを指定した場合、NxKインスタンスが作成されます(4x2グリッドの8個のインスタンスなど)。最初のN個のインスタンスがデータ領域グループ1に属し、k=2の場合、次のN個のデータ・インスタンスがデータ領域グループ2に属します。

ノート:

  • ホスト・オブジェクトは、インスタンスごとに作成されます。ただし、2つのデータ・インスタンスが同じシステムおよび同じデータ領域グループにある場合を除きます。その場合、これらは同じホスト・オブジェクトを共有します。

  • DNS名としてホスト・アドレスを指定した場合、デフォルトのホスト・オブジェクト名はアドレスに従ったものになります(たとえば、アドレスmysys1.example.comの場合はmysys1で、同じシステムに2つ目のホスト・オブジェクトがある場合にはこれに_2が付加されます。管理インスタンスのホストの場合はmysys1_mgmtになります)。IPアドレスとしてアドレスを指定した場合、デフォルトのホスト・オブジェクト名は順次host_nになります。

  • インストール・オブジェクトは、ホスト・オブジェクトごとに作成されます。複数のインストール・オブジェクトが同じ物理インストールを指すことができます。

  • ttGridRolloutがインスタンスを作成すると、名前はinstance1instance2instance3というようになります。

sqlnet_config

SQL*Net構成ファイル(ttLoadFromOracle、OCI、Pro*C/C++またはODP.NETを介したOracleデータベースとの通信に使用)。

ttGridAdmin SQLNetImportコマンドを介して、ttGridRolloutはすべてのデータ・インスタンスで指定されたSQL*Net構成を適用します。「sqlnetファイルのエクスポート(SQLNetExport)」も参照してください。

tnsnames_config

TNS名構成ファイル(ttLoadFromOracle、OCI、Pro*C/C++またはODP.NETを介したOracleデータベースとの通信に使用)。

ttGridAdmin TNSNamesImportコマンドを介して、ttGridRolloutはすべてのデータ・インスタンスで指定されたTNS名構成を適用します。「TNS名のインポート(TNSNamesImport)」も参照してください。

zoo_conf

Apache ZooKeeperメンバーシップ・サービス・クライアント構成ファイル。すべての管理インスタンス、データ・インスタンスおよびZooKeeperメンバーシップ・サーバーがローカル・ホスト上にある場合を除き、このパラメータは必須です。

ZooKeeperクライアント構成ファイルの例は、「メンバーシップ操作」を参照してください。ZooKeeperをメンバーシップ・サービスとして構成する方法の詳細は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』「メンバーシップ・サービスとしてのApache ZooKeeperの使用方法」を参照してください。

このパラメータを指定しない場合、ttGridRolloutでは、ZooKeeperサーバーが、デフォルトのクライアント・ポート設定2181を使用して、ローカル・ホストですでに実行されていると想定します。

構成ファイル・パラメータの属性

ttGridRollout構成パラメータは、次の属性をサポートしています。各パラメータでサポートされている属性を確認するには、前にあげたパラメータの表を参照してください。

属性 説明

address

外部通信と内部通信の両方用のシステムのDNS名またはIPアドレス(単一のアドレスが使用されている場合)。addressを使用するか、internalAddressおよびexternalAddressを使用します。-address xxxを設定することは、-internalAddress xxxおよび-externalAddress xxxを設定することとまったく同じです。

このオプションには1つの名前またはアドレスのみを指定するため、指定した名前は1つのIPアドレスか、同じネットワーク・セグメント上にある複数のIPアドレスに解決される必要があります。

/etc/hostsからホスト名を使用する場合、グリッド内のすべてのインスタンスにある/etc/hostsファイルでは、グリッド内のすべてのホストに対するエントリが同じ内容である必要があります。

ノート: 本番環境で単一のアドレスを使用することはお薦めしません。

「アドレス形式」も参照してください。

csport

クライアント/サーバー接続用のポート。

これをデータ・インスタンスに対して指定しなかった場合、ttGridRolloutは46337から46997の範囲の使用可能なポートを使用します。

これを管理インスタンスに対して指定しなかった場合、ttGridRolloutはTimesTenのデフォルトのクライアント/サーバー・ポート6625を使用することを試みます。

daemonport

TimesTenデーモン通信用のポート。

これをデータ・インスタンスに対して指定しなかった場合、ttGridRolloutは46337から46997の範囲の使用可能なポートを使用します。

これを管理インスタンスに対して指定しなかった場合、ttGridRolloutはTimesTenのデフォルトのデーモン・ポート6624を使用することを試みます。

dataSpaceGroup

目的のデータ領域グループ(1、2、3、4または5)。デフォルトはデータ領域グループ1です。

data_instancesパラメータを使用する場合は、この属性を使用して、インスタンスのデータ領域グループを指定します。

externalAddress

クライアント/サーバー接続を対象とした、グリッドの外部にある、外部通信用のシステムのDNS名またはIPアドレス。addressを使用するか、internalAddressおよびexternalAddressを使用します。-internalAddress xxxおよび-externalAddress xxxを設定することは、-address xxxを設定することとまったく同じです。

このオプションには1つの名前またはアドレスのみを指定しますが、1つの名前が1つ以上のIPアドレスに解決されることがあります。

/etc/hostsからホスト名を使用する場合、グリッド内のすべてのインスタンスにある/etc/hostsファイルでは、グリッド内のすべてのホストに対するエントリが同じ内容である必要があります。

「アドレス形式」も参照してください。

host

グリッド・モデルのホスト・オブジェクトの目的の名前。

ノート: DNS名としてホスト・アドレスを指定した場合、デフォルトのホスト・オブジェクト名はアドレスに従ったものになります(たとえば、アドレスmysys1.example.comの場合はmysys1で、同じシステムに2つ目のホスト・オブジェクトがある場合にはこれに_2が付加されます。管理インスタンスのホストの場合はmysys1_mgmtになります)。IPアドレスとしてアドレスを指定した場合、デフォルトのホスト・オブジェクト名は順次host_nになります。

installation_location

ホストまたはインスタンスのグリッド全体のinstallation_location設定を上書きします。詳細は、「構成ファイル・パラメータ」の「installation_location」を参照してください。

instance

data_instancesまたはmgmt_instancesパラメータを(必要に応じて)使用する場合は、この属性を使用してインスタンス名を指定できます。

あるいは、データ・インスタンスの場合、ttGridRolloutはインスタンスにinstance1instance2instance3というように名前を付けます。

あるいは、管理インスタンスの場合、ttGridRolloutはインスタンスgridname_mgmtおよびgridname_mgmt2 (2つ目の管理インスタンスがある場合)に名前を付けます。

instance_location

ホストまたはインスタンスのグリッド全体のinstance_location設定を上書きします。詳細は、「構成ファイル・パラメータ」の「instance_location」を参照してください。

internalAddress

内部通信用のDNS名またはIPアドレス(グリッド内)。addressを使用するか、internalAddressおよびexternalAddressを使用します。-internalAddress xxxおよび-externalAddress xxxを設定することは、-address xxxを設定することとまったく同じです。

このオプションには1つの名前またはアドレスのみを指定するため、指定した名前は1つのIPアドレスか、同じネットワーク・セグメント上にある複数のIPアドレスに解決される必要があります。

/etc/hostsからホスト名を使用する場合、グリッド内のすべてのインスタンスにある/etc/hostsファイルでは、グリッド内のすべてのホストに対するエントリが同じ内容である必要があります。

「アドレス形式」も参照してください。

mgmtport

管理インスタンス通信用のポート。

これを指定しなかった場合、ttGridRolloutはTimesTenのデフォルトの管理ポート3754を使用することを試みます。

server_encryption

データベースでクライアント/サーバー接続の暗号化が必要かどうかを決定します。次のいずれかの設定を指定します。

  • accepted: クライアントによって必要とされる場合またはリクエストされた場合は、暗号化されたセッションを有効にします。それ以外の場合は、暗号化されていないセッションを使用します。これはデフォルトです。

  • rejected: 暗号化されていないセッションを要求します。(サーバーが暗号化をサポートしていない場合、TimesTenは、これがサーバー上の設定であるかのように動作します。)クライアントが暗号化を必要とする場合、接続は拒否されます。

  • requested: クライアントで許可されている場合は暗号化されたセッションをリクエストします(クライアントでrejected以外の設定が使用されている場合)。それ以外の場合は暗号化されていないセッションを使用します。

  • required: 暗号化されたセッションを要求します。クライアントが暗号化を拒否している場合、接続を拒否します。

server_cipher_suites

クライアントの設定に応じて、データベースがTLSに使用できる暗号スイートをリストします。これらのスイートの1つまたは両方を(カンマ区切りで望ましい順に)指定します。

  • SSL_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

  • SSL_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

デフォルト設定はありません。TLSを使用するには、サーバーおよびクライアント設定に1つ以上の共通スイートが含まれている必要があります。

この項では、様々なタイプの構成にしたttGridRolloutの3つの例を示します。

  • data_hostsを指定しないshapeパラメータ。管理インスタンスが1つの2x2グリッドを構成します。すべてがローカル・ホストにあります

  • data_hostsを指定したshapeパラメータ。管理インスタンスが1つある2x2グリッドを4つのシステムに構成します。その管理インスタンスと1つのデータ・インスタンスがローカル・ホストにあります

  • data_instancesパラメータ。管理インスタンスが2つの3x2グリッドを8つのシステムに構成します。最初の管理インスタンスがローカル・ホストにあります

各例には、構成、実行されるttGridAdminコマンドを示すテスト実行出力、実行出力の一部などが含まれています。各例では、mysys1がローカル・ホストです。テスト実行出力は、読みやすいように編集されています。(最初の管理インスタンスを作成するためのttInstanceCreateユーティリティは、インストール先のbinディレクトリへのフルパスを介して実行されます。ttGridAdminは、最初の管理インスタンスのbinディレクトリにあるTimesTen ttenv環境設定スクリプトへのフルパスを介して実行されます。)

追加の例は、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』「グリッドおよびデータベースのデプロイ」を参照してください。

data_hostsを指定しないshape: このシナリオは、スタンドアロン開発に便利です。

構成:

dbdef_file = /sw/tten/dbdef/database1.dbdef
shape = 2x2
zoo_conf = /sw/tten/zkconfig/membership.conf
grid_name = grid1
instance_location = /sw/tten/grid1/ttinstances

テスト実行:

% ./ttGridRollout -dry-run /sw/tten/gridconfig/ttgrid1.conf
ttInstanceCreate -grid -location /sw/tten/grid1/ttinstances -name grid1_mgmt
ttGridAdmin gridCreate grid1 -k 2 -host mysys1_mgmt -address mysys1
 -membershipConfig /sw/tten/zkconfig/membership.conf
ttGridAdmin hostCreate mysys1 -address mysys1 -dataspacegroup 1
ttGridAdmin installationCreate mysys1 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys1_2 -address mysys1 -dataspacegroup 2
ttGridAdmin installationCreate mysys1_2 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin instanceCreate mysys1.instance1 -location /sw/tten/grid1/ttinstances
 -daemonport 46337 -csport 46338
ttGridAdmin instanceCreate mysys1.instance2 -location /sw/tten/grid1/ttinstances
 -daemonport 46339 -csport 46340
ttGridAdmin instanceCreate mysys1_2.instance3 -location /sw/tten/grid1/ttinstances
 -daemonport 46341 -csport 46342
ttGridAdmin instanceCreate mysys1_2.instance4 -location /sw/tten/grid1/ttinstances
 -daemonport 46343 -csport 46344
ttGridAdmin dbdefCreate /sw/tten/dbdef/database1.dbdef
ttGridAdmin modelApply
ttGridAdmin dbCreate -wait database1
ttGridAdmin dbDistribute database1 -add all -apply
ttGridAdmin dbOpen -wait database1

実行:

% ./ttGridRollout /sw/tten/gridconfig/ttgrid1.conf
INFO: Generating data_instances for 2x2 Grid
data_instances = [
 { "address":"mysys1", "dataspacegroup":1 },
 { "address":"mysys1", "dataspacegroup":1 },
 { "address":"mysys1", "dataspacegroup":2 },
 { "address":"mysys1", "dataspacegroup":2 }
]
INFO: Checking Zookeeper on zk1!2181 -- OK
INFO: Checking Zookeeper on zk2!2181 -- OK
INFO: Checking Zookeeper on zk3!2181 -- OK
INFO: Checking the address for the management database -- OK
INFO: Checking connectivity to mysys1 -- OK
 
================================================================================
 
...
 
================================================================================
4-instance (2x2) grid successfully created.
 
Management Instance Location
----------------------------
- mysys1:/sw/tten/grid1/ttinstances/grid1_mgmt
 
...
 
Data Instance Locations
-----------------------
- mysys1.instance1 ==> mysys1:/sw/tten/grid1/ttinstances/instance1
- mysys1.instance2 ==> mysys1:/sw/tten/grid1/ttinstances/instance2
- mysys1_2.instance3 ==> mysys1:/sw/tten/grid1/ttinstances/instance3
- mysys1_2.instance4 ==> mysys1:/sw/tten/grid1/ttinstances/instance4
 
...

data_hostsを指定したshape: このシナリオは、複数のシステムで初期テストを実行する場合に役立ちます。

構成:

dbdef_file = /sw/tten/dbdef/database1.dbdef
shape = 2x2
zoo_conf = /sw/tten/zkconfig/membership.conf
grid_name = grid1
instance_location = /sw/tten/grid1/ttinstances
data_hosts = [
  { "internalAddress":"mysys1-i", "externalAddress":"mysys1.example.com" },
  { "internalAddress":"mysys2-i", "externalAddress":"mysys2.example.com" },
  { "internalAddress":"mysys3-i", "externalAddress":"mysys3.example.com" },
  { "internalAddress":"mysys4-i", "externalAddress":"mysys4.example.com" }
]

テスト実行:

% ./ttGridRollout -dry-run /sw/tten/gridconfig/ttgrid1.conf
ttInstanceCreate -grid -location /sw/tten/grid1/ttinstances -name grid1_mgmt
ttGridAdmin gridCreate grid1 -k 2 -host mysys1_mgmt -address mysys1
 -membershipConfig /sw/tten/zkconfig/membership.conf
ttGridAdmin hostCreate mysys1 -externaladdress mysys1.example.com
 -internaladdress mysys1-i -dataspacegroup 1
ttGridAdmin installationCreate mysys1 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys2 -externaladdress mysys2.example.com
 -internaladdress mysys2-i -dataspacegroup 1
ttGridAdmin installationCreate mysys2 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys3 -externaladdress mysys3.example.com
 -internaladdress mysys3-i -dataspacegroup 2
ttGridAdmin installationCreate mysys3 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys4 -externaladdress mysys4.example.com
 -internaladdress mysys4-i -dataspacegroup 2
ttGridAdmin installationCreate mysys4 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin instanceCreate mysys1.instance1 -location /sw/tten/grid1/ttinstances
 -daemonport 46337 -csport 46338
ttGridAdmin instanceCreate mysys2.instance2 -location /sw/tten/grid1/ttinstances
 -daemonport 46339 -csport 46340
ttGridAdmin instanceCreate mysys3.instance3 -location /sw/tten/grid1/ttinstances
 -daemonport 46341 -csport 46342
ttGridAdmin instanceCreate mysys4.instance4 -location /sw/tten/grid1/ttinstances
 -daemonport 46343 -csport 46344
ttGridAdmin dbdefCreate /sw/tten/dbdef/database1.dbdef
ttGridAdmin modelApply
ttGridAdmin dbCreate -wait database1
ttGridAdmin dbDistribute database1 -add all -apply
ttGridAdmin dbOpen -wait database1

実行:

% ./ttGridRollout /sw/tten/gridconfig/ttgrid1.conf
INFO: Generating data_instances for 2x2 Grid
data_instances = [
 { "externaladdress":"mysys1.example.com", "internaladdress":"mysys1-i",
 "dataspacegroup":1 },
 { "externaladdress":"mysys2.example.com", "internaladdress":"mysys2-i",
 "dataspacegroup":1 },
 { "externaladdress":"mysys3.example.com", "internaladdress":"mysys3-i",
 "dataspacegroup":2 },
 { "externaladdress":"mysys4.example.com", "internaladdress":"mysys4-i",
 "dataspacegroup":2 }

]
INFO: Checking Zookeeper on zk1!2181 -- OK
INFO: Checking Zookeeper on zk2!2181 -- OK
INFO: Checking Zookeeper on zk3!2181 -- OK
INFO: Checking the address for the management database -- OK
INFO: Checking connectivity to mysys1 -- OK
INFO: Checking connectivity to mysys1-i -- OK
INFO: Checking connectivity to mysys2-i -- OK
INFO: Checking connectivity to mysys3-i -- OK
INFO: Checking connectivity to mysys4-i -- OK
 
================================================================================
 
...
 
================================================================================
4-instance (2x2) grid successfully created.
 
Management Instance Location
----------------------------
- mysys1:/sw/tten/grid1/ttinstances/grid1_mgmt
 
...
 
Data Instance Locations
-----------------------
- mysys1.instance1 ==> mysys1-i:/sw/tten/grid1/ttinstances/instance1
- mysys2.instance2 ==> mysys2-i:/sw/tten/grid1/ttinstances/instance2
- mysys3.instance3 ==> mysys3-i:/sw/tten/grid1/ttinstances/instance3
- mysys4.instance4 ==> mysys4-i:/sw/tten/grid1/ttinstances/instance4
 
...

data_instances: このシナリオは、より現実的な概念実証テストに役立ちます。

構成:

dbdef_file = /sw/tten/dbdef/database1.dbdef
zoo_conf = /sw/tten/zkconfig/membership.conf
grid_name = grid1
instance_location = /sw/tten/grid1/ttinstances
data_instances = [
  { "internalAddress":"mysys3-i", "externalAddress":"mysys3.example.com",
 "dataspacegroup":1, "daemonport":50001, "csport":50002 },
  { "internalAddress":"mysys4-i", "externalAddress":"mysys4.example.com",
 "dataspacegroup":1, "daemonport":50001, "csport":50002 },
  { "internalAddress":"mysys5-i", "externalAddress":"mysys5.example.com",
 "dataspacegroup":1, "daemonport":50001, "csport":50002 },
  { "internalAddress":"mysys6-i", "externalAddress":"mysys6.example.com",
 "dataspacegroup":2, "daemonport":50001, "csport":50002 },
  { "internalAddress":"mysys7-i", "externalAddress":"mysys7.example.com",
 "dataspacegroup":2, "daemonport":50001, "csport":50002 },
  { "internalAddress":"mysys8-i", "externalAddress":"mysys8.example.com",
 "dataspacegroup":2, "daemonport":50001, "csport":50002 }
]
mgmt_instances = [
  { "internalAddress":"mysys1-i", "externalAddress":"mysys1.example.com" },
  { "internalAddress":"mysys2-i", "externalAddress":"mysys2.example.com" }
]

テスト実行:

% ./ttGridRollout -dry-run /sw/tten/gridconfig/ttgrid1.conf
ttInstanceCreate -grid -location /sw/tten/grid1/ttinstances -name grid1_mgmt
ttGridAdmin gridCreate grid1 -k 2 -host mysys1-i_mgmt -internalAddress mysys1-i
 -externalAddress mysys1.example.com -membershipConfig
 /sw/tten/zkconfig/membership.conf
ttGridAdmin hostCreate mysys2-i_mgmt -internalAddress mysys2-i -externalAddress
 mysys2.example.com
ttGridAdmin installationCreate mysys2-i_mgmt -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin instanceCreate mysys2-i_mgmt.grid1_mgmt2 -location
 /sw/tten/grid1/ttinstances -type management
ttGridAdmin hostCreate mysys3 -externaladdress mysys3.example.com
 -internaladdress mysys3-i -dataspacegroup 1
ttGridAdmin installationCreate mysys3 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys4 -externaladdress mysys4.example.com
 -internaladdress mysys4-i -dataspacegroup 1
ttGridAdmin installationCreate mysys4 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys5 -externaladdress mysys5.example.com
 -internaladdress mysys5-i -dataspacegroup 1
ttGridAdmin installationCreate mysys5 -location /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys6 -externaladdress mysys6.example.com -internaladdress
 mysys6-i -dataspacegroup 2
ttGridAdmin installationCreate mysys6 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys7 -externaladdress mysys7.example.com
 -internaladdress mysys7-i -dataspacegroup 2
ttGridAdmin installationCreate mysys7 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin hostCreate mysys8 -externaladdress mysys8.example.com
 -internaladdress mysys8-i -dataspacegroup 2
ttGridAdmin installationCreate mysys8 -location
 /sw/tten/grid1/ttinstall/installation1
ttGridAdmin instanceCreate mysys3.instance1 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin instanceCreate mysys4.instance2 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin instanceCreate mysys5.instance3 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin instanceCreate mysys6.instance4 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin instanceCreate mysys7.instance5 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin instanceCreate mysys8.instance6 -location /sw/tten/grid1/ttinstances
 -daemonport 50001 -csport 50002
ttGridAdmin dbdefCreate /sw/tten/dbdef/database1.dbdef
ttGridAdmin modelApply
ttGridAdmin dbCreate -wait database1
ttGridAdmin dbDistribute database1 -add all -apply
ttGridAdmin dbOpen -wait database1

実行:

% ./ttGridRollout /sw/tten/gridconfig/ttgrid1.conf
INFO: Checking Zookeeper on zk1!2181 -- OK
INFO: Checking Zookeeper on zk2!2181 -- OK
INFO: Checking Zookeeper on zk3!2181 -- OK
INFO: Checking the address for the management database -- OK
INFO: Checking connectivity to mysys1-i -- OK
INFO: Checking connectivity to mysys2-i -- OK
INFO: Checking connectivity to mysys3-i -- OK
INFO: Checking connectivity to mysys4-i -- OK
INFO: Checking connectivity to mysys5-i -- OK
INFO: Checking connectivity to mysys6-i -- OK
INFO: Checking connectivity to mysys7-i -- OK
INFO: Checking connectivity to mysys8-i -- OK
 
================================================================================
 
...
 
================================================================================
6-instance (3x2) grid successfully created.
 
Management Instance Locations
-----------------------------
- mysys1-i:/sw/tten/grid1/ttinstances/grid1_mgmt
- mysys2-i:/sw/tten/grid1/ttinstances/grid1_mgmt2
 
...
 
Data Instance Locations
-----------------------
- mysys3.instance1 ==> mysys3-i:/sw/tten/grid1/ttinstances/instance1
- mysys4.instance2 ==> mysys4-i:/sw/tten/grid1/ttinstances/instance2
- mysys5.instance3 ==> mysys5-i:/sw/tten/grid1/ttinstances/instance3
- mysys6.instance4 ==> mysys6-i:/sw/tten/grid1/ttinstances/instance4
- mysys7.instance5 ==> mysys7-i:/sw/tten/grid1/ttinstances/instance5
- mysys8.instance6 ==> mysys8-i:/sw/tten/grid1/ttinstances/instance6
 
...