13.8. 証明書証明書システムのバックアップと復元
Certificate System には、バックアップと復元のツールは含まれません。ただし、Certificate System コンポーネントは手動でアーカイブおよび復元できます。このコンポーネントは、証明書または鍵の情報が失われた場合に情報にアクセスできないデプロイメントに必要な場合があります。Certificate System の主な部分は、データ損失やハードウェアに障害が発生した場合に、通常 3 つにバックアップする必要があります。
- 内部データベース。サブシステムは LDAP データベースを使用してデータを保管します。Directory Server は、独自のバックアップスクリプトと手順を提供します。
- インスタンスディレクトリー。インスタンスディレクトリーには、すべての設定ファイル、セキュリティーデータベース、その他のインスタンスファイルが含まれます。これは、tar や zip などのユーティリティーを使用してバックアップできます。
13.8.1. LDAP 内部データベースのバックアップおよび復元
Red Hat Directory Server のドキュメント には、データベースのバックアップおよび復元の詳細情報が記載されています。
13.8.1.1. LDAP 内部データベースのバックアップ
Directory Server インスタンスをバックアップするために、2 組のツールを使用できます。各バックアップツールには、生成したファイルを復元するツールがあります。
db2ldif
ツールは、ldif2db
ツールを使用して復元できる LDIF ファイルを作成します。db2ldif
コマンドは、bak2db
ツールを使用して復元できる LDIF ファイルを作成します。
13.8.1.1.1. db2ldif を使用したバックアップ
db2ldif コマンドを実行すると、
--n
オプションで指定した単一のサブシステムデータベースのバックアップを作成します。
注記
db2ldif コマンドは dirsrv ユーザーで実行するため、
/root/
ディレクトリー配下に書き込み権限がないため、書き込みが可能なパスを提供する必要があります。
- PKI サブシステムが使用する各 Directory Server データベースをバックアップします。以下の pki-server ca-db-config-show コマンドを使用して、指定のサブシステムのデータベース名を確認することができます。以下に例を示します。
# db2ldif -V -n pki-tomcat-CA -a /var/lib/dirsrv/slapd-pki1/ldif/pki-ca-backup.ldif Exported ldif file: /var/lib/dirsrv/slapd-pki1/ldif/pki-ca-backup.ldif ldiffile: /var/lib/dirsrv/slapd-pki1/ldif/pki-ca-backup.ldif [05/Nov/2020:10:17:53.835635923 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [05/Nov/2020:10:17:53.845938266 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [05/Nov/2020:10:17:53.851851787 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [05/Nov/2020:10:17:53.874058831 -0500] - INFO - ldbm_back_ldbm2ldif - export pki-tomcat-CA: Processed 67 entries (100%). [05/Nov/2020:10:17:53.884181122 -0500] - INFO - dblayer_pre_close - All database threads now stopped
- 個々のサブシステムデータベースをすべてバックアップする以外に、
userRoot
を-n
オプションとして追加することでメインデータベースをバックアップできます。以下に例を示します。# db2ldif -V -n userRoot -a /var/lib/dirsrv/slapd-pki1/ldif/userRoot.ldif
ldif2db
を使用して LDIF ファイルを復元するには、「ldif2db を使用した復元」 を参照してください。
13.8.1.1.2. db2bak を使用したバックアップ
db2bak コマンドを実行すると、Directory Server (および Directory Server インスタンスが維持するその他のデータベース) の全 Certificate System サブシステムデータベースがバックアップされます。
以下に例を示します。
# db2bak Back up directory: /var/lib/dirsrv/slapd-pki1/bak/pki1-2020_11_05_11_20_21
注記
db2bak コマンドを dirsrv ユーザーで実行するため、ターゲットディレクトリーは dirsrv で書き込み可能でなければなりません。引数を指定せずにコマンドを実行すると、db2bak が適切な書き込み権限を持つ
/var/lib/dirsrv/slapd-<instance_name>/bak
ディレクトリーにバックアップが作成されます。
bak2db を使用して LDIF ファイルを復元するには、「bak2db を使用した復元」 を参照してください。
13.8.1.2. LDAP 内部データベースの復元
Directory Server インスタンスをバックアップする方法に応じて、対応するファイルで
ldif2db
またはbak2db
を使用して、データベースを復元してください。
注記
データベースを復元する前に、インスタンスを停止してください。
13.8.1.2.1. ldif2db を使用した復元
db2ldif
で LDIF ファイルを作成している場合は、ldif2db コマンドを使用して、Directory Server インスタンスを停止してファイルをインポートします。1 つのデータベースを指定して、バックアップから復元できます。以下に例を示します。
- Directory Server インスタンスを停止します。
# systemctl stop dirsrv@instance_name
-n
オプションで指定されたサブシステムに対して、-i
オプションによって指定したファイルをインポートします。# ldif2db -V -n pki-tomcat-CA -i /var/lib/dirsrv/slapd-pki1/ldif/pki-ca-backup.ldif importing data ... [06/Nov/2020:09:27:07.103094925 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [06/Nov/2020:09:27:07.118712207 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 ……... [06/Nov/2020:09:27:09.213947960 -0500] - INFO - import_main_offline - import pki-tomcat-CA: Closing files... [06/Nov/2020:09:27:09.470742715 -0500] - INFO - dblayer_pre_close - All database threads now stopped [06/Nov/2020:09:27:09.479321728 -0500] - INFO - import_main_offline - import pki-tomcat-CA: Import complete. Processed 67 entries in 2 seconds. (33.50 entries/sec)
- Directory Server インスタンスを開始します。
# systemctl start dirsrv@instance_name
13.8.1.2.2. bak2db を使用した復元
db2bak
を使用してバックアップファイルを作成している場合は、Directory Server を停止し、bak2db コマンドを使用してファイルをインポートします。単一のデータベースを指定して、バックアップから復元することもできます。以下に例を示します。
- Directory Server インスタンスを停止します。
# systemctl stop dirsrv@instance_name
-n
オプションで指定したサブシステムのファイルをインポートします。# bak2db /var/lib/dirsrv/slapd-pki1/bak/pki1-2020_11_06_09_40_21/ -n pki-tomcat-CA -V [06/Nov/2020:09:41:02.984808879 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [06/Nov/2020:09:41:02.991860094 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 ...... [06/Nov/2020:09:41:12.853686475 -0500] - INFO - dblayer_copy_directory - Restoring file 40 (/var/lib/dirsrv/slapd-pki1/db/pki-tomcat-CA/seeAlso.db) [06/Nov/2020:09:41:12.873881494 -0500] - WARN - dblayer_start - DB already started. [06/Nov/2020:09:41:12.883966616 -0500] - INFO - dblayer_pre_close - All database threads now stopped [06/Nov/2020:09:41:12.888381193 -0500] - INFO - dblayer_restore - Removing staging area /var/lib/dirsrv/slapd-pki1/db/../fribak.
また、-n
オプションを指定せずにコマンドを使用して、バックアップから完全なデータベースを復元することもできます。以下に例を示します。# bak2db /var/lib/dirsrv/slapd-pki1/bak/pki1-2020_11_06_09_40_21/ -V [06/Nov/2020:09:53:01.977785135 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 [06/Nov/2020:09:53:01.994426925 -0500] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 ......... [06/Nov/2020:09:53:02.800340285 -0500] - INFO - dblayer_restore - Restoring file 68 (/var/lib/dirsrv/slapd-pki1/db/DBVERSION) [06/Nov/2020:09:53:02.814235053 -0500] - INFO - dblayer_copyfile - Copying /var/lib/dirsrv/slapd-pki1/bak/pki1-2020_11_06_09_40_21/DBVERSION to /var/lib/dirsrv/slapd-pki1/db/DBVERSION [06/Nov/2020:09:53:03.317071092 -0500] - INFO - dblayer_pre_close - All database threads now stopped
- Directory Server インスタンスを開始します。
# systemctl start dirsrv@instance_name