web-dev-qa-db-ja.com

LDAP:slapcatとldapsearchを使用したバックアップ

使用:openldap-servers-2.4.23-34.el6_5.1.x86_64

タスク:crontabのスクリプトを作成して、スケジュールされたデータベースの完全バックアップを作成します。

1)slapcat-デフォルト形式のBerkeley DBでファイルを作成します。

2)slapcatは、slapdの実行中に実行できます(bdb/hdbデータベースが使用されている場合)。

3)slapcatの後にファイルを復元するには-slapaddを使用する必要があります(ldapaddではありません)。

4)slapcat/addはパスワードを必要としません。

5)slapaddは、slapdが停止したときにのみ実行できます。

例:

 $ slapcat -f /etc/openldap/slapd.conf -b "dc=db_1" -l db_1_backup.ldif
 $ slapadd -l db_1_backup.ldif

slapcat/addの代わりに、ldapsearch/addを見てみましょう。

1)ldapsearch-slapcatとほぼ同じ情報を持つファイルを作成します。

2)ldapadd-ldapsearchのファイルを使用できます。slapdを停止する必要はありません。

3)ldapadd/search-パスワードが必要です。

例:

 $ ldapsearch -D "cn=root,dc=db_1" -W -b "dc=db_1" "dc=db_1" -LLL > db_1_backup2.ldif
 $ ldapadd -x -D "cn=root,dc=db_1" -W -f db_1_backup2.ldif

だから-質問は:

1)このツールの説明に何か不足していますか?

2)ldapadd/slapaddladpsearch/slapcatの違いは何ですか?

11
setevoy

良い要約、いくつかの追加ポイント:

  • slapcatは、(ローカル)ダイレクトストレージバックエンドが何であってもダンプします。バークレー(hdbまたはbdb)である必要はありません。 [〜#〜] olc [〜#〜]cn=config)。 LDIF形式 にダンプします。 (直接とは、ローカルに保存されている場合でも、SQLバックエンドなどではなく、OpenLDAPによって直接管理されることを意味します。)
  • ldapaddにはslapd isが必要、slapaddにはis notが必要
  • ldapsearchには、slapdisが実行されている必要があります。slapcatは、BDBバックエンドで実行されているかどうかは気にしません。

要するに:

  • slapcatは、マスターのダウンタイムがあっても、迅速に復元できる適切なバックアップを取得する方法です(さまざまなタイプのレプリケーション設定でこれを回避できます)。これは、一般的なバックアップとアップグレード前のバックアップに使用するものです。
  • ldapsearch+なし)はportableバックアップを取得します。おそらく他のディレクトリサーバーにほとんど問題なくロードできますが、これは単純なOpenLDAPセットアップ(レプリケーションなし、特別なオーバーレイなし、書き換えなし)、およびUUIDの保持/メタデータの作成/変更を気にしない場合。データに合わせて追加のスキーマファイルも必要になります。
  • ldapadd(他のID ldapmodifyを使用)を使用すると、slapadd/slapcatだけでは実現不可能または不可能であるLDAP変更(オブジェクトの変更、削除、および名前変更)を簡単に適用できます

ほとんどの管理者にとって、主な考慮事項は、LDIFの内容が少しずつ異なることと、slapdを実行する(または実行しない)ための要件から生じます。より重要な違いは次のとおりです。

  1. slapcatは、LDAPプロトコルのオーバーヘッド、認証、アクセス制御、オブジェクトと時間制限、オーバーレイを省略してデータベースをダンプするだけなので、より高速です。また、LDAP階層に従って検索しません。
  2. slapaddの方が高速です(ここでもLDAPプロトコルのオーバーヘッドはありません)。既知の正常なバックアップを復元する場合は、クイックモード-q)で実行して、大量のインポートを高速化できます。 。スキーマチェック(-s)を無効にすることもできますが、OpenLDAPバージョン間のスキーマまたはデータ検証の小さな変更は前例がないことに注意してください。
  3. slapcatはローカルデータベースに制限されており、ldapsearchのように他のディレクトリ(back-ldapback-metaなど)にクロスオーバーすることはありません。同じことがslapadd/ldapaddにも当てはまります。
  4. ldapsearchは、バックエンドに保存されていない動的属性を返します。 hasSubordinatesまたはオーバーレイによって維持される変数(slapo-memberofなど)。これらをldapaddでロードする際に問題が発生します(例:no-user-modificationの操作属性)。書き換え(slapo-rwm)も、ディレクトリの内容のldapsearchのビューをゆがめる可能性があります。
  5. slapcatには内部(操作)属性が含まれます。レプリケーションを使用している場合、これらの属性は重要です。レプリケーションを使用すると、バックアップへの依存がやや少なくなりますが、ldapaddを使用してマスターをリロードすると、すべてのオブジェクトはレプリケーションによってrecreatedになります(変更されたentryUUIDentryCSN)。 「+」属性にldapsearch(またはallop overlay)を指定した場合これはslapcatと同じではありません。その理由については、前のポイントを参照してください。これらの属性には、作成/変更DNおよびタイムスタンプも含まれます。これは、一部のアプリケーションにとって重要な場合があります。
  6. slapcatはLDAP階層(暗黙の順序)を監視しないため、ldapaddでデータの順序が有効である保証はありません。つまり、運用属性を削除しても、下位変数が上位の上に表示される可能性があるため、ldapaddは文句を言うことがあります。 (親)。 LDAP仕様では、親が存在する必要がありますが、この点で検索結果の順序は定義されていません。以下のハワードのコメントを参照してください。OpenLDAPのslapaddは、いくつかのバックエンドの順序付けられていないデータを暗黙的にサポートします。ピンチでは、すべての「順不同」の親が作成されるまで、エラー継続オプション(-c)でslapaddを繰り返し使用し、エラーコード32(そのようなオブジェクトがない)を受信しなくなると停止する可能性があります、欠落した親を意味します)、すべてのオブジェクトに対してコード68(既に存在する)のみを受け取ります。
  7. ldapaddはLDAPルールとオーバーレイの対象です。参照整合性、ppolicy(パスワードポリシー)
  8. slapcatは、少なくともuserPasswordにbase-64エンコードされた属性値を使用することを好みます(属性名の後に::で示されます)
  9. ldapsearchには、LDIFフォーマット、および大きな属性を個別のファイルに書き込むためのオプションがさらにあります。 referrals および aliases も処理できます。
12
mr.spuratic

slapcatは、オーバーレイがある場合は機能しません。 memberOf。したがって、slapcat/slapaddを実行すると、メンバーシップオーバーレイが機能しなくなります。

1
Robert Munteanu