第6章 バックエンドデータベースの整合性の確認

Directory Server データベースの整合性チェックは、破損したメタデータページや重複キーのソートなどの問題を検出できます。問題が検出される場合は、問題によっては、データベースのインデックスを再作成したり、バックアップを復元したりすることができます。

6.1. データベース整合性チェックの実行

dsctl dbverify コマンドを使用すると、管理者はバックエンドデータベースの整合性を検証できます。

手順

  1. 必要に応じて、インスタンスのバックエンドデータベースをリスト表示します。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com backend suffix list
    dc=example,dc=com (userRoot)
  2. インスタンスを停止します。

    # dsctl instance_name stop
  3. データベースを確認します。たとえば、userroot データベースを確認するには、以下のコマンドを実行します。

    # dsctl instance_name dbverify userRoot
    [04/Feb/2022:13:11:02.453624171 +0100] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    [04/Feb/2022:13:11:02.465339507 +0100] - WARN - ldbm_instance_add_instance_entry_callback - ldbm instance userroot already exists
    [04/Feb/2022:13:11:02.468060144 +0100] - ERR - ldbm_config_read_instance_entries - Failed to add instance entry cn=userroot,cn=ldbm database,cn=plugins,cn=config
    [04/Feb/2022:13:11:02.471079045 +0100] - ERR - bdb_config_load_dse_info - failed to read instance entries
    [04/Feb/2022:13:11:02.476173304 +0100] - ERR - libdb - BDB0522 Page 0: metadata page corrupted
    [04/Feb/2022:13:11:02.481684604 +0100] - ERR - libdb - BDB0523 Page 0: could not check metadata page
    [04/Feb/2022:13:11:02.484113053 +0100] - ERR - libdb - /var/lib/dirsrv/slapd-instance_name/db/userroot/entryrdn.db: BDB0090 DB_VERIFY_BAD: Database verification failed
    [04/Feb/2022:13:11:02.486449603 +0100] - ERR - dbverify_ext - verify failed(-30970): /var/lib/dirsrv/slapd-instance_name/db/userroot/entryrdn.db
    dbverify failed
  4. 検証プロセスで問題が報告された場合は、手動で修正するか、バックアップを復元します。
  5. インスタンスを起動します。

    # dsctl instance_name start