crfclust.bdb占用巨大空间导致磁盘空间利用率较高的解决过程

本文记录了一次解决数据库服务器根目录空间占用率过高的经历。通过定位到异常文件crfclust.bdb,采取了停止服务、删除文件、重启服务等措施,最终成功释放了大量磁盘空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上班收到告警日志,提示数据库服务器根(/)目录利用率超过85%低于95%,于是就登录到数据库服务器上查看了一下具体的情况。

[root@jzfpysdb1 ~]# df -h

Filesystem        Size  Used Avail Use% Mounted on

/dev/sda3         158G  130G   21G  87% /

tmpfs              63G  301M   63G   1% /dev/shm

/dev/sda1         120M   33M   82M  29% /boot

如上,根(/)目录利用率87%,通过du -sh * 的方式跟踪占用空间的目录文件,

[root@jzfpysdb1 jzfpysdb1]# du -sh *

1.2M    05-JUN-2016-09:51:08.txt

1.2M    12-NOV-2016-00:37:23.txt

136K    12-NOV-2016-00:41:49.txt

4.0K    12-NOV-2016-00:43:07.txt

1.2M    12-NOV-2016-01:00:50.txt

1.3M    12-NOV-2016-08:07:49.txt

1.3M    12-NOV-2016-09:17:47.txt

868K    26-NOV-2015-21:56:26.txt

868K    26-NOV-2015-21:56:27.txt

1004K   26-NOV-2015-21:57:08.txt

1.2M    26-SEP-2016-15:26:08.txt

1.3G    crfalert.bdb

91G     crfclust.bdb

8.0K    crfconn.bdb

1.4G    crfcpu.bdb

1.3G    crfhosts.bdb

1.7G    crfloclts.bdb

1.3G    crfts.bdb

12K     __db.001

392K    __db.002

2.6M    __db.003

2.1M    __db.004

904K    __db.005

12K     __db.006

520K    jzfpysdb1.ldb

16M     log.0000010978

14M     log.0000010979

8.0K    repdhosts.bdb

如上跟踪到crfclust.bdb文件居然有91G的大小,该文件是有集群服务ora.crf生成的,解决过程如下:

1、查看ora.crf服务状态

[grid@jzfpysdb1 ~]$ crsctl stat res ora.crf -init -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS       

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.crf

      1        ONLINE  ONLINE       jzfpysdb1        

2、停止ora.crf服务                            

[grid@jzfpysdb1 ~]$ crsctl stop res ora.crf -init

CRS-2673: Attempting to stop 'ora.crf' on 'jzfpysdb1'

CRS-2677: Stop of 'ora.crf' on 'jzfpysdb1' succeeded

3、清理.bad类型的文件

[root@jzfpysdb1 jzfpysdb1]# rm ./*.bdb

rm: remove regular file `./crfalert.bdb'? y

rm: remove regular file `./crfclust.bdb'? y

rm: remove regular file `./crfconn.bdb'? y

rm: remove regular file `./crfcpu.bdb'? y

rm: remove regular file `./crfhosts.bdb'? y

rm: remove regular file `./crfloclts.bdb'? y

rm: remove regular file `./crfts.bdb'? y

rm: remove regular file `./repdhosts.bdb'? y

4、确定空间是否已经释放

[root@jzfpysdb1 jzfpysdb1]# df -h

Filesystem        Size  Used Avail Use% Mounted on

/dev/sda3         158G   23G  128G  15% /

tmpfs              63G  301M   63G   1% /dev/shm

/dev/sda1         120M   33M   82M  29% /boot

[root@jzfpysdb1 jzfpysdb1]#

5、启动ora.crf服务并检查其状态

[grid@jzfpysdb1 ~]$ crsctl start res ora.crf -init  

CRS-2672: Attempting to start 'ora.crf' on 'jzfpysdb1'

CRS-2676: Start of 'ora.crf' on 'jzfpysdb1' succeeded

[grid@jzfpysdb1 ~]$ crsctl stat res ora.crf -init -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS       

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.crf

      1        ONLINE  ONLINE       jzfpysdb1                                    

[grid@jzfpysdb1 ~]$ 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31403259/viewspace-2142380/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31403259/viewspace-2142380/

<think>我们正在讨论OpenLDAP中的id2entry.bdb文件。根据引用内容,我们知道OpenLDAP使用BDB(BerkeleyDB)或HDB(HierarchicalDB)作为后端数据库存储格式。id2entry.bdbBDB/HDB后端使用的数据库文件之一。首先,了解id2entry.bdb的作用:在OpenLDAP中,目录信息以条目(entry)的形式存储,每个条目有一个唯一的标识符(ID)。id2entry.bdb文件是一个数据库文件,它将每个条目的ID映射到该条目的实际数据(即属性值等)。简单来说,它是一个从条目ID到条目内容的映射表。生成方式:id2entry.bdb是在向目录中添加条目时由OpenLDAP自动生成和更新的。当我们使用ldapadd或ldapmodify等工具添加或修改条目时,后端数据库(如BDB/HDB)会更新相应的数据库文件,包括id2entry.bdb。引用中提到,OpenLDAP的后端数据库配置为bdb或hdb(引用[3]和[4])。在配置文件中,我们可以指定数据库类型(databasebdb或databasehdb)以及其他相关参数(如suffix、rootdn等)。一旦配置完成并启动slapd(OpenLDAP的守护进程),当我们添加条目时,这些数据库文件就会在指定的目录(通常是/var/lib/ldap或安装时指定的目录)中创建。具体步骤:1.配置OpenLDAP,指定使用bdb或hdb后端(引用[4]中配置示例使用了bdb)。2.启动slapd服务。3.使用ldapadd等工具添加条目(引用[2]提到手动录入、ldif文件录入或脚本录入)。4.添加条目后,在数据库目录中就会生成id2entry.bdb等文件。注意:id2entry.bdb是BerkeleyDB格式的文件,因此需要系统安装有BerkeleyDB库(引用[1]提到安装时需确保BerkeleyDB可用)。总结:-作用:id2entry.bdb存储条目ID到条目内容的映射,是OpenLDAP后端数据库的关键组成部分。-生成:由slapd在添加或修改条目时自动生成和更新,无需手动创建。§§相关问题§§1.OpenLDAP中还有哪些常见的数据库文件,它们的作用是什么?2.如何查看id2entry.bdb文件的内容?3.如果id2entry.bdb文件损坏,应该如何恢复?4.在OpenLDAP中,如何配置使用BDB和HDB后端?</think>### OpenLDAP中`id2entry.bdb`文件的作用及生成方式 #### 作用说明 `id2entry.bdb`是OpenLDAP使用**BDB(Berkeley DB)后端存储**时的核心数据库文件,主要功能包括: 1. **条目ID映射** - 存储每个目录条目(Entry)的唯一整数标识符(`entryID`)到实际条目数据的映射关系。 - 例如:`entryID=123 → dn: uid=user1,ou=People,dc=example,dc=com` 2. **数据存储结构** - 作为**主索引文件**,通过`entryID`快速定位条目内容(如DN、属性值等)。 - 与`dn2id.bdb`(DN到entryID的映射)配合实现高效查询[^3][^4]。 3. **事务支持** - 基于Berkeley DB的事务特性,确保数据操作的原子性和一致性(如条目修改/删除)[^1][^5]。 #### 生成方式 该文件由**OpenLDAP服务端(slapd)自动生成和管理**: 1. **初始化阶段** - 首次启动配置好的`slapd`服务时,在指定的数据库目录(如`/var/lib/ldap/`)自动创建空数据库文件集,包括`id2entry.bdb`。 2. **数据操作时更新** - 当通过`ldapadd`、`ldapmodify`等工具添加或修改条目时: ```bash ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f entries.ldif ``` - `slapd`将新条目按BDB格式写入`id2entry.bdb`,并同步更新索引[^2][^4]。 3. **后端依赖** - 仅在配置为`database bdb`或`database hdb`(BDB的增强版)时生成[^3][^4]: ```apache # slapd.conf 配置示例 database bdb suffix "dc=example,dc=com" directory /var/lib/ldap ``` #### 注意事项 - **文件位置**:位于`slapd.conf`中`directory`参数指定的路径。 - **手动操作风险**:**禁止**直接修改或删除此文件,否则可能导致数据损坏。需通过LDAP工具管理数据[^5]。 - **恢复机制**:若文件损坏,可通过`slapcat`备份重建: ```bash slapcat -l backup.ldif # 导出数据 rm /var/lib/ldap/*.bdb # 清空损坏的数据库 slapadd -l backup.ldif # 重新生成 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值