OpenLDAP-Berkeley DB 設定


以下前言為引述[Berkeley DB - 維基百科]

Berkeley DB (DB)是一個高性能的,嵌入資料庫編程庫,和C語言, C++, Java, Perl, Python, Tcl以及其他很多語言都有綁定。Berkeley DB可以保存任意類型的鍵/值對,而且可以為一個鍵保存多個數據。Berkeley DB可以支持數千的併發執行緒同時操作資料庫,支持最大256TB的數據,廣泛用於各種作業系統包括大多數Unix類作業系統和Windows作業系 db_arch統以及實時作業系統.

以下前言為引述 [Berkeley DB - 灰狐维客-你的知识库]

BDB 之所以適合LDAP,一個關鍵的因素是它可以保證LDAP的快速響應.因為BDB本身是一種嵌入式的數據庫,速度快是它最大的特點,也是它和其他數據庫系 統相比最大的優勢.我們再來看LDAP,LDAP是一種一旦數據建立就很少需要改動的數據庫,並且它最常用的操作是讀取,查詢,搜索等等不改變數據庫內容 的操作.而讓BDB來做這幾種事情無疑是最好的選擇.這樣,即使在有大量用戶提交數據庫查詢的情況下,LDAP仍能快速反饋給用戶有用信息.所以, 速度的考慮是LDAP選用BDB的最大因素.這也是目前絕大多數的LDAP服務器都選用BDB的根本原因.

Berkeley DB 設定檔 DB_CONFIG,設定 DB_CONFIG 好處如下

*保留 DATA 及 Log 在不同的儲存設備(例如:硬碟),且能增強效率及可靠性
*可針對部份選項最佳化(例如:共享記憶體大小)
*可改變預設 Log 檔大小(預設為 10MB)

【作業環境】

FreeBSD 6.1-STABLE

db43-4.3.29

【安裝及設定】

Step1.複製設定檔至 BDB 目錄

以下設定數值單位皆為 bytes

#cp /usr/local/etc/openldap/DB_CONFIG.example /var/db/openldap-data/DB_CONFIG
#vim /var/db/openldap-data/DB_CONFIG
set_cachesize 0 268435456 1 //設定bdb的cache大小單位為Bytes(所以此例設為256MB)
set_lg_regionmax 1048576 //設定存於 Memory Cache 大小
set_lg_max 10485760 //設定資料庫 Log 最大值(/var/db/openldap-data/log.0000000001)
set_lg_bsize 2097152 //設定資料庫 Log 時 Buffer Cache
set_lg_dir /var/db/openldap-data //設定資料庫 Log 存放路徑

Berkeley DB 支援的資料庫工具列表(公用程式)

Utility Description 中文描述
db_archive Archival utility 檔案處理工具程式
db_checkpoint Transaction checkpoint utility 監視和檢查資料庫 Log 的工具程式
db_deadlock Deadlock detection utility 解除資料庫鎖死工具程式
db_dump Database dump utility 資料庫 Dump 工具程式(ASCII格式文字檔,跨平台適用)
db_load Database load utility 資料庫 Load 工具程式(ASCII格式文字檔,跨平台適用)
db_printlog Transaction log display utility 資料庫 Log 轉換工具程式(人類可讀格式)
db_recover Recovery utility 資料庫復原工具程式
db_stat Statistics utility 資料庫狀態顯示工具程式
db_upgrade Database upgrade utility 資料庫升級工具程式
db_verify Verification utility 驗證資料庫資料一致性工具程式

備份 Berkeley DB Database

1.#/usr/local/etc/rc.d/slapd stop //停止slapd服務(停止資料寫入)
2.#db_checkpoint-4.3 -1 -h /var/db/openldap-data/ //確保資料寫入資料庫中
3.#db_archive-4.3 -s -h /var/db/openldap-data/ //列出所有資料庫檔案(*.bdb),請複製至備份目錄
4.#db_archive-4.3 -l -h /var/db/openldap-data/ //列出所有資料庫Log((log.*),請複製至備份目錄
5.#/usr/local/etc/rc.d/slapd start //啟動slapd服務

還原 Berkeley DB Database

1.#/usr/local/etc/rc.d/slapd stop //停止slapd服務(停止資料寫入)
2.把備份的(*.bdb,log.*******) 複製到 /var/db/openldap-data
3.#db_recover-4.3 -h /var/db/openldap-data //還原資料庫
4.#/usr/local/etc/rc.d/slapd start //啟動slapd服務

【參考】

[关于openldap/bdb的一些配置和维护的问题]

[OpenLDAP Faq-O-Matic: How to maintain Berkeley DB]

[OpenLDAP Faq-O-Matic: How do I configure the BDB backend?]

[Chapter 6 OpenLDAP slapd.conf database bdb]

[OpenLDAP: BDB Configuration]

[Berkeley DB Reference Guide (Version: 4.4.20)]

[What is Berkeley DB?]

[Berkeley DB:中国讨论区 ]

[Berkeley DB - 灰狐维客-你的知识库]

[Berkeley DB - 維基百科]

[Berkeley DB Supporting Utilities]

[docs.sun.com: Sun Java System Calendar Server 6 2005Q4 管理指南]

【Me FAQ】

Q1.bdb_db_open: Warning - No DB_CONFIG file found in directory /var/db/openldap-data?

Error Meaage:

啟動 slapd 服務後,查看 ldap.log 發現如下訊息

Jul 19 10:19:34 ldap slapd[55696]: bdb_db_open: Warning - No DB_CONFIG file found in directory /var/db/openldap-data: (2)
Expect poor performance for suffix dc=weithenn,dc=idv,dc=tw.

Ans:

1.#cp /usr/local/etc/openldap/DB_CONFIG.example /var/db/openldap-data/
2.#vim DB_CONFIG
set_cachesize 0 268435456 1 //設定bdb的cache大小單位為Bytes(所以此例設為256MB)
set_lg_regionmax 1048576 //設定存於 Memory Cache大小
set_lg_max 10485760 //設定操作 Log 最大值(/var/db/openldap-data/log.0000000001)
set_lg_bsize 2097152 //設定操作 Log 時 Buffer Cache
set_lg_dir /var/db/openldap-data //設定操作 Log 存放路徑
3.#/usr/local/etc/rc.d/slapd stop
4.#db_recover-4.3 -h /var/db/openldap-data
5.#/usr/local/etc/rc.d/slapd start

[determine the proper BDB/HDB database cache size?]

[OpenLdap Mailing List DB_CONFIG file] 

你可能感兴趣的:(LDAP,Java开源技术)