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


11

中古: 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

回答:


12

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

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

要するに:

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

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

  1. slapcatLDAPプロトコルのオーバーヘッド、認証、アクセス制御、オブジェクトと時間制限、オーバーレイをスキップするだけでデータベースをダンプするため、高速です。また、LDAP階層に従って検索しません。
  2. slapaddより高速(LDAPプロトコルのオーバーヘッドなし)であり、既知の良好なバックアップを復元する場合は、クイックモード-q)で実行して大規模なインポートを高速化できます。スキーマチェック(-s)を無効にすることもできますが、OpenLDAPバージョン間のスキーマまたはデータ検証のわずかな変更に耳を傾ける必要はありません。
  3. slapcatローカルデータベースに限定され、他のディレクトリ(back-ldap、などback-meta)に渡りませんldapsearch。同じことがslapadd/にも当てはまりますldapadd
  4. ldapsearchバックエンドに保存されていない動的な属性、たとえばhasSubordinates、オーバーレイによって維持されている属性(たとえばslapo-memberof)を返します。これらをロードする際に問題が発生ldapaddします(たとえば、ユーザー変更なしの操作属性)。書き換え(slapo-rwm)もldapsearch、ディレクトリの内容の表示を歪める可能性があります。
  5. slapcat内部(操作)属性が含まれます。レプリケーションを使用している場合、これらの属性は重要です。レプリケーションを使用するldapaddと、バックアップへの依存度がやや低くなりますが、マスターのリロードに使用すると、すべてのオブジェクトがレプリケーションによって再作成されます(変更entryUUID entryCSN)特殊な「+」属性を使用してldapsearch(またはallopオーバーレイ)これはと同じものではありませんslapcat。なぜそうなのかについては、前のポイントを参照してください。これらの属性にはDNの作成/変更とタイムスタンプも含まれますが、これらは一部のアプリケーションにとって重要な場合があります。
  6. ので、slapcatLDAP階層(暗黙の順序付けを)守っていない、そのデータの順序が持つ実行可能なことを行っているという保証はありませんldapadd-つまり、あなたが操作属性を取り除く場合でも、ldapaddサブ縦軸は上司(親)の前に表示される場合がありますので、文句を言うことができます。LDAP仕様では、親が存在する必要がありますが、この点で検索結果の順序は未定義のままです。以下のHowardのコメントを参照してくださいslapadd。OpenLDAPは、一部のバックエンドで非順序データをサイレントにサポートしています。ピンチslapaddでは、-cすべての「順不同」親が作成されるまで、エラー時の継続オプション()で繰り返し使用でき、エラーコード32(そのようなオブジェクトはない、
  7. ldapadd 参照整合性、ppolicy(パスワードポリシー)など、LDAPルールとオーバーレイの対象
  8. slapcat少なくともuserPasswordにbase-64でエンコードされた属性値を使用することを好みます(::属性名の後に示されます)
  9. ldapsearchLDIFフォーマットのオプションが多く、大きな属性を個別のファイルに書き込むことができます。また、紹介エイリアスを処理する場合もあります

LDAP結果の順序は未定義です。slapcatとldapsearchはどちらも任意の順序でエントリを返すことがありますが、どちらの出力もldapaddでの使用に適した順序であるとは限りません。slapaddのbdb / hdb / mdbドライバーには、入力を任意の順序で処理するための特別な回避策がありますが、ldapaddにはありません。
hyc

slapcatデータベース(バックエンド)順でエントリを返します。これは明確に定義されている場合と定義されていない場合があります。ldapsearchデフォルトでは、サーバーが応答する順序で返されます。OpenLDAPでは、クライアント側のソート(例-S "")またはサーバー側のソート制御(-E sssサポートされている場合、マイナーコンフィグおよびスキーマ関連のベアトラップの対象)の選択があります。スペックは述べています検索結果がどのような順序であってもよいです。実装はデフォルトの順序を定義できます。ほとんどの人は、デフォルトは「子より前に親」であると想定しています。OpenDSのみがこれを文書化しています。
mr.spuratic

2
OpenLDAPの検索結果の順序は、意図的に文書化されていません。仕様ではすでに結果は任意の順序であることが示されているため、クライアントソフトウェアは特定の順序に依存してはなりません。もちろん、結果の並べ替えを行うこともできますが、これにはより多くのリソースが必要であり、通常、完全バックアップを行う場合には興味がありません。サブツリーの名前を変更してブランチを新しいDITロケーションに移動する可能性があるため、データベースの順序は比較的無意味です。
hyc

1

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.