管理の手引き


データベースを作成する前の前提条件

データベースを実現する前に、 以下の前提条件タスクについて理解している必要があります。

DB2 の開始

通常の業務を行っている最中に DB2 を開始または停止する必要がある場合があります。 たとえば、以下のタスクを実行する前に、インスタンスを開始しなければなりません。

システムで DB2 インスタンスを開始するには、次のようにします。

  1. インスタンスに対する SYSADM、SYSCTRL、 または SYSMAINT 権限を持つユーザー ID またはユーザー名を使ってログインします。 あるいは、インスタンス所有者としてログインします。
  2. UNIX オペレーティング・システムでは、以下のように開始スクリプトを実行します。

       . INSTHOME/sqllib/db2profile      (Bourne または Korn シェルの場合)
       source INSTHOME/sqllib/db2cshrc   (C シェルの場合)
    
    INSTHOME は、使用するインスタンスのホーム・ディレクトリーです。
  3. インスタンスを開始するには、以下の 2 つの方法のいずれかを使用します。

    1. コントロール・センターを使用してインスタンスを開始するには、以下のようにします。


      1. オブジェクト・ツリーを順に展開し、 「インスタンス (Instances)」フォルダーを表示します。
      2. 開始するインスタンスを右クリックして、 ポップアップ・メニューから「開始 (start)」を選択します。

    2. コマンド行を使用してインスタンスを開始するには、以下のように入力します。

         db2start
      

    注:db2start コマンドを実行すると、 現行インスタンスの設定にある規則にしたがってインスタンスが開始されます。

Windows NT での DB2 UDB の開始

db2start コマンドを使用すると、DB2 は NT サービスとして立ち上がります。 DB2START を呼び出すときにスイッチ "/D" を指定すると、 Windows NT での DB2 をプロセスとして実行することができます。 「コントロール パネル」または "NET START" コマンドを使用して、 DB2 をサービスとして開始することもできます。

DB2START から DB2 をサービスとして正常に立ち上げるには、 そのユーザー・アカウントで NT サービスを開始するために Windows NT オペレーティング・システムで定義された、 正しい特権が必要です。 ユーザー・アカウントは、管理者、サーバー・オペレーター、 またはパワー・ユーザーのいずれかのグループのメンバーです。

区分データベースで実行しているときには、 各データベース区画サーバーは NT サービスとして開始されます。

データベース・マネージャーの複数インスタンスを使用する

1 つのサーバーにデータベース・マネージャーの複数インスタンスを作成することができます。 これはつまり、物理的に 1 つのマシンに同じ製品のインスタンスを複数作成し、 それらを並行して稼働させることができるということです。 これにより、複数の環境を柔軟に設定できます。

次の環境を作成するために、複数のインスタンスが必要になる場合があります。

DB2 プログラム・ファイルは、物理的には特定のマシンの 1 つのロケーションに保管されます。 作成される各インスタンスは、このロケーションを指しているので、 作成されるインスタンスごとにプログラム・ファイルが複写されるわけではありません。 いくつかの関連するデータベースを、単一のインスタンス内に置くことができます。

インスタンスはノード・ディレクトリーにローカルまたはリモートのいずれかとしてカタログされます。 省略時インスタンスは DB2INSTANCE 環境変数で定義されます。 データベースの作成、アプリケーションの強制終了、データベースのモニター、 またはデータベース・マネージャー構成の更新などの、 インスタンス・レベルでしか行えない保守およびユーティリティー・タスクを実行するために、 他のインスタンスに接続 することができます。 省略時インスタンスにないインスタンスに接続しようとすると、 そのインスタンスとの通信方法を判別するためにノード・ディレクトリーが使用されます。

コマンド解説書 では、 各コマンドを実行するために必要な接続のタイプについての情報を提供します。

複数のインスタンスに対する DB2 サポートは、 オペレーティング・システムごとに異なります。 1 つのマシン上での複数の DB2 インスタンスの定義については、 使用しているプラットフォームに適した概説およびインストール を参照してください。

リモートにある別のインスタンスを接続するには、 コマンド解説書 に説明されているように、ATTACH コマンドを使用します。

コントロール・センターを使用するには、以下のようにします。


  1. オブジェクト・ツリーを順に展開し、 「インスタンス (Instances)」フォルダーを表示します。
  2. 接続したいインスタンスをクリックします。
  3. 選択したインスタンス名を右クリックします。
  4. 「接続 - DB2 (Attach-DB2)」ウィンドウで、 ユーザー ID とパスワードを入力し、 「OK」をクリックします。

コマンド行を使用してインスタンスに接続するには、以下のように入力します。

   db2 attach to <database_name>

たとえば、以下のようにコマンドを出すと、 以前にノード・ディレクトリーにカタログ化された testdb2 というインスタンスに接続します。

   db2 attach to testdb2

testdb2 インスタンスの保守に関連した作業を実行した後で、 次のコマンドを実行すると、 そのインスタンスから切り離す ことができます。

   db2 detach

スキーマによるオブジェクトの編成とグループ化

データベース・オブジェクトは、1 つの識別子で構成されているか、 2 つの識別子で構成されるスキーマ修飾オブジェクト です。 スキーマ修飾オブジェクトのスキーマまたは高位部分は、 データベースの中のオブジェクトを分類またはグループ化するための手段を提供します。 表、視点、別名、特殊タイプ、関数、索引、パッケージ、またはトリガーが作成されると、 それがスキーマに割り当てられます。 この割り当ては、明示的または暗黙的のいずれかで行われます。

ステートメント中のオブジェクトを参照するときに 2 部から成るオブジェクト名の高位部分を使用する場合は、 スキーマを明示的に使用することになります。 たとえば、USER A がスキーマ C の CREATE TABLE ステートメントを次のように発行します。

   CREATE TABLE C.X (COL1 INT)

2 部から成るオブジェクト名の高位部分を使用する場合は、 スキーマを暗黙的に使用することになります。 スキーマを暗黙的に使用すると、 オブジェクト名の高位部分を構成するのに使用されるスキーマ名を識別するために、 CURRENT SCHEMA 特殊レジスターが使用されます。 CURRENT SCHEMA の初期値は、現行セッション・ユーザーの許可 ID です。 これを現行セッション中に変更したい場合は、 SET SCHEMA ステートメントを使用して特殊レジスターを別のスキーマ名に設定することができます。 詳しくは、SQL 解説書 を参照してください。

システム・カタログ表の定義に記載されているとおり、一部のオブジェクトは、 データベースが作成されると、特定のスキーマ内に作成されます。

動的 SQL ステートメントでは、スキーマ修飾オブジェクト名は、 修飾なしオブジェクト名参照として CURRENT SCHEMA 特殊レジスター値を暗黙的に使用します。 静的 SQL ステートメントでは、QUALIFIER プリコンパイル / バインド・オプションは、 修飾なしデータベース・オブジェクト名の修飾子を暗黙的に指定します。

独自のオブジェクトを作成する前に、それらを省略時のスキーマの中に作成したいか、 または論理的にオブジェクトをグループ化する別のスキーマを使用するかを検討しなければなりません。 共用されるオブジェクトを作成している場合は、 別のスキーマ名を使用すると、非常に便利です。 明示的にスキーマを作成する方法について詳しくは、 スキーマの作成を参照してください。

並列化の使用可能化

データベース区画内または非区分データベース内で並列化を利用するためには、 構成パラメーターを修正しなければなりません。 たとえば、区画内並行化を使用して、 対称マルチプロセッサー (SMP) マシン上の複数のプロセッサーを利用することができます。

区画内並行化の使用可能化

コントロール・センターを使用して、 特定のデータベースまたはデータベース・マネージャー構成ファイルの中の個々の項目の値を調べたり修正したりできます。

また、 GET DATABASE CONFIGURATION コマンドおよび GET DATABASE MANAGER CONFIGURATION コマンドを使用して、 特定のデータベースまたはデータベース・マネージャー構成ファイルの中の個々の項目の値を調べることもできます。 特定のデータベースまたはデータベース・マネージャー構成ファイルの中の個々の項目を修正するためには、 それぞれ UPDATE DATABASE CONFIGURATION コマンドと UPDATE DATABASE MANAGER CONFIGURATION コマンドを使用します。

区画内並行化に影響を与える構成パラメーターには、 max_querydegreeintra_parallel のデータベース・マネージャー・パラメーター、 および dft_degree データベース・パラメーターがあります。 構成パラメーターについての詳細は、 第 32 章, DB2 の構成を参照してください。

区画内照会並行化の使用可能化

区画内照会並行化を行わせるためには、 以下のデータベース構成パラメーターとデータベース・マネージャー構成パラメーターを修正する必要があります。

INTRA_PARALLEL
データベース・マネージャー構成パラメーター。 このパラメーターの詳細は、区画内並行処理機能の使用可能化 (intra_parallel)を参照してください。

DFT_DEGREE
データベース構成パラメーター。 DEGREE バインド・オプションおよび CURRENT DEGREE 特殊レジスターに対する省略時値を提供します。 このパラメーターの詳細は、省略時の程度 (dft_degree)を参照してください。

DEGREE
静的 SQL に対するプリコンパイルまたはバインドのオプション。 詳しくは、コマンド解説書 を参照してください。

CURRENT DEGREE
動的 SQL に対する特殊レジスター。 詳しくは、SQL 解説書 を参照してください。

構成パラメーターの設定について、 およびアプリケーションを並列で処理可能にする方法については、 第 32 章, DB2 の構成を参照してください。

区画間照会並行化の使用可能化

区画間並行化は、データベース区画の数およびこれらの区画にわたるデータの分配に基づいて、 自動的に行われます。

ユーティリティー並行化の使用可能化

この節では、以下のユーティリティーについて、 区画内並行化を可能にする方法の概要について説明します。

ユーティリティーに対する区画間並行化は、 データベース区画の数に基づいて自動的に行われます。

ロード

Load ユーティリティーは自動的に並列化を使用できるようにします。 または、LOAD コマンドで以下のパラメーターを使うことができます。

LOAD コマンドに関する詳細は、 データ移動ユーティリティー 手引きおよび解説書 を参照してください。

AutoLoader

autoloader.cfg ファイルで、 LOAD 指定に MODIFIED BY ANYORDER パラメーターを指定することによって、 AutoLoader が複数分割処理を行えるようにすることができます。 詳細については、データ移動ユーティリティー 手引きおよび解説書 を参照してください。

索引作成

索引の作成中に並列化を使用可能にするには、以下のとおりでなければなりません。

CREATE INDEX ステートメントの詳細は、 SQL 解説書 を参照してください。

データ区分化の使用可能化

複数区画環境で実行している場合、 CREATE DATABASE コマンドまたは sqlecrea() アプリケーション・プログラミング・インターフェース (API) を使用して、 db2nodes.cfg ファイル内に存在するどのノードからでもデータベースを作成することができます。 詳しくは、コマンド解説書 および管理 API 解説書 を参照してください。

区分データベースを作成する前に、データベースが作成されるインスタンスに対して、 ローカル・クライアントであるのかリモート・クライアントであるのかを決めなければなりません。 次に、そのインスタンスに接続しなければなりません。 また、どのデータベース区画がそのデータベースに対するカタログ・ノードになるのかを選択しなければなりません。 接続して CREATE DATABASE コマンドを実行するデータベース区画は、 その特定のデータベースに対するカタログ・ノード になります。

カタログ・ノードは、すべてのシステム・カタログ表が保管されるデータベース区画です。 システム表に対するすべてのアクセスは、 このデータベース区画を通して行わなければなりません。 統合データベース・オブジェクト (ラッパー、サーバー、ニックネームなど) はすべて、 このノードのシステム・カタログに保管されます。

可能であれば、各データベースを別個のインスタンスの中に作成すべきです。 これが可能でない場合 (つまり、1 インスタンス当たり複数のデータベースを作成しなければならない場合)、 カタログ・ノードを使用可能なデータベース区画に分散させる必要があります。 これを行うと、単一データベース区画におけるカタログ情報の競合が削減されます。
注:他のデータでバックアップに必要な時間が増えてしまうため、 定期的にカタログ・ノードのバックアップをとり、 (可能ならば) そこにデータを書き込むのを避けるべきです。

データベースを作成すると、 db2nodes.cfg ファイルに定義されたすべてのデータベース区画にわたって自動的に作成されます。

システムに最初のデータベースが作成されると、システム・データベース・ディレクトリーが作成されます。 これは、作成した他のデータベースについての情報と一緒に追加されます。 システム・データベース・ディレクトリーは sqldbdir であり、 ホーム・ディレクトリーの下の sqllib ディレクトリーに配置されます。 このディレクトリーは、 区分データベースを形成するすべてのデータベース区画に対する唯一のシステム・データベース・ディレクトリーであるため、 共用のファイル・システム (たとえば、UNIX プラットフォーム上の NFS) に常駐しなければなりません。

また、sqldbdir ディレクトリーに常駐するのは、システム意図ファイルです。 これは sqldbins と呼ばれ、 データベース区画が同期を維持できるようにするものです。 このファイルも、すべてのデータベース区画にわたって 1 つのディレクトリーしかないため、 共用のファイル・システムに常駐しなければなりません。 このファイルは、データベースを形成するすべての区画で共用されます。

データ区分化を利用するためには、構成パラメーターを修正しなければなりません。 GET DATABASE CONFIGURATION コマンドおよび GET DATABASE MANAGER CONFIGURATION コマンドを使用して、 特定のデータベースまたはデータベース・マネージャー構成ファイルの中の個々の項目の値を調べることができます。 特定のデータベースまたはデータベース・マネージャー構成ファイルの個々の項目を修正するためには、 それぞれ UPDATE DATABASE CONFIGURATION コマンドと UPDATE DATABASE MANAGER CONFIGURATION コマンドを使用します。

区分データベースに影響を与えるデータベース・マネージャー構成パラメーターには、 conn_elapsefcm_num_anchorsfcm_num_buffersfcm_num_connectfcm_num_rqbmax_connretriesmax_coordagentsmax_time_diffnum_poolagents、 および stop_start_time があります。

構成パラメーターについての詳細は、 第 32 章, DB2 の構成を参照してください。

データベース / 表スペースのバックアップ

データベースまたは表スペースのバックアップ中に入出力並列化を使用可能にするには、 以下のようにします。

BACKUP DATABASE コマンドの詳細は、コマンド解説書 を参照してください。

データベース / 表スペースの復元

データベースまたは表スペースの復元中に入出力並列化を使用可能にするには、 以下のようにします。

RESTORE DATABASE コマンドの詳細は、コマンド解説書 を参照してください。

DB2 の停止

db2stop コマンドはサーバーでのみ実行できます。 このコマンドの実行中はデータベースの接続は許されません。 接続されたインスタンスがあると、DB2 が停止する前に強制的にオフにされます。
注:コマンド行プロセッサーのセッションがインスタンスに接続されたら、 terminate コマンドを実行し、各セッションを終了してから、 db2stop コマンドを実行します。 db2stop コマンドを実行すると、 DB2INSTANCE 環境変数で定義されたインスタンスが停止します。

システムで DB2 インスタンスを停止するには、以下のことを行わなければなりません。

  1. インスタンスに対する SYSADM、SYSCTRL、 または SYSMAINT 権限を持つユーザー ID またはユーザー名を使ってインスタンスにログインする、 つまり接続します。 あるいは、インスタンス所有者としてログインします。
  2. 停止したい特定のデータベースに接続された、 すべてのアプリケーションおよびユーザーを表示します。 重要なアプリケーションまたはクリティカルなアプリケーションが実行されていないことを確認するするために、 アプリケーションをリストします。 リストを表示するには、SYSADM、SYSCTRL、または SYSMAINT 権限が必要です。
  3. すべてのアプリケーションおよびユーザーにデータベースの使用を中断させます。 ユーザーに強制するためには、SYSADM または SYSCTRL 権限が必要です。
  4. UNIX オペレーティング・システムでは、以下のように開始スクリプトを実行します。
       . INSTHOME/sqllib/db2profile      (Bourne または Korn シェルの場合)
       source INSTHOME/sqllib/db2cshrc   (C シェルの場合)
    

    INSTHOME は、使用するインスタンスのホーム・ディレクトリーです。

  5. インスタンスを停止するには、以下のいずれかの方法を使用します。


    1. オブジェクト・ツリーを順に展開し、 「インスタンス (Instances)」フォルダーを表示します。
    2. 停止したいインスタンスを 1 つずつクリックします。
    3. 選択したすべてのインスタンスを右クリックして、 ポップアップ・メニューから「停止 (stop)」を選択します。
    4. 「停止の確認 (Confirm stop)」ウィンドウで、 「OK」をクリックします。

    コマンド行を使用してインスタンスを停止するには、以下のように入力します。

       db2stop
    


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]