LDAP: สำรองข้อมูลด้วย slapcat vs 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/slapaddและladpsearch/slapcat?

คำตอบ:


12

สรุปดีมีประเด็นเพิ่มเติมบางอย่าง:

  • slapcatดัมพ์จากแบ็กเอนด์หน่วยเก็บข้อมูลโดยตรง (ในพื้นที่) คือไม่จำเป็นต้องเป็น Berkeley (hdb หรือ bdb) มันยังทำงานได้กับOLC ( cn=config) มันทิ้งไปรูปแบบ LDIF (โดยตรงฉันหมายถึงการจัดการโดยตรงโดย OpenLDAP ไม่ใช่ตัวอย่างเช่นแบ็กเอนด์ SQL แม้ว่าจะเก็บไว้ในเครื่อง)
  • ldapaddต้อง slapd ที่จะทำงานslapaddต้องว่ามันไม่ได้ทำงาน
  • ldapsearchต้องการที่slapd จะทำงานslapcatไม่สนใจว่ามันจะทำงานกับแบ็กเอนด์ BDB ตามที่คุณบันทึกไว้

ในระยะสั้น:

  • slapcatเป็นวิธีการรับการสำรองข้อมูลที่ดีที่คุณสามารถกู้คืนได้อย่างรวดเร็วแม้ว่าจะมีการหยุดทำงานของเครื่อง (คุณสามารถหลีกเลี่ยงปัญหานี้ได้ด้วยการตั้งค่าการจำลองแบบต่างๆ) นี่คือสิ่งที่คุณควรใช้สำหรับการสำรองข้อมูลทั่วไปและสำรองข้อมูลการอัปเกรดล่วงหน้า
  • ldapsearch(โดยไม่ต้อง+) จะทำให้คุณได้รับการสำรองข้อมูลแบบพกพาที่คุณสามารถโหลดได้ยากด้วยเซิร์ฟเวอร์ไดเรกทอรีอื่น ๆ แต่จะเป็นการคืนค่าที่ทำงานได้ในการตั้งค่า OpenLDAP แบบง่าย ๆ (ไม่มีการจำลองแบบไม่มีการซ้อนทับพิเศษไม่มีการเขียนใหม่) และ คุณไม่สนใจเกี่ยวกับการรักษา UUID / สร้าง / แก้ไข meta-data คุณจะต้องมีไฟล์สคีมาเพิ่มเติมพร้อมกับข้อมูลของคุณด้วย
  • ldapadd(ใช้ข้อมูลประจำตัวอื่น ๆldapmodify) สามารถใช้เพื่อปรับเปลี่ยน LDAP ได้อย่างง่ายดาย (แก้ไขวัตถุลบและเปลี่ยนชื่อ) ซึ่งไม่สามารถทำได้หรือเป็นไปได้ด้วยslapadd/ slapcatเพียงอย่างเดียว

สำหรับผู้ดูแลระบบส่วนใหญ่ข้อควรพิจารณาหลักเกิดขึ้นจากเนื้อหาที่แตกต่างกันเล็กน้อยของ LDIF ในแต่ละกรณีและข้อกำหนดสำหรับslapdการทำงาน (หรือไม่) ความแตกต่างที่สำคัญคือ:

  1. slapcatเร็วกว่าเพราะทิ้งฐานข้อมูลโดยข้ามโอเวอร์เฮดของโปรโตคอล LDAP การตรวจสอบสิทธิ์การควบคุมการเข้าถึงวัตถุและเวลาที่ จำกัด การซ้อนทับ และจะไม่ค้นหาตามลำดับชั้นของ LDAP
  2. slapaddเร็วขึ้น (อีกครั้งโดยไม่มีค่าใช้จ่ายโปรโตคอล LDAP) และในกรณีที่คุณเรียกคืนการสำรองข้อมูลที่ดีที่รู้จักคุณสามารถเรียกใช้ในโหมดรวดเร็ว ( -q) เพื่อเร่งการนำเข้าขนาดใหญ่ นอกจากนี้คุณยังสามารถปิดใช้งานการตรวจสอบสคีมา ( -s) แม้ว่าโน้ตจะมีการเปลี่ยนแปลงเล็กน้อยในสคีมาหรือการตรวจสอบความถูกต้องของข้อมูลระหว่าง OpenLDAP เวอร์ชันต่าง ๆ ที่ไม่เคยได้ยินมาก่อน
  3. slapcatจะถูก จำกัด ไปยังฐานข้อมูลท้องถิ่นก็จะไม่ข้ามไปยังไดเรกทอรีอื่น ๆ (เช่นกับback-ldap, back-meta) วิธีการที่ldapsearchจะ เช่นเดียวกับการ/slapaddldapadd
  4. ldapsearchจะส่งคืนแอตทริบิวต์แบบไดนามิกซึ่งไม่ได้จัดเก็บไว้ในส่วนแบ็คเอนด์เช่นhasSubordinatesหรือที่เก็บรักษาโดยการซ้อนทับ (เช่นslapo-memberof) คุณจะมีปัญหาในการโหลดสิ่งเหล่านี้ด้วยldapadd(เช่นแอตทริบิวต์การทำงานที่ไม่มีการแก้ไขโดยผู้ใช้) การเขียนซ้ำ (slapo-rwm) อาจบิดเบือนldapsearchมุมมองของเนื้อหาไดเรกทอรี
  5. slapcatรวมถึงคุณลักษณะภายใน (การดำเนินงาน) หากคุณใช้การจำลองแบบคุณลักษณะเหล่านี้มีความสำคัญ ด้วยการจำลองแบบคุณจะค่อนข้างน้อยกว่าการสำรองข้อมูล แต่ถ้าคุณใช้ldapaddในการโหลดต้นแบบของคุณใหม่ทุกวัตถุจะถูกสร้างขึ้นใหม่โดยการจำลองแบบ (เปลี่ยนentryUUID entryCSN) แม้ว่าคุณจะสามารถรวมคุณลักษณะการทำงานโดยใช้แอตทริบิวต์ "+" พิเศษด้วยldapsearch(หรือallopซ้อนทับ) นี่ไม่ใช่สิ่งเดียวกันslapcatดูที่ประเด็นก่อนหน้าว่าเพราะเหตุใด คุณลักษณะเหล่านี้ยังรวมถึงการสร้าง / แก้ไข DN และการประทับเวลาซึ่งอาจมีความสำคัญกับบางแอปพลิเคชัน
  6. เพราะslapcatไม่ได้สังเกตลำดับชั้นของ LDAP (นัยสั่งซื้อ) มีการรับประกันว่าการสั่งซื้อข้อมูลเป็นไปได้ที่ทำงานได้โดยไม่มีldapadd- คือแม้ว่าคุณจะดึงออกจากคุณลักษณะการดำเนินงานldapaddสามารถบ่นเพราะย่อยพิกัดอาจจะปรากฏก่อนบังคับบัญชาของพวกเขา (พ่อแม่) . ข้อมูลจำเพาะของ LDAP ต้องการให้ผู้ปกครองมีอยู่ แต่ยังคงไว้ซึ่งผลการค้นหาที่ไม่ได้กำหนดในส่วนนี้ ดูความคิดเห็นของฮาวเวิร์ดด้านล่าง OpenLDAP slapaddสนับสนุนข้อมูลที่ไม่มีการเรียงลำดับสำหรับแบ็กเอนด์บางส่วน ในการบีบคุณอาจจะสามารถใช้ซ้ำslapaddกับตัวเลือกข้อผิดพลาดต่อไป ( -c) จนกว่าพ่อแม่ "หมดคำสั่ง" จะถูกสร้างขึ้นหยุดเมื่อคุณไม่ได้รับรหัสข้อผิดพลาด 32 (ไม่มีวัตถุดังกล่าวอีกต่อไป
  7. ldapadd ขึ้นอยู่กับกฎของ LDAP และการซ้อนทับเช่น Referential integrity ppolicy (นโยบายรหัสผ่าน)
  8. slapcatต้องการใช้ค่าแอ็ตทริบิวต์ที่เข้ารหัส base-64 เป็นเวลาอย่างน้อย userPassword (ระบุด้วย::หลังชื่อแอ็ตทริบิวต์)
  9. ldapsearchมีตัวเลือกเพิ่มเติมสำหรับการจัดรูปแบบ LDIF และการเขียนคุณลักษณะขนาดใหญ่เพื่อแยกไฟล์ นอกจากนี้ยังอาจจัดการกับการแนะนำผลิตภัณฑ์และชื่อแทน

ลำดับผลลัพธ์ LDAP ไม่ได้ถูกกำหนดไว้ ทั้ง slapcat และ ldapsearch อาจส่งคืนรายการตามลำดับโดยพลการโดยไม่รับประกันว่าเอาต์พุตจะอยู่ในลำดับที่เหมาะสมสำหรับใช้กับ ldapadd slapadd ของไดรเวอร์ bdb / hdb / mdb มีวิธีแก้ไขพิเศษเพื่อประมวลผลอินพุตตามลำดับโดยพลการ ldapadd ไม่มี
hyc

slapcatส่งคืนรายการในลำดับฐานข้อมูล (แบ็กเอนด์) ซึ่งอาจหรืออาจจะไม่ชัดเจน ldapsearchตามค่าเริ่มต้นตามลำดับที่เซิร์ฟเวอร์ตอบกลับด้วย OpenLDAP มีตัวเลือกการเรียงลำดับฝั่งไคลเอ็นต์ (เช่น-S "") หรือตัวควบคุมการเรียงลำดับฝั่งเซิร์ฟเวอร์ (เช่น-E sssหากสนับสนุน สเปคกล่าวว่าผลการค้นหาอาจจะอยู่ในลำดับใด การใช้งานสามารถกำหนดลำดับเริ่มต้นคนส่วนใหญ่ถือว่าค่าเริ่มต้นคือ "ผู้ปกครองก่อนที่เด็ก" เฉพาะ OpenDS เอกสารนี้ AFAIK
mr.spuratic

2
ลำดับผลลัพธ์การค้นหาใน OpenLDAP ไม่มีเจตนาที่ไม่มีเอกสาร เนื่องจากข้อมูลจำเพาะระบุว่าผลลัพธ์อาจอยู่ในลำดับใด ๆ ซอฟต์แวร์ไคลเอ็นต์จะต้องไม่พึ่งพาคำสั่งซื้อใด ๆ แน่นอนการเรียงลำดับของผลลัพธ์สามารถทำได้ แต่ต้องใช้ทรัพยากรมากขึ้นและโดยทั่วไปจะไม่น่าสนใจเมื่อทำการสำรองข้อมูลเต็มรูปแบบ คำสั่งฐานข้อมูลค่อนข้างไม่มีความหมายเนื่องจากความเป็นไปได้ในการเปลี่ยนชื่อทรีย่อยย้ายสาขาไปยังที่ตั้ง DIT ใหม่
HYC

1

slapcatmemberOfไม่ทำงานถ้าคุณมีภาพซ้อนทับเช่น ดังนั้นหากคุณทำslapcat/ slapaddซ้อนทับสมาชิก/ รอบจะไม่ทำงานอีกต่อไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.