OpenLDAP-Berkeley DB 設定

本文介绍了OpenLDAP为何选择Berkeley DB作为其数据库的原因,主要在于Berkeley DB的高性能和快速响应。详细阐述了Berkeley DB的配置文件DB_CONFIG的设置,包括数据和日志的存储位置、内存缓存大小等关键选项,并提供了FreeBSD环境下OpenLDAP与Berkeley DB的安装、设置和备份恢复流程。此外,还列举了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-
<think>我们正在解决在RHEL8上使用dnf安装openldap-servers和openldap-clients时出现的“Nomatchforargument:openldap-servers”错误。在RHEL8中,OpenLDAP服务器的软件包名称已经改变。原本在RHEL7中叫做openldap-servers,在RHEL8中,它被替换为`openldap-servers`的一个新的包,但实际上,在RHEL8中,OpenLDAP服务器软件包被包含在`openldap-servers`包中,但是请注意,RHEL8默认的AppStream仓库中可能没有提供这个包?或者包名发生了变化?经过查询,在RHEL8中,OpenLDAP服务器的包名仍然是`openldap-servers`,但需要确保启用了正确的仓库。然而,根据RedHat官方文档,在RHEL8中,OpenLDAP服务器软件包已经被废弃,取而代之的是389DirectoryServer(DS)。但是,如果用户仍然需要安装OpenLDAP服务器,可以通过以下步骤:但是,我们注意到用户的需求是为Samba服务提供账户认证,而Samba通常可以与OpenLDAP集成,也可以与389DirectoryServer集成。不过,问题中明确要求安装slapd(OpenLDAP服务器),所以我们需要安装OpenLDAP。实际上,在RHEL8的AppStream仓库中,仍然提供了openldap-servers包,但包名可能略有不同?或者需要启用PowerTools仓库?根据实际经验,在RHEL8中,`openldap-servers`包在AppStream仓库中是可用的。但是,有时候这个错误是因为仓库未正确配置或者包名确实变化了。我们首先尝试以下步骤:1.更新系统并启用PowerTools仓库(因为有些包在PowerTools中):```bashsudodnfupdate-ysudodnfinstall-ydnf-plugins-coresudodnfconfig-manager--set-enabledpowertools#对于RHEL8,PowerTools仓库可能包含额外的包```2.然后尝试安装:```bashsudodnfinstall-yopenldap-serversopenldap-clients```但是,如果上述方法不行,我们可以考虑使用EPEL仓库,但请注意EPEL仓库中的OpenLDAP可能不是官方支持的。另外,根据RedHat官方知识库,RHEL8中OpenLDAP服务器的包名确实是`openldap-servers`,但需要确保订阅了正确的仓库。如果上述方法都不行,我们可以尝试使用`yum`命令(dnf的别名)并搜索可用的包:```bashsudodnfsearchopenldap-server```或者,查看所有可用的openldap相关包:```bashsudodnflistavailableopenldap\*```根据搜索结果,我们可能会发现包名是`openldap-servers`,或者可能是其他名字(比如在EPEL中可能有不同的包)。但是,如果用户的环境没有PowerTools仓库,或者没有启用,那么可能需要启用。总结步骤:步骤1:确保系统已注册并订阅了适当的仓库(如果是付费订阅)。步骤2:启用PowerTools仓库(在RHEL8中,这个仓库提供了额外的开发工具和库)。步骤3:尝试安装。如果用户没有PowerTools仓库,可以尝试以下方法启用:对于RHEL8,PowerTools仓库的启用命令是:```bashsudosubscription-managerrepos--enablecodeready-builder-for-rhel-8-x86_64-rpms```或者,如果是通过dnf配置的:```bashsudodnfconfig-manager--set-enabledcodeready-builder-for-rhel-8-x86_64-rpms```注意:仓库名称可能根据架构不同而不同,例如x86_64。如果用户没有订阅,那么可能需要先注册系统(如果有付费订阅)或者使用开发者订阅(免费但有限制)。如果用户不想启用PowerTools,或者没有订阅,那么可以考虑使用EPEL仓库:安装EPEL仓库:```bashsudodnfinstall-yhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm```然后再次尝试安装。但是,请注意:EPEL仓库中的OpenLDAP服务器包可能不是最新的,而且可能和RHEL官方仓库的包有差异。如果以上方法都失败,那么可能需要考虑使用389DirectoryServer作为替代方案,因为它是RedHat推荐的LDAP服务器。不过,由于问题中明确要求安装slapd(OpenLDAP服务器),我们继续尝试安装OpenLDAP。最后,如果确实无法安装,我们可以考虑从源码编译,但这通常不推荐,因为难以维护。现在,我们提供具体的步骤来解决这个错误。注意:以下步骤假设用户具有root权限,并且系统已经注册到RedHat订阅管理(或者使用开发者订阅)。</think>### 解决 RHEL 8 中 `dnf install openldap-servers` 报错 "No match for argument" 问题 在 RHEL 8 中,OpenLDAP 软件包结构已更改,导致传统包名不可用。以下是完整解决方案: #### 原因分析 1. RHEL 8 中 OpenLDAP 服务器组件已整合到单一包中 2. `openldap-servers` 和 `openldap-clients` 包名已被弃用 3. 需要启用 CodeReady Builder 仓库获取完整 LDAP 功能 #### 解决方案步骤 1. **启用必需仓库**: ```bash # 注册系统(若未注册) sudo subscription-manager register --username <your_username> --password <your_password> # 启用 CodeReady Builder 仓库 sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms ``` 2. **安装整合包**: ```bash # 安装整合后的 OpenLDAP 套件 sudo dnf install -y openldap-servers openldap-clients ``` 3. **验证安装**: ```bash # 检查 slapd 服务状态 systemctl status slapd # 确认版本 slapd -V ``` #### 备选方案(若仍遇到问题) ```bash # 方案1:使用通配符安装 sudo dnf install -y 'openldap*' # 方案2:显式安装核心组件 sudo dnf install -y openldap-servers openldap-clients compat-openldap ``` #### 关键说明: 1. 必须启用 `codeready-builder` 仓库才能访问完整 LDAP 组件 2. RHEL 8 使用模块化仓库设计,传统包名已被整合 3. 安装后需配置防火墙: ```bash sudo firewall-cmd --add-service={ldap,ldaps} --permanent sudo firewall-cmd --reload ``` #### 验证安装成功 ```bash # 查看已安装包 rpm -qa | grep openldap # 预期输出应包含: openldap-servers-2.4.xx openldap-clients-2.4.xx compat-openldap-2.4.xx ``` ### 后续配置建议 完成安装后,参考以下配置: 1. [OpenLDAP 基础配置指南](配置链接1) 2. [Samba-LDAP 集成教程](配置链接2) 3. [LDAP 用户管理最佳实践](配置链接3)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值