没有合适的资源?快使用搜索试试~ 我知道了~
首页berkeley db使用手册
berkeley db使用手册
需积分: 20 138 浏览量
更新于2023-05-29
评论
收藏 457KB DOC 举报
berkeley db 使用手册
资源详情
资源评论
资源推荐

一、 简介
Berkeley DB Java Edition (JE)是一个完全用 JAVA 写的,它适合于管理海量的,简单
的数据。
l 能够高效率的处理 1 到 1 百万条记录,制约 JE 数据库的往往是硬件系统,而不是
JE 本身。
l 多线程支持,JE 使用超时的方式来处理线程间的死琐问题。
l Database 都采用简单的 key/value 对应的形式。
l 事务支持。
l 允许创建二级库。这样我们就可以方便的使用一级 key,二级 key 来访问我们的数
据。
l 支持 RAM 缓冲,这样就能减少频繁的 IO 操作。
l 支持日志。
l 数据备份和恢复。
l 游标支持。
二、 获取 JE
JE 下载地址:
http://www.oracle.com/technology/software/products/berkeley-db/je/index.html
解开包后 把 JE_HOME/lib/je-<version>.jar 中的 jar 文件添加到你的环境变量
中就可以使用 je 了。
相关帮助文档可以参考 JE_HOME/docs/index.html
源代码见 JE_HOME/src/*.*
三、 JE 常见的异常
DatabaseNotFoundException 当没有找到指定的数据库的时候会返回这个
异常
DeadlockException 线程间死锁异常
RunRecoveryException 回收异常,当发生此异常的时候,你必须得重新打

开环境变量。
四、 关于日志文件必须了解的六项
JE 的日志文件跟其他的数据库的日志文件不太一样,跟 C 版的 DBD 也是有区别的
l JE 的日志文件只能 APPEND,第一个日志文件名是 00000000.jdb,当他增长
到一定大小的时候(默认是 10M),开始写第二个日志文件
00000001.jdb,已此类推。
l 跟 C 版本有所不同,JE 的数据日志和事务日志是放在一起的,而不是分开放的。
l JE cleaner 负责清扫没用到的磁盘空间,删除后,或者更新后新的记录会追加进
来,而原有的记录空间就不在使用了,cleaner 负责清理不用的空间。
l 清理并不是立即进行的,当你关闭你的数据库环境后,通过调用一个 cleaner 方法
来清理。
l 清理也不是只动执行的,需要你自己手动调用 cleaner 方法来定时清理的。
l 日志文件的删除仅发生在检查点之后。cleaner 准备出哪些 log 文件需要被删除,
当检查点过后,删掉一些不在被使用的文件。每写 20M 的日志文件就执行一次检
查点,默认下。
五、 创建数据库环境
JE 要求在任何 DATABASE 操作前,要先打开数据库环境,就像我们要使用数据
库的话必须得先建立连接一样。你可以通过数据库环境来创建和打开 database,或者
更改 database 名称和删除 database.
可以通过 Environments 对象来打开环境,打开环境的时候设置的目录必须是已经
存在的目录,否则会出错误。默认情况下,如果指定的 database 不存在则不会自动创
建一个新的 detabase,但可以通过设置 setAllowCreate 来改变这一情况。
1. 打开 database 环境
示例:
package je.gettingStarted;
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
import com.sleepycat.je.EnvironmentConfig;

import java.io.File;
...
Environment myDbEnvironment = null;
try {
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setAllowCreate(true);//如果不存在则创建一个
myDbEnvironment = new Environment(new File("/export/dbEnv"),
envConfig);
} catch (DatabaseException dbe) {
// 错误处理
}
2. 关闭 database 环境
可以通过 Environment.close()这个方法来关闭 database 环境,当你完成数
据库操作后一定要关闭数据库环境。
示例:
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
...
try {

if (myDbEnvironment != null) {
myDbEnvironment.close();
}
} catch (DatabaseException dbe) {
// Exception handling goes here
}
3. 清理日志
通常在关闭数据库连接的时候,有必要清理下日志,用以释放更多的磁盘空
间。我们可以在 Environment.close 前执行下 Environment.cleanLog()来达到
此目的。
示例:
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
...
try {
if (myDbEnvironment != null) {
myDbEnvironment.cleanLog(); // 在关闭环境前清理下日志
myDbEnvironment.close();
}
} catch (DatabaseException dbe) {
// Exception handling goes here
}

4. Database 环境的配置
可以通过 EnvironmentConfig 这个对象来配置 database 环境。如果想得
到当前环境的配置信息则可以通过 Environment.getConfig()方法得到当前环
境的配置信息。
也可以使用 EnvironmentMutableConfig 来配置环境,其实
EnvironmentConfig 是 EnvironmentMutableConfig 的子类,所以
EnvironmentMutableConfig 能够使用的设置,EnvironmentConfig 也同样能
够使用。
如果你要获取当前环境的使用情况,那么你可以通过使用
EnvironmentStats.getNCacheMiss().来监视 RAM cache 命中率。
EnvironmentStats 可以由 Environment.getStats()方法获取。
EnvironmentConfig 常见方法介绍
l EnvironmentConfig.setAllowCreate() ;
如果设置了 true 则表示当数据库环境不存在时候重新创建一个数据
库环境,默认为 false.
l EnvironmentConfig.setReadOnly()
以只读方式打开,默认为 false.
l EnvironmentConfig.setTransactional()
事务支持,如果为 true,则表示当前环境支持事务处理,默认为
false,不支持事务处理。
EnvironmentMutableConfig 的介绍
l setCachePercent()
设置当前环境能够使用的 RAM 占整个 JVM 内存的百分比。
l setCacheSize()
设置当前环境能够使用的最大 RAM。单位 BYTE
l setTxnNoSync()
当提交事务的时候是否把缓存中的内容同步到磁盘中去。
剩余63页未读,继续阅读
















Spring_LGF
- 粉丝: 12
- 资源: 8
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0