IBM Support

[Db2] データベース・カタログの変更を反映する方法

Question & Answer


Question

カタログ情報を変更した後、インスタンスの再起動を行わなかったところ、データベースに接続できなくなりました。 その後インスタンスの再起動はせずにオフライン・バックアップを行ったところ、正しく接続できるようになりました。 カタログ情報の変更後、インスタンスの再起動は必要でしょうか。

Answer

カタログ情報の変更をデータベース・マネージャーに反映させるには、インスタンスの再起動 (db2stop/db2start) が必要です。

ディレクトリー・キャッシュ・サポート構成パラメーター dir_cache がデフォルトの YES に設定されている環境では、データベース、ノード、および DCS ディレクトリー・ファイルがメモリーにキャッシュされます。
ディレクトリー・キャッシュを使用すると、ディレクトリー・ファイル入出力がなくなり、ディレクトリー情報を得るためのディレクトリー検索が最小化されるため、接続のコストが低減します。 ディレクトリー・キャッシュには次の 2 つのタイプがあります。
  • 各アプリケーションについて、アプリケーションを実行中のマシン上に割り振られて使用される、アプリケーション・ディレクトリー・キャッシュ
  • 内部データベース・マネージャー・プロセスのいくつかについて割り振られて使用される、サーバー・ディレクトリー・キャッシュ

カタログ情報を変更した場合は、キャッシュに最新の情報が反映されるように必ずインスタンスおよびアプリケーションを再起動してください。

バックアップ実行時は、ディレクトリー・キャッシュを参照せず、直接データベース・ディレクトリー・ファイル (SQLDBDIR) をオープンし、カタログ情報を参照します。
ファイルを直接オープンすることでキャッシュも更新されるため、結果としてキャッシュが最新のものとなり、リフレッシュに値する挙動となりえます。
ただし、これはキャッシュをリフレッシュすることを意図とした処理ではなく、バックアップの処理の中で結果的にキャッシュが最新になっていますので、ディレクトリー・キャッシュのリフレッシュを目的とする場合は、インスタンスを再起動してください。

運用上の考慮点
インスタンスを再起動できない環境でカタログ情報の動的な変更が必要な場合は、dir_cache の設定を NO として運用することをご検討ください。

※ dir_cache 構成パラメーターの変更を反映するには、インスタンスの再起動が必要です。
実行例:インスタンス・オーナーでサーバーにログインして以下のコマンドを実行します。
$ db2 update dbm cfg using DIR_CACHE NO
$ db2stop force
$ db2start

関連情報
dir_cache - ディレクトリー・キャッシュ・サポート構成パラメーター
CATALOG DATABASE コマンド
UPDATE DATABASE MANAGER CONFIGURATION コマンド
 
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート
 

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m0z0000001kF0AAI","label":"Catalog"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
25 August 2023

UID

swg21589182