LDAP: sao lưu với slapcat vs ldapsearch


11

Đã sử dụng: openldap-servers-2.4.23-34.el6_5.1.x86_64

Nhiệm vụ: tạo tập lệnh crontabđể tạo sao lưu toàn bộ cơ sở dữ liệu theo lịch trình.

1) slapcat- tạo tập tin theo định dạng mặc định, Berkeley DB.

2) slapcatcó thể được thực hiện trong khi slapdchạy (nếu bdb/hdbsử dụng cơ sở dữ liệu).

3) Để khôi phục tập tin sau slapcat- phải được sử dụng slapadd(không ldapadd).

4) slapcat/addkhông yêu cầu mật khẩu.

5) chỉ slapaddcó thể được thực hiện khi slapddừng lại.

Thí dụ:

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

Thay vì slapcat/add- hãy xem ldapsearch/add:

1) ldapsearch- tạo tập tin với thông tin gần như giống nhau slapcat;

2) ldapadd- có thể sử dụng tập tin từ ldapsearch, không cần slapdphải dừng lại;

3) ldapadd/search- yêu cầu mật khẩu.

Thí dụ:

 $ 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

Vì vậy - câu hỏi là:

1) Tôi có thiếu gì trong mô tả công cụ này không?

2) Điều gì khác biệt giữa ldapadd/slapaddladpsearch/slapcat?

Câu trả lời:


12

Tóm tắt tốt, một số điểm bổ sung:

  • slapcatkết xuất từ ​​bất kỳ phụ trợ lưu trữ trực tiếp (cục bộ) nào, nó không cần phải là Berkeley (hdb hoặc bdb), nó cũng hoạt động với OLC ( cn=config). Nó chuyển sang định dạng LDIF . (Theo trực tiếp, tôi có nghĩa là được quản lý trực tiếp bởi OpenLDAP, không phải là phụ trợ SQL, ngay cả khi nó được lưu trữ cục bộ.)
  • ldapaddyêu cầu slapd đang chạy, slapaddyêu cầu nó không chạy
  • ldapsearchyêu cầu slapd đang chạy, slapcatkhông quan tâm nếu nó chạy với phụ trợ BDB, như bạn đã lưu ý

Nói ngắn gọn:

  • slapcatlà cách để có được một bản sao lưu tốt mà bạn có thể khôi phục nhanh chóng, mặc dù có thời gian chết trên bản gốc (bạn có thể làm việc xung quanh điều này với nhiều kiểu sao chép khác nhau được thiết lập). Đây là những gì bạn nên sử dụng để sao lưu chung và sao lưu trước khi nâng cấp.
  • ldapsearch(không có +) sẽ giúp bạn sao lưu di động mà bạn có thể tải với ít khó khăn vào bất kỳ máy chủ thư mục nào khác, nhưng nó sẽ chỉ là một khôi phục khả thi trong một thiết lập OpenLDAP đơn giản (không sao chép, không lớp phủ đặc biệt, không viết lại) và nếu bạn không quan tâm đến việc bảo tồn UUID / tạo / sửa đổi siêu dữ liệu. Bạn cũng sẽ cần bất kỳ tệp lược đồ bổ sung nào đi cùng với dữ liệu của bạn.
  • ldapadd(sử dụng danh tính khác của nó ldapmodify) có thể được sử dụng để dễ dàng áp dụng các sửa đổi LDAP (sửa đổi đối tượng, xóa và đổi tên) không khả thi hoặc có thể với slapadd/ slapcatmột mình

Đối với hầu hết các quản trị viên, các cân nhắc chính phát sinh từ các nội dung hơi khác nhau của LDIF trong từng trường hợp và yêu cầu slapdphải được chạy (hoặc không). Sự khác biệt quan trọng hơn là:

  1. slapcatnhanh hơn bởi vì nó chỉ đơn giản là loại bỏ cơ sở dữ liệu, bỏ qua các giao thức LDAP, xác thực, kiểm soát truy cập, giới hạn đối tượng và thời gian, lớp phủ; và nó không tìm kiếm theo phân cấp LDAP.
  2. slapaddnhanh hơn (một lần nữa, không có chi phí giao thức LDAP) và trong trường hợp bạn đang khôi phục bản sao lưu đã biết, bạn có thể chạy ở chế độ nhanh ( -q) để tăng tốc độ nhập lớn. Bạn cũng có thể vô hiệu hóa kiểm tra lược đồ ( -s), mặc dù lưu ý hơn những thay đổi nhỏ trong lược đồ hoặc xác thực dữ liệu giữa các phiên bản OpenLDAP không phải là chưa từng thấy.
  3. slapcatđược giới hạn trong cơ sở dữ liệu cục bộ, nó sẽ không chuyển qua các thư mục khác (ví dụ với back-ldap, back-meta) theo cách ldapsearchsẽ. Áp dụng tương tự cho slapadd/ ldapadd.
  4. ldapsearchsẽ trả về các thuộc tính động không được lưu trữ trong một phụ trợ, ví dụ hasSubordinateshoặc các thuộc tính được duy trì bởi các lớp phủ (ví dụ slapo-memberof). Bạn sẽ gặp vấn đề khi tải chúng với ldapadd(ví dụ: thuộc tính hoạt động không có người dùng sửa đổi). Viết lại (slapo-rwm) cũng có thể làm sai lệch ldapsearchquan điểm của nội dung thư mục.
  5. slapcatbao gồm các thuộc tính bên trong (hoạt động), nếu bạn đang sử dụng sao chép thì các thuộc tính này rất quan trọng. Với sao chép, bạn sẽ ít phụ thuộc hơn vào các bản sao lưu, nhưng nếu bạn sử dụng ldapaddđể tải lại chủ của mình, mọi đối tượng sẽ được tạo lại bằng cách sao chép (đã thay đổi entryUUID entryCSN) Mặc dù bạn có thể bao gồm các thuộc tính hoạt động bằng cách sử dụng thuộc tính "+" đặc biệt với ldapsearch(hoặc alloplớp phủ), Đây không phải là điều tương tự nhưslapcat , xem điểm trước tại sao lại như vậy. Các thuộc tính này cũng bao gồm tạo / sửa đổi DN và dấu thời gian, có thể quan trọng đối với một số ứng dụng.
  6. bởi vì slapcatkhông tuân theo hệ thống phân cấp LDAP (thứ tự ngụ ý), không có gì đảm bảo rằng thứ tự dữ liệu của nó sẽ khả thi ldapadd- tức là ngay cả khi bạn loại bỏ các thuộc tính hoạt động, ldapaddcó thể khiếu nại vì các cấp dưới có thể xuất hiện trước cấp trên (cha mẹ) . Thông số kỹ thuật LDAP yêu cầu cha mẹ tồn tại, nhưng cũng để lại thứ tự kết quả tìm kiếm không xác định theo khía cạnh này. Xem bình luận của Howard bên dưới, OpenLDAP slapaddâm thầm hỗ trợ dữ liệu không được sắp xếp cho một số phụ trợ. Trong một tình huống khó khăn, bạn có thể sử dụng nhiều lần slapaddvới tùy chọn tiếp tục lỗi ( -c) cho đến khi tất cả các bậc cha mẹ "không theo thứ tự" được tạo, dừng khi bạn không còn nhận được bất kỳ mã lỗi 32 nào nữa (không có đối tượng như vậy,
  7. ldapadd tuân theo các quy tắc và lớp phủ LDAP, ví dụ: tính toàn vẹn tham chiếu, ppolicy (chính sách mật khẩu)
  8. slapcatthích sử dụng các giá trị thuộc tính được mã hóa cơ sở 64 cho ít nhất userPassword (được biểu thị bằng ::sau tên thuộc tính)
  9. ldapsearchcó nhiều tùy chọn hơn cho định dạng LDIF và viết các thuộc tính lớn vào các tệp riêng biệt. Nó cũng có thể xử lý các giới thiệubí danh .

Thứ tự kết quả LDAP không xác định. Cả slapcat và ldapsearch đều có thể trả về các mục theo thứ tự tùy ý, không đầu ra nào được đảm bảo theo thứ tự phù hợp để sử dụng với ldapadd. Trình điều khiển bdb / hdb / mdb của slapadd có cách giải quyết đặc biệt để xử lý đầu vào theo thứ tự tùy ý, ldapadd không.
hyc

slapcattrả về các mục trong cơ sở dữ liệu (phụ trợ), có thể được xác định rõ hoặc không. ldapsearchtheo mặc định trả về theo thứ tự máy chủ trả lời, với OpenLDAP, có sự lựa chọn sắp xếp phía máy khách (ví dụ -S "") hoặc điều khiển sắp xếp phía máy chủ (ví dụ: -E sssnếu được hỗ trợ và tuân theo một số bẫy bẫy liên quan đến cấu hình & lược đồ nhỏ). Thông số kỹ thuật cho biết kết quả tìm kiếm có thể theo bất kỳ thứ tự nào. Việc triển khai có thể xác định một thứ tự mặc định, hầu hết mọi người đều cho rằng mặc định là "cha mẹ trước con", chỉ có tài liệu OpenDS này, AFAIK.
mr.spuratic

2
Thứ tự kết quả tìm kiếm trong OpenLDAP là không có giấy tờ. Vì thông số kỹ thuật đã cho biết kết quả có thể theo bất kỳ thứ tự nào, phần mềm máy khách không được dựa vào bất kỳ thứ tự cụ thể nào. Sắp xếp các kết quả tất nhiên có thể được thực hiện nhưng điều đó đòi hỏi nhiều tài nguyên hơn và thường không thú vị khi thực hiện sao lưu toàn bộ. Thứ tự cơ sở dữ liệu tương đối vô nghĩa với khả năng cây con đổi tên các nhánh di chuyển đến các vị trí DIT mới.
hyc

1

slapcatkhông hoạt động nếu bạn có lớp phủ, ví dụ memberOf. Vì vậy, nếu bạn thực hiện slapcat/ slapaddlớp phủ thành viên chu kỳ sẽ không còn hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.