如何基于Oracle Linux 9.x 编译BerkeleyDB?

编译安装

1 基础知识

1.1 简介

Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,属于嵌入式数据库系统。

1.2 优缺点

1.2.1 优点

– 简单
– 小巧
– 可靠
– 高性能
– 目前已经支持SQL

1.2.2 缺点

– 不支持存储过程
– 不支持触发器等高级功能

1.3 系统环境

– 主要适用于UNIX与LINUX系统
– Windows操作系统

1.4 使用方式

– 无需像关系型数据库那样需要网络通讯、SQL解析等步骤
– 数据库提供一系列直接访问函数(使用方式与内存数据库类似)

1.5 支持的编程库

– C语言
– C++
– Java
– Perl
– Python
– PHP
– Tcl
– 其他语言库

1.6 数据库结构特点

– 数据可保存为任意类型的健/值对
– 一个数据建可对应多个数据值

1.7 架构特点

– 支持ACID数据库事务处理
– 支持细粒度锁
– 支持XA接口
– 支持热备以及同步复制

2 实践部分

2.1 系统环境

OS = Oracle Linux 9.x x86_64
IP Address = any
Host Name = any

2.2 软件环境

2.2.1 下载BerkeleyDB

cd ~
wget https://download.oracle.com/otn/berkeley-db/db-18.1.40.tar.gz?AuthParam=1545522025_eb0bf739a1c70ab5d1bfcf50ebc5d71c  -O db-18.1.40.tar.gz

如果以上链接已经失效请从以下页面下载,
https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html

2.2.2 准备编译环境

dnf -y install gcc gcc-c++ make

2.3 部署BerkeleyDB软件

2.3.1 解压安装包

cd ~/
tar -xf db-18.1.40.tar.gz

2.3.2 预编译安装包

cd ~/db-18.1.40/build_unix
../dist/configure --bindir=/usr/bin \
            --sbindir=/usr/sbin \
            --sysconfdir=/etc/berkeleydb \
            --libdir=/usr/lib64  \
            --mandir=/usr/share/man \
            --includedir=/usr/include

2.3.3 编译并安装

make
make install

如果遇到如下错误,

Installing documentation: /usr/local/BerkeleyDB.18.1/docs ...
cp: cannot stat 'bdb-sql': No such file or directory
cp: cannot stat 'gsg_db_server': No such file or directory
make: *** [Makefile:1310: install_docs] Error 1

以上提示在安装找不到目录,因此在编译目录中直接创建两个空目录即可让其复制即可,

mkdir ~/db-18.1.40/docs/{bdb-sql,gsg_db_server}

另外,该软件包也支持卸载操作,详细如下,

make uninstall

参阅文档
=========================

安装文档
—————
https://docs.oracle.com/cd/E17076_05/html/installation/BDB_Installation.pdf
https://baike.baidu.com/item/Berkeley%20DB/9534422?fr=aladdin&fromid=2656170&fromtitle=BerkeleyDB

错误的处理
—————
https://stackoverflow.com/questions/64707079/berkeley-db-make-install-fails-on-linux

没有评论

发表回复

编译安装
如何在Oracle Linux 9.x编译部署Redis?

1 基础知识 1.1 Redis的简介 Redis是一种开放源代码(BSD许可)的运行于内存中的数据 …

编译安装
如何编译安装ifstat?

1 前言 一个问题,一篇文章,一出故事。 生产上的老旧服务器RHEL 5没有ifstat的rpm包, …

编译安装
如何安装GNU编译器gcc和g++?

1 基础知识 1.1 GNU Compiler Collection的简介 – GCC原 …