IBM Support

[Db2] Db2 がインストールされたコンピュータのホスト名変更手順 (IM-10-00K)

Question & Answer


Question

Db2 がインストールされているコンピュータのホスト名を変更する場合、Db2 の設定を変更する必要があります。

Answer

* はじめに

  • 以下の手順のうち、1, 4, 7, 8, 9, 10, 13, 15 は Db2 管理サーバー (DAS) が作成されている場合のみ必要です。
    DAS はコントロール・センターのような管理 GUI のサービスをサポートしますが、必要でなければ削除可能です。
  • Windows 版で拡張セキュリティが有効な場合、ホスト名を変更して Windows を再起動すると Db2 インスタンスおよびコマンドが動作しなくなります。
    必ず手順 11 を実行して DB2_ADMINGROUP および DB2_USERSGROUP グローバル・レジストリー変数を更新してください。
  • Db2 V10.5 では Workgroup Server Edition でもデフォルトで ESE インスタンスが作成されます。
    (ESE インスタンスのみ) の項目も該当する可能性があるので注意してください。
  • この FAQ は Db2 サーバーだけでなく、Db2 Connect/Db2 Client/Data Server Client にも有効です。


以下の手順でホスト名を変更します。

  1. DAS 管理ユーザー (UNIX/Linux) もしくは Administrator (Windows) でログインし、以下のコマンドで Db2 管理サーバー (DAS) を停止します。
    db2admin stop
  2. インスタンス・オーナー (UNIX/Linux) もしくは Administrator (Windows) でログインし、以下のコマンドで Db2 インスタンスを停止します。
    db2stop force
  3. ホスト名を変更します。Windows は変更を反映させるために OS の再起動が必要ですが、ここでは決して再起動しないでください。ここで再起動すると、Db2 に関する一切の作業ができなくなります。もし Windows を再起動してしまった場合、元のホスト名に戻してから Windows を再起動し、手順1から再度処理を行ってください。
  4. root (UNIX/Linux) もしくは Administrator (Windows) でログインし、以下のコマンドで DB2SYSTEM レジストリー変数を変更します。
    db2set -g DB2SYSTEM=<新ホスト名>
    Unix/Linux で db2set が正しく動作しない場合、以下の FAQ を参照してください。
    [Db2] root ユーザーで db2set コマンドなどが期待通り動作しないことがある
  5. (ESE インスタンスのみ) 以下の場所にある db2nodes.cfg を探します。
    • UNIX/Linux:
      <インスタンス・ホームディレクトリー>/sqllib/db2nodes.cfg
    • Windows (DB2 v8 and v9.1):
      Program Files\IBM\SQLLIB\<インスタンス名>\db2nodes.cfg
    • Windows XP および 2003 (DB2 v9.5 以降):
      Documents and Settings\All Users\Application Data\IBM\DB2\<DB2 コピー名>\<インスタンス名>\db2nodes.cfg
      注: Application Data は隠しフォルダーです。
    • Windows Vista 以降および Windows 2008:
      ProgramData\IBM\DB2\<DB2 コピー名>\<インスタンス名>\db2nodes.cfg
       
  6. (ESE インスタンスのみ) db2nodes.cfg ファイルを編集し、旧ホスト名を新ホスト名に変更します。
  7. 以下のコマンドを実行し、旧ホスト名がカタログされているかどうか確認します。
    db2 list admin node directory show detail
    注:もし、該当する管理ノードディレクトリーがなければ、次の手順 8 と手順 9 は不要です。
  8. 旧ホスト名が使われているノードをアンカタログします。
    db2 uncatalog node <ノード名>
  9. 新ホスト名で管理ノードを再カタログします。
    db2 catalog admin tcpip node <任意のノード名> remote <新ホスト名> system <新ホスト名>
    注:ローカル・ノードの場合、手順 9 は不要です。コントロール・センターなどの管理 GUI によって、新ホスト名の管理ノードが再作成されます。
  10. DAS の管理ユーザー (UNIX/Linux) もしくは Administrator (Windows) でログインし、以下のコマンドで DAS 構成ファイルを更新します。
    db2 update admin cfg using DB2SYSTEM <新ホスト名>
    db2 update admin cfg using SMTP_SERVER <新ホスト名>
  11. (Windows 版のみ) Windows を再起動します。
  12. 再起動後 Administrator でログオンし、Windows のコマンドプロンプト (CLP ではありません) から以下のコマンドを実行します。
    db2extsec /a <新ホスト名>¥DB2ADMNS /u <新ホスト名>¥DB2USERS
    注: v9.1 フィックスパック 1 以前、および拡張セキュリティでドメイングループを指定している場合、このステップは不要です。
    注: db2extsec コマンドがエラーになる場合は、「運用上の考慮点」に記述された障害情報を参照し、手動でDB2_ADMINGROUP および DB2_USERSGROUP グローバル・レジストリー変数を更新してください。
  13. DAS の管理ユーザー (UNIX/Linux) もしくは Administrator (Windows) でログインし、以下のコマンドで Db2 管理サーバー (DAS) を開始します。
    db2admin start
  14. インスタンス・オーナー (UNIX/Linux) もしくは Administrator (Windows) でログインし、以下のコマンドで Db2 インスタンスを開始します。
    db2start
  15. コントロール・センターの [すべてのシステム] 以下に旧ホスト名がある場合は、右クリックして [除去] をクリックしてください。さらに、[すべてのシステム] を右クリックして [追加] をクリックし、[ディスカバー (D)] で新ホストを検索してください。


HADR 環境におけるホスト名変更手順
HADR 環境の場合、上記のホスト名変更手順 1 の前に、DEACTIVATE DATABASE コマンドでデータベースを非活動化の状態にします。 (1 次データベースを非活動化してからスタンバイ・データベースを非活動化)
HADR の起動および停止方法は、以下の文書をご参照ください。
[Db2] HADR の起動および停止方法

ホスト名変更手順を全て実施した後、データベース構成パラメーターの HADR ローカル・ホスト名 (hadr_local_host) と HADR リモート・ホスト名 (hadr_remote_host) の設定を変更します。
1 次データベースのシステムでホスト名を変更した場合は hadr_local_host に新しいホスト名を設定し、スタンバイ・データベースで hadr_remote_host を変更します。

db2 update db cfg using [構成パラメーター名] [設定名]

hadr_local_host - HADR ローカル・ホスト名構成パラメーター
hadr_remote_host - HADR リモート・ホスト名構成パラメーター
UPDATE DATABASE CONFIGURATION コマンド

運用上の考慮点
Db2 v9.1 フィックスパック 2 以降、Windows 版の拡張セキュリティはドメイングループをサポートしています。
このため DB2ADMNS および DB2USERS グループがローカルコンピュータに定義されている場合は db2extsec コマンドで DB2_ADMINGROUP および DB2_USERSGROUP 変数を変更する必要があります。
この手順を省いた場合、コンピュータ再起動後に一切の Db2 コマンドが正しく動作しません。
たとえば DB2 インスタンスは起動せず、db2diag.log に以下のようなログが記録されます。

2010-07-10-12.16.41.495000+540 E1096981H432  LEVEL: Error (OS)
PID     : 2344                 TID  : 5822   PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000
EDUID   : 5822
FUNCTION: DB2 UDB, oper system services, sqloGetAccountSID, probe:30
MESSAGE : ZRC=0x83000534=-2097150668
CALLED  : OS, -, LookupAccountName
OSERR   : 1332 "アカウント名とセキュリティ ID の間のマッピングは実行されませんでした。"

ただし一部のフィックスパックでは、障害のため db2extsec コマンドが正しく動作しません。
この場合は、以下の APAR 記述を参照して DB2_ADMINGROUP および DB2_USERSGROUP を手動で更新してください。

JR28440 RUNNING DB2EXTSEC FOLLOWING COMPUTERNAME CHANGE RESULTS WITH ERROR: NO MAPPING BETWEEN ACCOUNT NAMES AND SECURITY IDS DONE
JR30561 RUNNING DB2EXTSEC FOLLOWING COMPUTERNAME CHANGE RESULTS WITH ERROR: NO MAPPING BETWEEN ACCOUNT NAMES AND SECURITY IDS DONE
V9.1 および V9.5 の特定のフィックスパックで db2extsec コマンドが正しく動作しない。

関連情報
Changing hostname of the DB2 server
DB2ADMNS と DB2USERS グループの使用による拡張 Windows セキュリティー

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

変更履歴
2010/08/03 表現を旧ホスト名/新ホスト名に統一しました。
2010/08/03 db2extsec の実行タイミングを調整しました。
2011/12/01 DB2 サーバーだけでなくクライアントにも適用できるため、タイトルを変更しました。
2015/02/27 HADR の考慮点を追記

[{"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":"a8m500000008PknAAE","label":"Install\/Migrate\/Upgrade"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"10.1.0;10.5.0;11.1.0;11.5.0;9.7.0"}]

Historical Number

4CDC451D6035B61749257768000FA199

Document Information

Modified date:
12 June 2024

UID

jpn1J1002591