欢迎来到天天文库
浏览记录
ID:55215613
大小:204.00 KB
页数:70页
时间:2020-05-04
《berkeley db使用手册范本.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、简介BerkeleyDBJavaEdition(JE)是一个完全用JAVA写的,它适合于管理海量的,简单的数据。l能够高效率的处理1到1百万条记录,制约JE数据库的往往是硬件系统,而不是JE本身。l多线程支持,JE使用超时的方式来处理线程间的死琐问题。lDatabase都采用简单的key/value对应的形式。l事务支持。l允许创建二级库。这样我们就可以方便的使用一级key,二级key来访问我们的数据。l支持RAM缓冲,这样就能减少频繁的IO操作。l支持日志。l数据备份和恢复。l游标支持。二、获取JEJE下载地址:.or
2、acle./technology/software/products/berkeley-db/je/index.html解开包后把JE_HOME/lib/je-.jar中的jar文件添加到你的环境变量中就可以使用je了。相关帮助文档可以参考JE_HOME/docs/index.html源代码见JE_HOME/src/*.*三、JE常见的异常DatabaseNotFoundException当没有找到指定的数据库的时候会返回这个异常DeadlockException线程间死锁异常RunRecoveryExce
3、ption回收异常,当发生此异常的时候,你必须得重新打开环境变量。四、关于日志文件必须了解的六项JE的日志文件跟其他的数据库的日志文件不太一样,跟C版的DBD也是有区别的lJE的日志文件只能APPEND,第一个日志文件名是00000000.jdb,当他增长到一定大小的时候(默认是10M),开始写第二个日志文件00000001.jdb,已此类推。l跟C版本有所不同,JE的数据日志和事务日志是放在一起的,而不是分开放的。lJEcleaner负责清扫没用到的磁盘空间,删除后,或者更新后新的记录会追加进来,而原有的记录空间就不在使用
4、了,cleaner负责清理不用的空间。l清理并不是立即进行的,当你关闭你的数据库环境后,通过调用一个cleaner方法来清理。l清理也不是只动执行的,需要你自己手动调用cleaner方法来定时清理的。l日志文件的删除仅发生在检查点之后。cleaner准备出哪些log文件需要被删除,当检查点过后,删掉一些不在被使用的文件。每写20M的日志文件就执行一次检查点,默认下。五、创建数据库环境JE要求在任何DATABASE操作前,要先打开数据库环境,就像我们要使用数据库的话必须得先建立连接一样。你可以通过数据库环境来创建和打开data
5、base,或者更改database名称和删除database.可以通过Environments对象来打开环境,打开环境的时候设置的目录必须是已经存在的目录,否则会出错误。默认情况下,如果指定的database不存在则不会自动创建一个新的detabase,但可以通过设置setAllowCreate来改变这一情况。1.打开database环境示例:packageje.gettingStarted;import.sleepycat.je.DatabaseException;import.sleepycat.je.Environme
6、nt;import.sleepycat.je.EnvironmentConfig;importjava.io.File;...EnvironmentmyDbEnvironment=null;try{EnvironmentConfigenvConfig=newEnvironmentConfig();envConfig.setAllowCreate(true);//如果不存在则创建一个myDbEnvironment=newEnvironment(newFile("/export/dbEnv"),envConfig);}catch
7、(DatabaseExceptiondbe){//错误处理}2.关闭database环境可以通过Environment.close()这个方法来关闭database环境,当你完成数据库操作后一定要关闭数据库环境。示例:import.sleepycat.je.DatabaseException;import.sleepycat.je.Environment;...try{if(myDbEnvironment!=null){myDbEnvironment.close();}}catch(DatabaseExceptiondbe)
8、{//Exceptionhandlinggoeshere}3.清理日志通常在关闭数据库连接的时候,有必要清理下日志,用以释放更多的磁盘空间。我们可以在Environment.close前执行下Environment.cleanLog()来达到此目的。示例:import.sleepycat.
此文档下载收益归作者所有