プライマリ・コンテンツに移動
Oracle® TimesTen In-Memory Database Scaleoutユーザーズ・ガイド
リリース18.1
E98636-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

A グリッドとデータベースのデプロイ例

この付録では、ttGridRolloutユーティリティを使用して、簡単なグリッドをインストールして、作成およびデプロイする方法を例示します。


ノート:



ノート:

この付録では、ttGridRolloutユーティリティを使用して、開発およびテスト用の単一のデータベースを含むグリッドを迅速にセットアップする方法を説明していますが、次のツールを使用してグリッドを構成することもできます。
  • ttGridAdminユーティリティ: コマンドラインを使用して、1つ以上のデータベースを含むグリッドをセットアップします。このユーティリティを使用して、TimesTen Scaleoutのすべての構成機能、管理機能およびモニタリング機能にアクセスできます。詳細は、グリッドの構成を参照してください。

  • Oracle SQL Developer: GUIを使用して、ttGridAdminユーティリティの機能の一部を使用できます。詳細は、Oracle SQL Developer Oracle TimesTen In-Memory Databaseサポート・ユーザーズ・ガイドのTimesTen Scaleoutの使用を参照してください。


次の各項では、TimesTen Scaleoutをインストールし、3つのメンバーシップ・サーバーをセットアップして、k2に設定してグリッド内のデータベースを構成する簡単な例を示します。このグリッド構成は、2つの管理インスタンスと6つのデータ・インスタンスで構成されます。


ノート:

この例のトポロジ内の各システム用に定義されたパラメータは、グリッドの計画で説明されているシナリオに基づいています。

TimesTen Scaleoutの前提条件

TimesTen Scaleoutをインストールして、グリッドを構成する前に、ホストが特定の前提条件を満たしていることを確認してください。

各ホストにインストールされたOSがTimesTen Scaleoutでサポートされていることの確認

グリッド内のホストとして使用する予定のシステムを把握した後、各ホストにインストールされているプラットフォームとオペレーティング・システムがTimesTen Scaleoutでサポートされていることを確認してください。すべてのホストで、同じプラットフォームおよびOSバージョン/リリースが実行されている必要があります。

TimesTen Scaleoutでサポートされているオペレーティング・システムのリストは、インストール・ディレクトリにあるOracle TimesTen In-Memory Databaseリリース・ノートを参照してください。

すべてのホストに対する同じタイム・ゾーンの構成

すべてのホストが相互に通信するために、単一の内部ネットワークを作成します。データベースへのクライアント接続は、外部ネットワークを介して処理できます(可能な場合)。

詳細は、ネットワーク要件を参照してください。

TimesTenユーザー・グループとOSユーザーの作成

TimesTenユーザー・グループのGIDと、インスタンス管理者のロールのユーザー名とUIDを作成します。これらが存在し、かつ、すべてのホスト上で同じであることを確認します。

% sudo groupadd -g 10000 timesten
% sudo useradd -u 55000 -g timesten instanceadmin
% sudo passwd instanceadmin

詳細は、TimesTenユーザー・グループとオペレーティング・システム・ユーザーの理解を参照してください。

Linuxシステムのカーネル・パラメータの設定

データ・インスタンスが存在するすべてのホスト上で、システム・カーネルの次のパラメータを設定します。これらの値は、データベース要件に基づいています。

% sudo vi /etc/sysctl.conf

...
kernel.shmmax=51539607552
kernel.shmall=14680064
vm.nr_hugepages=24576
vm.hugetlb_shm_group=10000
...

変更を加えたすべてのホストでシステムを再起動することなく、これらの設定を有効にします。HugePagesパラメータの効果が完全に反映されるようにするには、システムの再起動が必要になる場合があることを考慮してください。

sudo /sbin/sysctl -p

これらのパラメータの値を計算する方法の詳細は、shmmaxおよびshmallの構成およびHugePagesの構成を参照してください。

インスタンス管理者のmemlock設定の設定

各ホストの共有メモリー・セグメントに基づいて、インスタンス管理者に対して推奨されるmemlock設定を設定します。

% sudo vi /etc/security/limits.conf

...
instanceadmin soft   memlock 50331648
instanceadmin hard   memlock 50331648
...

これらのパラメータの値を計算する方法の詳細は、memlock設定の変更を参照してください。

セマフォ値の設定

データベースの要件に基づいて、すべてのホスト上でシステム・カーネルのセマフォ値を設定します。

% sudo vi /etc/sysctl.conf

...
kernel.sem = 4000 400000 2000 2560
...

変更を加えたすべてのホスト上でシステムを再起動することなく、この設定を有効にします。

sudo /sbin/sysctl -p

このパラメータの値を計算する方法の詳細は、セマフォ値の設定を参照してください。

TimesTen Scaleoutのインストール

アクティブ管理インスタンスのホスト用に定義した場所に、TimesTen Scaleoutのディストリビューションを解凍します。この例では、この場所はhost1ホスト上の/gridディレクトリです。TimesTen Scaleoutでは、グリッド作成時の管理インスタンスのインストール場所として、/grid/tt18.1.4.1.0が自動的に設定されます。


ノート:

特に明記しないかぎり、この付録の最後まで、アクティブ管理インスタンスのホスト用に定義したシステム上で、すべてのコマンドを実行する必要があります。

% mkdir -p /grid
% unzip /mydir/timesten181410.server.linux8664.zip -d /grid
...

TimesTen Scaleoutをインストールする方法の詳細は、TimesTen Scaleoutのインストールを参照してください。

すべてのホスト間でのパスワードなしSSHの設定

ttGridAdmin gridSshConfigコマンドを使用して、インスタンス管理者のすべてのホストの内部ネットワーク・アドレス間で必要なパスワードなしSSHアクセスを設定します。

% /grid/tt18.1.4.1.0/bin/ttGridAdmin gridSshConfig
 -mgmtAddress int-host1 int-host2
 -dataAddress int-host3 int-host4 int-host5 int-host6 int-host7 int-host8

詳細は、パスワードなしSSHの設定を参照してください。

メンバーシップ・サービスの設定

TimesTen Scaleoutには、サード・パーティのメンバーシップ・サービスとしてApache ZooKeeperが含まれています。ZooKeeperのインストール・ファイルは、TimesTen Scaleoutのインストール先のinstallation_dir/tt18.1.4.1.0/3rdparty/apache-zookeeper-3.5.8-bin.tar.gzファイルに含まれています。

TimesTen Scaleoutでの必要性に応じてメンバーシップ・サービスを構成して初期化するには、次のステップを実行します。

  1. ZooKeeperのインストール

  2. ZooKeeperサーバーの構成

  3. ZooKeeperサーバーの起動

  4. クライアント構成ファイルの作成


ノート:

TimesTen Scaleout内のメンバーシップ・サービスの詳細は(Apache ZooKeeperの構成を含む)、TimesTen Scaleoutのメンバーシップ・サービスの概要を参照してください。

ZooKeeperのインストール

メンバーシップ・サーバーのロールに対して定義した各システム上で、Apache ZooKeeperを解凍します。

% mkdir -p /grid/membership
% tar -zvxf apache-zookeeper-3.5.8-bin.tar.gz -C /grid/membership

ZooKeeperサーバーの構成

メンバーシップ・サーバーとして定義されているすべてのシステム上でインストール・ファイルが使用可能になったら、それらのシステム上でzoo.cfgおよびmyidという構成ファイルを作成します。

% vi /grid/membership/apache-zookeeper-3.5.8-bin/conf/zoo.cfg

tickTime=250
initLimit=40
syncLimit=12
dataDir=grid/membership/apache-zookeeper-3.5.8-bin/data
clientPort=2181
server.1=ms-host1:2888:3888
server.2=ms-host2:2888:3888
server.3=ms-host3:2888:3888
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
4lw.commands.whitelist=stat, ruok, conf, isro

myidファイル内では、zoo.cfgファイルのserver.nパラメータと同じn値を割り当てる必要があります。たとえば、zoo.cfgファイル内では、ms-host1システムがserver.1として指定されているため、このシステムのmyidファイルには、1という値が記述された単一行が含まれている必要があります。

% vi /grid/membership/apache-zookeeper-3.5.8-bin/conf/myid

1

また、dataDirパラメータで指定された場所を作成します。

% mkdir -p /grid/membership/apache-zookeeper-3.5.8-bin/data

zoo.cfgmyidの各構成ファイルに含まれているパラメータの詳細は、メンバーシップ・サービスとしてのApache ZooKeeperの構成を参照してください。

ZooKeeperサーバーの起動

メンバーシップ・サーバーのロールに対して定義したすべてのシステム上で、ZooKeeperサーバーを起動します。

% /grid/membership/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start

ZooKeeperが正常に実行されていることを確認するには、次のコマンドを使用します。

% /grid/membership/apache-zookeeper-3.5.8-bin/bin/zkCli.sh -server ms-host1:2181

クライアント構成ファイルの作成

クライアント構成ファイルでは、すべてのメンバーシップ・サーバーのホスト名とクライアントTCP/IPポートを指定します。

例A-1に示すように、アクティブ管理インスタンスのホストとして定義されているシステム上の任意のディレクトリ内に、クライアント構成ファイルを作成します。

例A-1 サンプルのクライアント構成ファイル: membership.conf

% vi /mydir/membership.conf

Servers ms-host1!2181,ms-host2!2181,ms-host3!2181

グリッドおよびデータベースのデプロイ

TimesTen Scaleoutでは、グリッドを正常に構成してデプロイするためのいくつかのオプションが用意されています。これらのオプションの1つがttGridRolloutユーティリティとなります。ttGridRolloutユーティリティは、構成ファイルで定義されたパラメータを使用して、ユーザーによる入力を必要とせずにグリッドとデータベースのデプロイを最初から最後まで実行します。このユーティリティは各種のttGridAdminコマンドを使用して、グリッドとデータベースの初期構成とデプロイメントに関連する操作を実行します。ttGridRolloutユーティリティは、TimesTen Scaleoutのインストール先のbinディレクトリにあります。

ttGridRolloutユーティリティの詳細は、Oracle TimesTen In-Memory DatabaseリファレンスでttGridRolloutを参照してください。

データベース定義ファイルの作成

データベース定義ファイル(.dbdefという接尾辞)には、データベースのデータ・ストア属性と初回接続属性が含まれています。このファイルには、database_name.dbdefという名前を付ける必要があります。たとえば、database1という名前のデータベースの場合、データベース定義ファイルの名前はdatabase1.dbdefとなります。

例A-2に示すように、アクティブ管理インスタンスのホストとして定義されているシステム上の任意のディレクトリ内に、データベース定義ファイルを作成します。

例A-2 データベース定義ファイル

% vi /mydir/database1.dbdef

[database1]
DataStore=/disk1/databases/database1
LogDir=/disk2/logs
DatabaseCharacterSet=AL32UTF8
Durability=0
PermSize=32768
TempSize=4096
LogBufMB=1024
Connections=2048

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

接続可能オブジェクト・ファイルの作成

接続可能オブジェクト・ファイル(.connectという接尾辞)には、データベースへの接続に関する全般的な接続属性が含まれています。TimesTen Scaleoutでは、このデータベースへの直接接続用またはクライアント/サーバー接続用の接続可能オブジェクトがサポートされています。

例A-3に示すように、アクティブ管理インスタンスのホストとして定義されているシステム上の任意のディレクトリ内に、接続可能オブジェクト・ファイルを作成します。

例A-3 接続可能オブジェクト・ファイル

% vi /mydir/database1CS.connect

ConnectionCharacterSet=AL32UTF8

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

データベース用のSQLスクリプト・ファイルの作成

SQLスクリプト・ファイルには、該当するデータベース用のSQLオブジェクトを作成するためのSQL文が含まれています。

例A-4に示すように、アクティブ管理インスタンスのホストとして定義されているシステム上の任意のディレクトリ内に、SQLスクリプト・ファイルを作成します。


ノート:

database1.sqlファイルに含まれているCREATE TABLE文とこれらの文の分散スキームの詳細は、表の分散スキームの定義を参照してください。

例A-4 SQLスクリプト・ファイル

% vi /mydir/database1.sql

CREATE USER terry IDENTIFIED BY password;
 
GRANT CREATE SESSION TO terry;
 
CREATE TABLE terry.account_type
(
    type            CHAR(1) NOT NULL PRIMARY KEY,
    description     VARCHAR2(100) NOT NULL
)
DUPLICATE;
 
CREATE TABLE terry.account_status
(
    status          NUMBER(2,0) NOT NULL PRIMARY KEY,
    description     VARCHAR2(100) NOT NULL
)
DUPLICATE;
 
CREATE TABLE terry.customers
(
    cust_id            NUMBER(10,0) NOT NULL PRIMARY KEY,
    first_name         VARCHAR2(30) NOT NULL,
    last_name          VARCHAR2(30) NOT NULL,
    addr1              VARCHAR2(64),
    addr2              VARCHAR2(64),
    zipcode            VARCHAR2(5),
    member_since       DATE NOT NULL
)
DISTRIBUTE BY HASH;
 
CREATE TABLE terry.accounts
(
    account_id         NUMBER(10,0) NOT NULL PRIMARY KEY,
    phone              VARCHAR2(16) NOT NULL,
    account_type       CHAR(1) NOT NULL,
    status             NUMBER(2,0) NOT NULL,
    current_balance    NUMBER(10,2) NOT NULL,
    prev_balance       NUMBER(10,2) NOT NULL,
    date_created       DATE NOT NULL,
    cust_id            NUMBER(10,0) NOT NULL,
    CONSTRAINT fk_customer
        FOREIGN KEY (cust_id)
            REFERENCES terry.customers(cust_id),
    CONSTRAINT fk_acct_type
        FOREIGN KEY (account_type)
            REFERENCES terry.account_type(type),
    CONSTRAINT fk_acct_status
        FOREIGN KEY (status)
            REFERENCES terry.account_status(status)
)
DISTRIBUTE BY REFERENCE (fk_customer);
 
CREATE TABLE terry.transactions
(
    transaction_id      NUMBER(10,0) NOT NULL,
    account_id          NUMBER(10,0) NOT NULL ,
    transaction_ts      TIMESTAMP NOT NULL,
    description         VARCHAR2(60),
    optype              CHAR(1) NOT NULL,
    amount              NUMBER(6,2) NOT NULL,
    PRIMARY KEY (account_id, transaction_id, transaction_ts),
    CONSTRAINT fk_accounts
        FOREIGN KEY (account_id)
            REFERENCES terry.accounts(account_id)
)
DISTRIBUTE BY REFERENCE (fk_accounts);
 
CREATE SEQUENCE terry.txn_seq CACHE 100 BATCH 1000000;

ttGridRolloutユーティリティの構成ファイルの作成

ttGridRolloutユーティリティの構成ファイルでは、TimesTen Scaleout内でグリッドとデータベースを正常に作成してデプロイするために必要となるすべてのパラメータが定義されます。

例A-5に示すように、ttGridRolloutユーティリティの構成ファイルを作成します。例A-5の構成ファイルは次のとおりです。

  • グリッドにはgrid1という名前を付けます。

  • membership.confファイルで指定されたメンバーシップ・サーバーを定義します。

  • 各インストール・オブジェクトのインストール・ファイルの場所を、それぞれのホスト上の/grid/tt18.1.4.1.0として定義します。

  • 各インスタンス・オブジェクトのインスタンス・ファイルの場所を、それぞれのホスト上の/gridとして定義します。

  • database1.dbdefファイルで指定されたデータベース定義を作成します。

  • database1CS.connectファイルで指定されたクライアント/サーバー接続可能オブジェクトを作成します。

  • database1.sqlファイルで指定されたSQLスキーマをdatabase1データベースに追加します。

  • 2つの管理インスタンスを作成します(各インスタンスのホストとインストール内容を含む)。

  • 6つのデータ・インスタンスを作成します(2つのデータ・スペース・グループに均等に割り当てられた、各インスタンスのホストとインストール内容を含む)。ttGridRolloutユーティリティは、2つのデータ・スペース・グループのニーズを満たすために、グリッドの作成時にK-safetyを2に設定します。


    ノート:

    この例の各インスタンスで使用されている属性の詳細は、それぞれのホストおよびメンバーシップ・サーバーのネットワーク・パラメータの定義を参照してください。

例A-5 ttGridRolloutの構成ファイル

% vi /mydir/grid1.conf

grid_name = grid1
zoo_conf = /mydir/membership.conf
instance_location = /grid
installation_location = /grid
dbdef_file = /mydir/database1.dbdef
cs_connect_files = /mydir/database1CS.connect
init_script = /mydir/database1.sql
mgmt_instances = [
        { "host":"host1", "address":"int-host1", "instance":"instance1",
 "daemonport":6624, "csport":6625, "mgmtport":3754},
        { "host":"host2", "address":"int-host2", "instance":"instance1",
 "daemonport":6624, "csport":6625, "mgmtport":3754}
]
data_instances = [
        { "host":"host3", "internalAddress":"int-host3",
 "externalAddress":"ext-host3.example.com", "dataspacegroup":1,
  "instance":"instance1", "daemonport":6624, "csport":6625},
        { "host":"host4", "internalAddress":"int-host4",
 "externalAddress":"ext-host4.example.com", "dataspacegroup":2,
 "instance":"instance1", "daemonport":6624, "csport":6625},
        { "host":"host5", "internalAddress":"int-host5",
 "externalAddress":"ext-host5.example.com", "dataspacegroup":1,
 "instance":"instance1", "daemonport":6624, "csport":6625},
        { "host":"host6", "internalAddress":"int-host6",
 "externalAddress":"ext-host6.example.com", "dataspacegroup":2,
 "instance":"instance1", "daemonport":6624, "csport":6625},
        { "host":"host7", "internalAddress":"int-host7",
 "externalAddress":"ext-host7.example.com", "dataspacegroup":1,
 "instance":"instance1", "daemonport":6624, "csport":6625},
        { "host":"host8", "internalAddress":"int-host8",
 "externalAddress":"ext-host8.example.com", "dataspacegroup":2,
 "instance":"instance1", "daemonport":6624, "csport":6625}
]

グリッドとデータベースの作成

ttGridRolloutユーティリティを使用して、作成した構成ファイルに基づいてグリッドとデータベースを作成します。

% /grid/tt18.1.4.1.0/bin/ttGridRollout /mydir/grid1.conf
INFO: Checking Zookeeper on ms-host1!2181 -- OK
INFO: Checking Zookeeper on ms-host2!2181 -- OK
INFO: Checking Zookeeper on ms-host3!2181 -- OK
INFO: Checking the address for the management database -- OK
INFO: Checking connectivity to int-host1 -- OK
 
================================================================================
 
/grid/tt18.1.4.1.0/bin/ttInstanceCreate -grid -location /grid -name
 instance1 -daemonport 6624 -csport 6625
Creating instance in /grid/instance1 ...
 
NOTE: The TimesTen daemon startup/shutdown scripts have not been installed.
 
The startup script is located here :
        '/grid/instance1/startup/tt_instance1'
 
Run the 'setuproot' script :
        /grid/instance1/bin/setuproot -install
This will move the TimesTen startup script into its appropriate location.
 
The 18.1.4.1 Release Notes are located here :
  '/grid/tt18.1.4.1.0/README.html'
 
/grid/instance1/bin/ttenv ttGridAdmin gridCreate grid1 -k 2 -host host1 -address
 int-host1 -membership zookeeper -membershipConfig /mydir/membership.conf
 -mgmtport 3754
/grid/instance1/bin/ttenv ttGridAdmin hostCreate host2 -address int-host2
/grid/instance1/bin/ttenv ttGridAdmin installationCreate host2 -location /grid
/grid/instance1/bin/ttenv ttGridAdmin instanceCreate host2.instance1 -location
 /grid -type management -daemonport 6624 -csport 6625 -mgmtport 3754
/grid/instance1/bin/ttenv ttGridAdmin modelApply
/grid/instance1/bin/ttenv ttGridAdmin hostCreate host3 -externaladdress int-host3
 -internaladdress ext-host3.example.com -dataspacegroup 1
/grid/instance1/bin/ttenv ttGridAdmin installationCreate host3 -location /grid
/grid/instance1/bin/ttenv ttGridAdmin hostCreate host4 -externaladdress int-host4
 -internaladdress ext-host4.example.com -dataspacegroup 2
/grid/instance1/bin/ttenv ttGridAdmin installationCreate host4 -location /grid
/grid/instance1/bin/ttenv ttGridAdmin hostCreate host5 -externaladdress int-host5
 -internaladdress ext-host5.example.com -dataspacegroup 1
/grid/instance1/bin/ttenv ttGridAdmin installationCreate host5 -location /grid
/grid/instance1/bin/ttenv ttGridAdmin hostCreate host6 -externaladdress int-host6
 -internaladdress ext-host6.example.com -dataspacegroup 2
/grid/instance1/bin/ttenv ttGridAdmin installationCreate host6 -location /grid
/grid/instance1/bin/ttenv ttGridAdmin hostCreate host7 -externaladdress int-host7
 -internaladdress ext-host7.example.com -dataspacegroup 1
/grid/instance1/bin/ttenv ttGridAdmin installationCreate host7 -location /grid
/grid/instance1/bin/ttenv ttGridAdmin hostCreate host8 -externaladdress int-host8
 -internaladdress ext-host8.example.com -dataspacegroup 2
/grid/instance1/bin/ttenv ttGridAdmin installationCreate host8 -location
 /grid
/grid/instance1/bin/ttenv ttGridAdmin instanceCreate host3.instance1 -location
 /grid -daemonport 6624 -csport 6625
/grid/instance1/bin/ttenv ttGridAdmin instanceCreate host4.instance1 -location
 /grid -daemonport 6624 -csport 6625
/grid/instance1/bin/ttenv ttGridAdmin instanceCreate host5.instance1 -location
 /grid -daemonport 6624 -csport 6625
/grid/instance1/bin/ttenv ttGridAdmin instanceCreate host6.instance1 -location
 /grid -daemonport 6624 -csport 6625
/grid/instance1/bin/ttenv ttGridAdmin instanceCreate host7.instance1 -location
 /grid -daemonport 6624 -csport 6625
/grid/instance1/bin/ttenv ttGridAdmin instanceCreate host8.instance1 -location
 /grid -daemonport 6624 -csport 6625
/grid/instance1/bin/ttenv ttGridAdmin dbdefCreate /mydir/database1.dbdef
/grid/instance1/bin/ttenv ttGridAdmin modelApply
/grid/instance1/bin/ttenv ttGridAdmin dbCreate -wait 180 database1
/grid/instance1/bin/ttenv ttGridAdmin dbDistribute database1 -add all -apply
/grid/instance1/bin/ttenv ttGridAdmin dbOpen -wait 180 database1
/grid/instance1/bin/ttenv ttGridAdmin connectableCreate -dbdef database1 -cs
 /mydir/database1CS.connect
/grid/instance1/bin/ttenv ttGridAdmin modelApply
/grid/instance1/bin/ttenv ttGridAdmin instanceExec -only host3.instance1 "ttIsql
 database1 <<EOF
CREATE USER terry IDENTIFIED BY password;
 
GRANT CREATE SESSION TO terry;
 
CREATE TABLE terry.account_type
(
    type            CHAR(1) NOT NULL PRIMARY KEY,
    description     VARCHAR2(100) NOT NULL
)
DUPLICATE;
 
CREATE TABLE terry.account_status
(
    status          NUMBER(2,0) NOT NULL PRIMARY KEY,
    description     VARCHAR2(100) NOT NULL
)
DUPLICATE;
 
CREATE TABLE terry.customers
(
    cust_id            NUMBER(10,0) NOT NULL PRIMARY KEY,
    first_name         VARCHAR2(30) NOT NULL,
    last_name          VARCHAR2(30) NOT NULL,
    addr1              VARCHAR2(64),
    addr2              VARCHAR2(64),
    zipcode            VARCHAR2(5),
    member_since       DATE NOT NULL
)
DISTRIBUTE BY HASH;
 
CREATE TABLE terry.accounts
(
    account_id         NUMBER(10,0) NOT NULL PRIMARY KEY,
    phone              VARCHAR2(16) NOT NULL,
    account_type       CHAR(1) NOT NULL,
    status             NUMBER(2,0) NOT NULL,
    current_balance    NUMBER(10,2) NOT NULL,
    prev_balance       NUMBER(10,2) NOT NULL,
    date_created       DATE NOT NULL,
    cust_id            NUMBER(10,0) NOT NULL,
    CONSTRAINT fk_customer
        FOREIGN KEY (cust_id)
            REFERENCES terry.customers(cust_id),
    CONSTRAINT fk_acct_type
        FOREIGN KEY (account_type)
            REFERENCES terry.account_type(type),
    CONSTRAINT fk_acct_status
        FOREIGN KEY (status)
            REFERENCES terry.account_status(status)
)
DISTRIBUTE BY REFERENCE (fk_customer);
 
CREATE TABLE terry.transactions
(
    transaction_id      NUMBER(10,0) NOT NULL,
    account_id          NUMBER(10,0) NOT NULL ,
    transaction_ts      TIMESTAMP NOT NULL,
    description         VARCHAR2(60),
    optype              CHAR(1) NOT NULL,
    amount              NUMBER(6,2) NOT NULL,
    PRIMARY KEY (account_id, transaction_id, transaction_ts),
    CONSTRAINT fk_accounts
        FOREIGN KEY (account_id)
            REFERENCES terry.accounts(account_id)
)
DISTRIBUTE BY REFERENCE (fk_accounts);
 
CREATE SEQUENCE terry.txn_seq CACHE 100 BATCH 1000000;
 
EOF"
 
================================================================================
6-instance (3x2) grid successfully created.
 
 
Management Instance Locations
-----------------------------
- int-host1:/grid/instance1
- int-host2:/grid/instance1
 
Please source ttenv script under Management Instances for grid management via
 "ttGridAdmin" commands.
 
  For example, to use the first management instance, on int-host1:
  sh:  . /grid/instance1/bin/ttenv.sh
  csh: source /grid/instance1/bin/ttenv.csh
 
 
Data Instance Locations
-----------------------
- host3.instance1 ==> int-host3:/grid/instance1
- host4.instance1 ==> int-host4:/grid/instance1
- host5.instance1 ==> int-host5:/grid/instance1
- host6.instance1 ==> int-host6:/grid/instance1
- host7.instance1 ==> int-host7:/grid/instance1
- host8.instance1 ==> int-host8:/grid/instance1
 
Please source ttenv script under Data Instances for database operations.
 
  For example, to use instance1, on int-host3:
  sh:  . /grid/instance1/bin/ttenv.sh
  csh: source /grid/instance1/bin/ttenv.csh

データベースへの接続

直接接続またはクライアント接続を介してデータベースに接続します。直接接続の場合は、使用する環境をいずれかのデータ・インスタンス(host3.instance1など)に設定して、database1接続可能オブジェクトを使用してデータベースに接続します。

% source /grid/instance1/bin/ttenv.csh
...
% ttIsql -connStr "DSN=database1;UID=terry"

TimesTen Scaleout内のデータベースに接続する方法の詳細は、データベースへの接続を参照してください。