berkeley db DB->close()

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

DB->close()

#include <db.h>

int

DB->close(DB *db, u_int32_t flags);  


db->close()方法关闭数据库,同时将缓存数据写入磁盘,关闭已经打开的游标,释放资源,关闭文件句柄。

尽管关闭数据库会关闭数据库下所有的游标,但是仍然强烈建议先关闭数据库中的所有游标,否则会导致打开的游标的资源无法回收。

关闭数据库之前,必须保证所有事务已经关闭。

因为bdb 数据库是cached in memory的 ,所以在关闭数据库前需要用db->sync()同步一次。

当主库是从库的索引的时候,必须从库全部关闭,再关闭主库。

当有多个线程同时在使用数据库句柄时,只能其中一个thread发起db->close()的调用。

成功关闭返回0,否则返回非0。

没有成功的情况下返回:DB_LOCK_DEADLOCK 或者 DB_LOCK_NOTGRANTED,这两个错误信息都与事务有关。

db->close()方法中的flags为0,但是也可以为标志位DB_NOSYNC,DB_NOSYNC强烈不建议使用,它指示着数据库不将缓存数据写入就关闭数据库。这个标志位的用处是在有事务的情况,同时应用程序会经常crash down,可以使用它。该标志位只能在有db_env打开的情况下使用。



Berkeley DB Windows应用     最近有涉及到个人数据本地安全性保存的问题,Google大量数据之后发现Berkeley DB,一个小巧的嵌入式数据库。但是基本的文章都是这对Linux的,通过自己的使用,总结在Windows上的应用。    首先到http://www.oracle.com网站下载DB的源码,可以下带驱动的,可不带驱动的(含NC字样)。你可以根据你的应用生成各种类型的dll,比如生成Windows的,就 阅读详情

相关推荐

Berkeley DB 概述

Berkeley DB 概述皮东    Berkeley DB是由美国Sleepycat Software公司开发的一套开放源码的嵌入式数据库的程序库(database library),它为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。Berkeley DB为数据的存取和管理提供了一组简洁的函数调用API接口。    它是一个经典的C-library模式的toolki

solotony的专栏 8797

[转]python连接mysql

 模块功能 connect()方法用于连接数据库,返回一个数据库连接对象。如果要连接一个位于host.remote.com服务器上名为fourm的MySQL数据库,连接串可以这样写: db = MySQLdb.connect(host="remote.com",user="user",passwd="xxx",db="fourm" ) connect()的参数列表如下: ...

zj19880814的专栏 929

OpenLDAP-Berkeley DB 設定

以下前言為引述[Berkeley DB - 維基百科]Berkeley DB (DB)是一個高性能的,嵌入資料庫編程庫,和C語言, C++, Java, Perl, Python, Tcl以及其他很多語言都有綁定。Berkeley DB可以保存任意類型的鍵/值對,而且可以為一個鍵保存多個數據。Berkeley DB可以支持數千的併發執行緒同時操作資料庫,支持最大256TB的數據,廣泛用於各種作業系

小白的一生 4726

python——数据库操作PyMysql使用详解

PyMysql使用详解

iamballer77的博客 2万+

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

<br />本文转载于http://www.opensourceproject.org.cn/article.php?id=817 Berkeley db<br /> <br />Berkeley db使用方法简介(c接口)<br />1. 打开数据库<br />首先必须调用db_create()函数初始化DB句柄,然后就可以使用open()方法打开数据库了。默认情况下,如果数据库不存在,DB不会创建。为了覆盖缺省行为,可以在open()调用中指定DB_CREATE标记。<br />以下代码示范了如何打开

杨哈哈的专栏 1899

【python基础教程笔记(六)】数据库操作

数据库操作 Python3中连接数据库的方式有很多,而且十分的方便简单。在《python基础教程(第三版)》中关于这一节使用了SQLite数据库,而在我们实际使用过程中,可能更加倾向于使用SqlServer,MySQL等,本文将以MySQL为例,另外书中只提到了python官方的python DB API,而实际上我们有很多方式可以选择,本文将介绍两种种连接操作MySQL的方式:1,python...

Angry_Caveman的博客 508

SQLiteDatabase 是否需要调用close()方法?什么时候调用?

是否需要调用close()方法?什么时候调用? SQLiteDatabase db = getWritableDatabase(); db.execSQL("DROP TABLE " + TABLE_NAME); db.close(); //这个操作要不要加?   由于SQLiteOpenHelper内部只缓存一个数据库的连接(即一个SQLit

阿姆斯特哩的博客 1万+

berkeley db DB_ENV->close()

#include int DB_ENV->close(DB_ENV *dbenv, u_int32_t flags); DB_ENV ->close()方法关闭数据库环境,释放所有被分配的资源以及关闭所有在环境中打开的数据库的句柄,以及子系统(subsystem)。 调用此方法时,所有打开的db handle和db_cursor handle将会自动关闭。 在多线程的环境中,db_

magicxiao的专栏 801

Berkeley DB概况

说实话,在我进入Oracle之前一个月,也是拿到Oracle的Offer 5个月之后,我才得到我未来经理的电话通知(我不是怪他通知的晚,事实上我非常感谢他给我机会进入这个产品组---这纯属机缘巧合,让我来到一个崭新的世界),说我在Berkeley DB产品组,这之前我从来没听说过它,我的第一印象,BerkeleyDB不是postgresl吗?仔细一查,才知道它是Oracle的嵌入式数据库,而嵌入

赵伟的计算机软件技术专栏 1938

在Python上使用Berkeley DB ——bsddb

前段时间要用最大熵进行自动分词和新词抽取,在处理小文本的时候没什么问题,直接将候选词及其频率、邻接词等信息存入词典放入内存即可。但后来要处理大文本,候选词太多直接导致MemoryError了,就想着先将候选词的信息放入硬盘,虽然降低了点儿速度,但至少也能跑出来结果。所以就找到了比较好用且存储性能较好的Berkeley DB,更棒的是Python自带处理模块——bsddb(Python3以后版本

NeoMT的专栏 5098

Python Cookbook-7.8 使用 Berkeley DB 数据库

你想将一些数据做持久化处理,而且也想体验一下BerkeleyDB数据库的简洁和高效。

weixin_52297428的博客 1598

关于Berkeley DB打开创建数据库文件

<br />使用BDB C# API进行基于数据库应用程序的开发,需要libdb51.dll,libdb_csharp51.dll和libdb_dotnet51.dll三个动态链接库。首先,在开发的工程中添加libdb_dotnet51.dll的引用,由于libdb_dotnet51.dll需要调用本地代码得到的libdb51.dll和libdb_csharp51.dll。因此,libdb51.dll,libdb_csharp51.dll应放在本工程路径或者环境变量中,以便运行时加载。开发过程中,在代码中添

dgh_85的专栏 2991

Berkeley DB基础教程

一、Berkeley DB的介绍 (1)Berkeley DB是一个嵌入式数据库,它适合于管理海量的、简单的数据。如Google使用其来保存账户信息,Heritrix用其来保存froniter. (2)key/value是Berkeley DB用来管理数据的基础,每个key/value对代表一条记录。 (3)Berkeley DB在底层实现采用B树,可以看成能够存储大量数据的HashMa

jediael_lu的专栏 2万+

精:Berkeley DB XML入门详解

<br />Berkeley DB XML入门 <br />一、Berkeley DB XML安装及使用 <br />在http://www.oracle.com/technology/global/cn/products/berkeley-db/xml/index.html下载BerkeleyDB XML的安装文件(dbxml-2.4.16.rar)进行安装。 <br />完装完成后,重启计算机。 <br />使用方法: <br />1、 通过cmd窗口,输入dbxml即可进入到BerkeleyDB XM

lancui1110的专栏 1425

Linux 系统下安装 Berkeley DB

Berkeley DB是历史悠久的嵌入式数据库系统,主要应用在UNIX/LINUX操作系统上,其设计思想是简单、小巧、可靠、高性能。 现由Sleepycat公司维护,提供对DB的商业之支持。(Sleepycat被Oracle收购) DB支持几乎所有的现代操作系统,如LINUX、UNIX、WINDOWS等,也提供了丰富的应用程序接口,支持C、C++、JAVA、PERL、TCL、P

ivHornet的专栏 1208

Berkeley DB示例程序详解 (1)

 /** 这个例子程序是Berkeley DB的示例程序之一(DB/example_cxx/AccessMethod.cpp),* 它演示了如何使用Berkeley DB的基本功能,包括打开一个数据库,存入若干个* key/data pair,然后遍历数据库中的数据,最后关闭数据库。** 原始代码中有一些英文注释,但是对于初学者还是不够详细,我没有删除原来* 的注释,而且添

赵伟的计算机软件技术专栏 3361

Berkeley DB Research

Berkeley DB Java Edition Research一、Berkeley DB Java Edition简介 Berkeley DB JE is a general-purpose, transactionally protected, embedded database written in 100% Java (JE makes no JNI calls).

3394

Berkeley DB的c语言接口

像MySQL这类基于C/S结构的关系型数据库系统虽然代表着目前数据库应用的主流,但却并不能满足所有应用场合的需要。有时我们需要的可能只是一个简单的基于磁盘文件的数据库系统。这样不仅可以避免安装庞大的数据库服务器,而且还可以简化数据库应用程序的设计。Berkeley DB正是基于这

aican_yu的专栏 820

Berkeley DB 4.8 的 dbstl API

Berkeley DB 4.8 刚刚发布,我的心情格外激动。不仅仅是因为这个版本是Berkeley DB新增了很多新功能,在很多方面有不小的增强,更因为在众多的新功能中,有主要由我设计开发的STL API。 作为增强Berkeley DB的易用性或者叫做用户友好性的重要组成部分,STL API是Berkeley DB4.8的主要的新特性之一。Berkeley DB的STL

赵伟的计算机软件技术专栏 1650
上一篇: berkeley db DB_ENV->close()
下一篇: Berkeley DB Command Line Utilities db_stat
magicxiao
博客等级 码龄18年 1粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值