IBM Support

[Db2] バックアップが SQL2048N rc=2 オブジェクト"db2rhist.asc"のアクセス中にエラーで失敗する

Question & Answer


Question

バックアップを取得しようとすると以下のエラー・メッセージが表示され、バックアップを取得できません。 エラーの原因と対処方法を教えてください。
SQL2048N オブジェクト "db2rhist.asc" のアクセス中にエラーが発生しました。理由コード:"2"

Cause

バックアップを実行すると Db2 は回復履歴ファイル (db2rhist.asc) の更新を行います。この時、他のプロセスが回復履歴ファイルを更新できないようにセマフォの取得を試みますが、そのセマフォが既に存在していた場合、上記のエラーが返されバックアップが行えないことがあります。

Db2 Linux/Unix 版は、回復履歴ファイルの i-node 番号を基にセマフォのキーを生成します。Db2 内で使用するキーが重複することは通常ほぼありませんが、他のアプリケーションが偶然同じキーを使用してセマフォを使用している場合などにキーが重複し、上記のようなエラーが発生することがあります。

Answer

このエラーが発生した場合は以下の手順で回復履歴ファイルをリネームし、"db2 list history all for DB名" を実行してください。回復履歴ファイルが再作成されることにより i-node 番号が変更され、新たなキーでセマフォの取得を試みるのでバックアップが行えるようになります。
 
  1. db2rhist.asc ファイルのディレクトリへ移動します。
    ※ 該当のデータベース・パスです。
    $ cd /home/db2inst1/db2inst1/NODE0000/SQL00001/
  2.  db2rhist.asc, db2rhist.bak が存在することを確認します。
    $ ls db2rhist.*
  3. db2rhist.asc, db2rhist.bak をリネームします。
    $ mv db2rhist.asc db2rhist.old.asc
    $ mv db2rhist.bak db2rhist.old.bak
  4. 回復履歴ファイルを再作成します。
    $ db2 list history all for データベース名
  5. db2rhist.asc, db2rhist.bak が再作成されていることを確認します。
    $ ls -l db2rhist.*
  6. 再度バックアップを実行します。

運用上の考慮点
特にありません。

関連情報
データベース・ディレクトリーおよびファイル
LIST HISTORY コマンド
 
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと 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":"a8m500000008PmaAAE","label":"Recovery-\u003EBackup"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"All Versions"}]

Document Information

Modified date:
25 August 2023

UID

swg21595371