您的位置:首页 > 其它

Berkeley DB - 解决让多个日志重复使用的问题

2010-01-13 09:55 288 查看
解决一个Berkeley DB的问题转载:http://blog.chinaunix.net/u/19782/showart_1275599.html 在Oracle运行中我们都知道具体的log可以设置为归档和非归档来运行,归档模式下将产生很多日志,时间长了不删除就会出现磁盘满的,在归档模式下就3个或多个日志来回重复利用。两种模式各有各的好处。
我要解决的问题就是在Berkeley DB中怎么可以让日志在几个文件中来回使用(有点像Oracle的归档模式运行)。google了好几天,说可以修改DB_LOG_AUTOREMOVE来实现自动删除没用的log的,但我测试了不行阿。
苦阿,发了两个贴,一个ITPUB的:http://www.itpub.net/thread-1067012-1-1.html,一个是www.berkeleydb.net上的,结果我一注册完berkeleydb.net上的用户没一会该网站就打不开了。哎,看来搞这个的人还是不多。itpub上的也没人问了,自己就再慢慢找吧。

发的帖子内容如下:
=========================== http://gan.cublog.cn DB_LOG_AUTOREMOVE 为什么没办法删除多余的日志?

环境:Linux localhost.localdomain 2.6.25.4-10.fc8 #1 SMP Thu May 22 23:34:09 EDT 2008 i686 i686 i386 GNU/Linux
我使用的版本:Berkeley DB, db-4.5.20

测试的实例为:db-4.5.20/examples_c/ex_thread.c

--------
自己修改了点:
新添加的line: 450

ret = dbenv->set_flags(dbenv, DB_LOG_AUTOREMOVE, 1);

但产生的日志就是无限的增加,气死人了。 有没有办法像Oracle那样设置成3个日志来回使用的呢? 请多帮忙,多谢!
==========================

自己编译ex_thread.c文件来作的测试,结果产生了一堆日志:
[gan@localhost dbk]$ ls
access.db log.0000000002 log.0000000010 log.0000000018 log.0000000026
__db.001 log.0000000003 log.0000000011 log.0000000019 log.0000000027
__db.002 log.0000000004 log.0000000012 log.0000000020 log.0000000028
__db.003 log.0000000005 log.0000000013 log.0000000021 log.0000000029
__db.004 log.0000000006 log.0000000014 log.0000000022 log.0000000030
__db.005 log.0000000007 log.0000000015 log.0000000023
__db.006 log.0000000008 log.0000000016 log.0000000024
log.0000000001 log.0000000009 log.0000000017 log.0000000025

我设置了DB_LOG_AUTOREMOVE的,他就是不删除阿?怎么办呢?怎么找阿? 看DB_ENV中的函数都有些什么,后来google说db_archive可以删除,说是用db_archive -d来删除的。自己测试了db_archive也是没办法删除的,不知道为什么。 http://gan.cublog.cn 不知道什么时候提起db_checkpoint,也是google来的,如是看看db_checkpoint是否可以解决问题,原来db_checkpoint -1一使用就delete了。哎,我爱死你了,原来是没有checkpoint阿,自己看了一下db_checkpoint应用程序的源码,比较简单。起主要作用的还是那个DB_ENV->txn_checkpoint()

在找东西过程中发现一本不错的介绍Berkeley DB的书: 《The Berkeley DB Book》http://www.xpressionsz.com/2008/01/02/the-berkeley-db-book/
还发现一个不错的电子书bbs,http://www.itepub.net/ 真是好记itepub, 跟itpub就差一个e。 没有做广告的意思,有用就给推荐一下!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐