yum update 的时候遇到报错

[root@shawnyan ~]# yum update 
error: rpmdb: BDB0113 Thread/process 2043/140494753589056 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

原因是磁盘满了,删了一些临时文件,就可以了,但是这里值得考究的问题是,如何出现了 Berkeley DB,那么什么是 Berkeley DB 呢?

Berkeley DB(简称DB)是一款开源的文件数据库,适用于内存和磁盘,提供类似于关系数据库的API。它由Sleepycat Software公司开发,后来被甲骨文公司收购。

DB的设计初衷是为了解决嵌入式系统中的数据存储问题。它具有轻量级、高性能、可移植性好等优点,广泛应用于操作系统、通信、嵌入式设备等领域。

DB支持事务、并发控制、恢复和数据复制等功能,具有较高的可靠性和稳定性。它支持多种编程语言,包括C、C++、Java、Python等。

DB支持三种数据存储方式:B树、哈希表和固定长度记录的堆。其中,B树是默认的数据存储方式,可以支持高效的数据插入、删除和查找操作。

安装和使用DB需要一定的编程和系统管理经验。下面简单介绍DB的安装和使用方法:

  • 从Oracle网站下载DB安装软件,根据不同开发环境,下载不同的语言版本。
  • 规划安装,缺省安装DB会被安装到/usr/local目录中,可以选择自己的安装路径。
  • 解压安装文件。
  • 编译,进入build_unix目录,再编译。
  • 执行命令../dist/configure --prefix=/opt/Berkeley --enable-cxx(其中--enable-cxx来启动编译c++的相关选项,如果没有enable那么编译出的就不能使用Berkeley DB c++对应的接口)。
  • 执行命令make make install。
  • 执行2条命令的作用就是通知系统Berkeley DB的动态链接库在/usr/local/berkeleydb/lib/目录。

总之,Berkeley DB是一款高性能、可移植性好的文件数据库,适用于内存和磁盘,广泛应用于嵌入式系统、操作系统、通信等领域。它具有轻量级、高性能、可移植性好等优点,适用于多种编程语言。