站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

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,LDA P是一種一旦數據建立就很少需要改動的數據庫並且它最常用的操作是讀取、查詢、搜索等等不改變數據庫內容的操作,而讓 BDB 來做這幾種事情無疑是最好的選擇,即使在有大量用戶提交數據庫查詢的情況下,LDAP 仍能快速反饋給用戶有用信息。所以速度的考慮是LDAP 選用 BDB 的最大因素。這也是目前絕大多數的 LDAP 服務器都選用 BDB 的根本原因。

Berkeley DB 設定檔 (DB_CONFIG),設定後好處如下

實作環境

安裝及設定

步驟1.複製設定檔至 BDB 目錄

將 Berkeley DB 設定檔 (DB_CONFIG) 複製到 ldap 目錄下,以下設定數值單位皆為 bytes

 #cp /usr/local/etc/openldap/DB_CONFIG.example /var/db/openldap-data/DB_CONFIG
 #vim /var/db/openldap-data/DB_CONFIG              //修改 BDB 設定檔
   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 存放路徑

步驟2.Berkeley DB 資料庫工具

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

工具名稱原文描述中文描述
db_archiveArchival utility檔案處理工具程式
db_checkpointTransaction checkpoint utility監視和檢查資料庫 Log 的工具程式
db_deadlockDeadlock detection utility解除資料庫鎖死工具程式
db_dumpDatabase dump utility資料庫 Dump 工具程式(ASCII 格式文字檔,跨平台適用)
db_loadDatabase load utility資料庫 Load 工具程式(ASCII 格式文字檔,跨平台適用)
db_printlogTransaction log display utility資料庫 Log 轉換工具程式 (人類可讀格式)
db_recoverRecovery utility資料庫復原工具程式
db_statStatistics utility資料庫狀態顯示工具程式
db_upgradeDatabase upgrade utility資料庫升級工具程式
db_verifyVerification utility驗證資料庫資料一致性工具程式

步驟3.備份 Berkeley DB

以下步驟為說明如何備份 Berkeley DB Database

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

步驟4.還原 Berkeley DB

以下步驟為說明如何還原 Berkeley DB Database

 #/usr/local/etc/rc.d/slapd stop                      //停止 slapd 服務 (停止資料寫入)
 將備份的 (*.bdb,log.*******) 複製到 /var/db/openldap-data
 #db_recover-4.3 -h /var/db/openldap-data             //還原資料庫
 #/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=org.

Ans:

上述警告訊息為說明您的網域 LDAP 未設定 Berkeley DB 將會造成效率低落,以下為設定 Berkeley DB 設定檔 (DB_CONFIG) 內容及步驟

 #cp /usr/local/etc/openldap/DB_CONFIG.example /var/db/openldap-data/
 #vim DB_CONFIG                                    //修改 BDB 設定檔
   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 存放路徑
 #/usr/local/etc/rc.d/slapd stop
 #db_recover-4.3 -h /var/db/openldap-data
 #/usr/local/etc/rc.d/slapd start

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

[ OpenLdap Mailing List DB_CONFIG file]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com