Berkeley DB入门

原创 2007年10月08日 15:57:00

       Berkeley DB是一款开源软件,现在在Oracle旗下。本文是我初步阅读DB相关文档的笔记。以后会涉及更多细节。

Berkeley DB是由美国Sleepycat Software公司开发的一套开放源码的嵌入式数据库的程序库(database library),它为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。

Berkeley DB不是关系型数据库,不是面向对象数据库,不是网络数据库,不是数据库服务器。

1.Secondary DB

相对Primary DB,用处是当想通过一些非keyItem进行检索时,激活。

 

2.Access Method

1Balanced Tree

2Hash

3Queue

4Recno

 

3.选择

1BTreeHash是类关联式容器,QueueRecno是类序列式容器。

2)对关联式来说,如果存在复杂数据集或者Disk I/O,请选择Hash;否则选择Btree.

3)对自己不生成KeyRecord来说,序列式更加适合。Queue适合定长记录,并发性更好(Record Locking)Recno适合变长Record.

 

4.限制

总容量256TB,单条容量4GB;对网络支持能力不佳。

 

5.Environment

1Multi-databases files

在一个物理文件中,支持多个数据库

2)多线程和多进程

3Transactional processing

4High availability (replication) support

5Logging subsystem

 

6.Exception

DB_CXX_NO_EXCEPTIONS 取消DB Exception

DbExceptionstd::exception子类

 

7.Open DB

// Open the database

db.open(

NULL, // Transaction pointer

"my_db.db", // Database file name

NULL, // Optional logical database name

DB_BTREE, // Database access method

oFlags, // Open flags

0); // File mode (using defaults)

 

8.Close DB

// Close the database

db.close(0);

 

9.DB Open Flag

DB_CREATE

If the database does not currently exist, create it. By default, the database open fails if the database does not already exist.

DB_EXCL

Exclusive database creation. Causes the database open to fail if the database already exists. This flag is only meaningful when used with DB_CREATE.DB_CREATE并用。

DB_RDONLY

Open the database for read operations only. Causes any subsequent database write operations to fail.

DB_TRUNCATE

Physically truncate (empty) the on-disk file that contains the database. Causes DB to delete all databases physically contained in that file.

 

10.Administrative Method

1Db::get_open_flags()

2Db::remove()

不要remove已经打开的数据库,不要remove包含打开数据库的文件。

// Database open and subsequent operations omitted for clarity

db.remove(

"mydb.db", // Database file to remove

NULL, // Database to remove. This is NULL so the entire file is removed.

0); // Flags. None used.

3Db::rename()

db.rename(

"mydb.db", // Database file to rename

NULL, // Database to rename. This is NULL so the entire file is renamed.

"newdb.db", // New database file name

0); // Flags. None used.

 

11.Error Reporting Functions

(1) set_error_stream()

(2) set_errcall()

(3) set_errfile()

(4) set_errpfx()

(5) err()

(6) errx()

 

Berkeley DB基础教程

一、Berkeley DB的介绍 (1)Berkeley DB是一个嵌入式数据库,它适合于管理海量的、简单的数据。如Google使用其来保存账户信息,Heritrix用其来保存froniter. (...
  • jediael_lu
  • jediael_lu
  • 2014年05月29日 15:21
  • 14198

[转]Berkeley DB简介及安装使用

1        简介 BDB的全称Berkeley DB,是一套开放源码的嵌入式数据库的程序库。它为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。Berkeley DB为数据的...
  • anda0109
  • anda0109
  • 2014年05月16日 10:54
  • 1307

"Berkeley DB"数据库的优点和不足之处

Sleepycat软件公司出品的Berkeley DB是一种在特定的数据管理应用程序中广泛使用的数据库系统,在世界范围内有超过两亿的用户支持.许多世界知名的厂商,像Amazon, AOL, Briti...
  • hit_hlj_sgy
  • hit_hlj_sgy
  • 2013年09月17日 17:34
  • 1936

Berkeley db使用方法简介(c接口)

1. 打开数据库 首先必须调用db_create()函数初始化DB句柄,然后就可以使用open()方法打开数据库了。默认情况下,如果数据库不存在,DB不会创建。为了覆盖缺省行为,可以在open()调...
  • bg205
  • bg205
  • 2013年09月19日 22:42
  • 1064

[转]Berkeley DB设计经验

关于Berkeley DB数据库的总体设计与实现的文章
  • heiyeshuwu
  • heiyeshuwu
  • 2016年05月27日 20:24
  • 3631

比Redis更快:Berkeley DB面面观

本问摘自:http://www.cnblogs.com/me115/p/3395396.html?ADUIN=173746627&ADSESSION=1383179408&ADTAG=CLIENT.Q...
  • wupangzi
  • wupangzi
  • 2015年03月27日 11:32
  • 525

[转]Berkeley DB实现分析

Berkeley DB实现分析
  • heiyeshuwu
  • heiyeshuwu
  • 2016年05月27日 20:44
  • 3200

[转]Berkeley DB介绍及主从复制机制

Berkeley DB(BDB)是一个高性能的嵌入式数据库编程库(引擎),它可以用来保存任意类型的键/值对 (Key/Value Pair),而且可以为一个键保存多个数据。Berkeley DB可以支...
  • heiyeshuwu
  • heiyeshuwu
  • 2016年05月27日 20:37
  • 2534

C#工程开发中 编译、安装、使用Berkeley DB步骤 (C#版)

最近在搞一款基于C#的网络爬虫,在构建爬虫队列中需要使用到berkely DB,找了很多资料,要不就是java版的(搞java开发就是方便,开源东西一大把),但C#的寥寥无几,或者版本老旧,在此记录一...
  • chinalizijian
  • chinalizijian
  • 2015年11月08日 17:24
  • 363

Berkeley DB数据库和日志文件归档

Berkeley DB数据库和日志文件归档 归档数据库和日志文件目的是提供面对数据库的灾难性故障的可恢复性,最大限度地减少发生物理硬件故障导致数据丢失。 首先,你可能需要定期创建数据库快照(也就是...
  • wilbertzhou
  • wilbertzhou
  • 2014年04月08日 09:46
  • 1528
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Berkeley DB入门
举报原因:
原因补充:

(最多只允许输入30个字)