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。 没有做广告的意思,有用就给推荐一下!
我要解决的问题就是在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。 没有做广告的意思,有用就给推荐一下!
相关文章推荐
- 使用cookie解决重复投票的问题
- 解决p6spy重复输出日志的问题
- 关于使用Enterprise Library模块日志问题的解决
- SpringBank 开发日志 重新设计Action调用Service的参数传递 使用泛型解决类型转换问题
- linux使用flock文件锁解决脚本重复执行问题
- 在页面中使用WebWork的token标签解决表单重复提交问题
- C++库研究笔记——使用函数模板还是类模板?+ 一个类型重复问题的两种解决方法
- 关于头文件变量重复定义问题怎么解决(thinkvd开发日志)
- 设计模式学习1—使用单件模式解决对象重复申请问题
- 注册登录过程点滴(三):解决MVC3中使用Ajax.BeginForm会重复提交数据的问题
- 在页面中使用WebWork的token标签解决表单重复提交问题
- 注册登录过程点滴(三):解决MVC3中使用Ajax.BeginForm会重复提交数据的问题 推荐
- AudioStreamer使用之快速点击下/上一首按钮,音频会重复的问题解决。
- 使用windows服务和MSMQ和进行日志管理(解决高并发问题)
- Python:通过自定义系统级快捷键来控制程序开始或停止记录日志(使用小技巧解决一个貌似无解的问题)
- c#应用程序使用log4net组建输出不了日志问题的解决
- 使用UUID解决重复提交问题
- 使用Logrotate解决Tomcat日志文件catalina.out过大的问题
- QSlider 拖动滑动条使用valueChanged(int value)信号重复调用槽函数问题解决
- [Python]logging模块使用basicConfig后记录日志重复问题