データベースの作成(dbCreate)

dbCreateコマンドは、指定されたデータベース定義に従ってグリッド内にデータベースを作成します。

ttGridAdmin dbCreate name 
                     [-instance hostname[.instancename]]
                     [-nowait | -wait [timeout]]

オプション

dbCreateコマンドには、次のオプションがあります。

オプション 説明

name

データベースの作成に使用するデータベース定義の名前。これがデータベースの名前になります。

-instance hostname[.instancename]

指定した場合、データベース要素は、グリッドのすべてのインスタンスではなく、指定したインスタンスにのみ作成されます。指定したインスタンスのいずれかに以前に正常に作成した要素がある場合は、まずそれを破棄する必要があります。

これは通常、グリッドで障害が発生した後、または以前のdbCreateの実行で1つ以上のインスタンスでデータベース要素が正常に作成されなかった後にリカバリするために使用されます。

hostnameは必須です。instancenameは、ホストに複数のインスタンスがある場合にのみ必須です。(「グリッド・オブジェクトとオブジェクト・ネーミング」を参照してください。)

このオプションを1回のみ使用して、1つのコマンドに1つのインスタンスを指定できます。

-nowait | -wait [timeout]

このコマンドは状態の変更を開始し、それはグリッドのアクティブ管理インスタンスに記録されます。

-nowaitオプションを指定すると、コマンドは状態の変更を待機しないですぐに戻ります。これは、デフォルトの動作です。

-waitオプションを指定すると、データベース要素がグリッド内の各インスタンスで作成されている場合、コマンドは状態の変更が完了することを待機します。必要に応じて、待機をtimeout秒の制限の対象にできます。それ以外の場合、またはtimeoutが0に設定されている場合、制限はありません。

大規模なグリッドでは、一般的に、-waitを使用することはお薦めしません。そのようにする場合は、タイムアウトを設定することをお薦めします。(「データベース管理操作」を参照してください。)

この例では、要素がすべてのインスタンスで作成されることを待機しないでデータベースを作成し、ステータスをチェックします。最初はまだデータベース作成が進行中ですが、その後、完了します。

% ttGridAdmin dbCreate database1
Database database1 creation started
...
% ttGridAdmin dbStatus database1
Database database1 summary status as of Mon Nov 13 18:38:39 PST 2017
 
creating,loading-partial,closed
Completely created elements: 1 (of 4) (3 in progress)
Completely loaded elements: 1 (of 4) (3 in progress)
Completely created replica sets: 0 (of 0)
Completely loaded replica sets: 0 (of 0)
 
Open elements: 0 (of 4)
...
% ttGridAdmin dbStatus database1
Database database1 summary status as of Mon Nov 13 18:39:16 PST 2017
 
created,loaded,closed
Completely created elements: 4 (of 4)
Completely loaded elements: 4 (of 4)
Completely created replica sets: 0 (of 0)
Completely loaded replica sets: 0 (of 0)
 
Open elements: 0 (of 4)

次の例では、1つのインスタンスでの要素の作成に失敗します。この例では、問題が解決した後、再度、そのインスタンスで要素を作成することを試みます。

% ttGridAdmin dbCreate database1
Database database1 creation started
...
% ttGridAdmin dbStatus database1 -all
Database database1 summary status as of Sat Nov 11 14:23:05 PST 2017
 
created-partial,loaded,closed
Completely created elements: 3 (of 4)(1 failed)
Completely loaded elements: 3 (of 4)
Completely created replica sets: 0 (of 0)
Completely loaded replica sets: 0 (of 0)

Open elements: 0 (of 4)

Database database1 element level status as of Sat Nov 11 14:23:05 PST 2017
 
Host       Instance  Elem Status Date/Time of Event  Message 
---------- --------- ---- ------ ------------------- ------- 
mysys3host griddata1    1 loaded 2017-11-11 14:22:52         
mysys4host griddata2    2 loaded 2017-11-11 14:22:51         
mysys5host griddata3    3 failed 2017-11-11 14:22:52         
mysys6host griddata4    4 loaded 2017-11-11 14:22:53         
 
Database database1 Replica Set status as of Sat Nov 11 14:23:05 PST 2017
 
RS DS Elem Host Instance Status Date/Time of Event Message 
-- -- ---- ---- -------- ------ ------------------ ------- 
 
Database database1 Data Space Group status as of Sat Nov 11 14:23:05 PST 2017
 
DS RS Elem Host Instance Status Date/Time of Event Message 
-- -- ---- ---- -------- ------ ------------------ ------- 

(mysys5host.griddata3での問題を解決します。)

% ttGridAdmin dbCreate database1 -instance mysys5host.griddata3
Database database1 creation started
...
% ttGridAdmin dbStatus database1
Database database1 summary status as of Mon Nov 13 13:44:12 PST 2017
 
created,loaded,closed
Completely created elements: 4 (of 4)
Completely loaded elements: 4 (of 4)
Completely created replica sets: 0 (of 0)
Completely loaded replica sets: 0 (of 0)
 
Open elements: 0 (of 4)

ノート

  • 各インスタンスは、データベースの要素を作成し、要素をメモリーにロードし、要素の状態を記録します。

  • dbCreateを非同期に(待機しないで)実行する場合は、dbStatusコマンドを使用して、データベースが作成されているかどうかを確認できます。

  • dbCreateコマンドが戻るとすぐに、データベースは「existing」としてマークされます。デフォルトの-nowaitモードでコマンドを実行すると、作成が進行中の間は、データベースをアンロードできます。

  • dbDistributeでデータベース分散マップを定義し、dbOpenでデータベースをオープンするまで、インスタンス管理者以外のユーザーがデータベースを接続に使用することはできません。

  • -instanceオプションの一般的な使用例として、データベースの要素が以前に失敗し、データベース分散マップから除外または削除されて、破棄された場合をあげることができます。(この場合も、分散マップに要素を追加するには、dbDistributeを使用します。)