当前位置:首页 > 嵌入式 > 嵌入式教程
[导读] 嵌入式数据库在机房环境监控系统中的应用

摘要:在机房环境监控系统中,需要对大量的实时数据进行采集和处理。开源Berkeley DB具有体积小,快速高效,稳定可靠,可移植等特点,非常适用于嵌入式环境下的数据管理。为了提高该监控系统的可靠性和稳定性,采用嵌入式数据库Berkeley DB,利用交叉编译器对数据库文件进行交叉编译,并且在ARM系统上添加动态链接库的方法实现数据库在ARMLinux环境下的稳定运行,实现了基于Berkeley DB的机房环境监控系统,获得了预期的效果。
关键词:嵌入式数据库;ARM;Berkeley DB;监控系统

0 引言
    随着社会信息化进程的发展,许多行业部门的中心机房设备和规模也日趋扩大,配套的环境设备也日益增多,一旦机房的环境设备出现故障,将直接影响计算机系统的安全运行,后果不堪设想。为了保证安全,对机房的环境设备进行自动监控是极其重要的。

1 机房环境设备监控的主要内容及基本功能
    机房环境设备监控的主要内容有:机房用电的检测;对机房低压配电柜,UPS电源设备的输入端和输出端,各回路的电压、电流、频率、电功率的监测;温度、湿度的监测;机房漏水的监测;消防的监测。
    通过对机房环境设备特点的分析,可把机房环境监控系统的基本功能概括为:现场数据的实时采集、发送和显示;对采集到的数据进行处理和存储;对数据处理的结果进行分析、判断和报警;提供多种业务支持等。

2 监控系统对数据库的要求
    由于该监控系统的信息吞吐量大,多用户数据共享,实时性强等需求特点,对数据的存储与处理宜采用数据库方式。监控系统需要24 h不间断地进行监控,而数据采集系统更是要求在长期无人值守的情况下连续工作,因此,可靠性和稳定性便成为整个系统首要考虑的问题。监控主机一旦发生断电,通信故障,甚至系统崩溃等突发事件,在修复后应能从数据采集物理存储介质中获得不少于15天的原始数据,这些数据在时间上必须是连续的,而且必须持续到系统故障前的一个文件保存周期内。为达到上述要求,必须在数据采集系统中装载一个嵌入式数据库。

3 嵌入式数据库Berkeley DB简介
3.1 Berkeley DB的特点
    Berkeley DB是开放源代码的嵌入式数据库,为数据访问和管理提供了简单API函数调用,并支持包括C,C++,Java,Perl,TCL,Pyth on和PHP等的多种编程语言。Berkeley DB作为一种嵌入式数据库系统在许多方面有着独特的优势。首先,由于其应用程序和数据库管理系统运行在相同的进程空间中,耗费在通信上的开销降低到了极低程度。其次,它使用简单的函数调用接口来完成所有的数据库操作,而不是在数据库系统中经常用到的SQL语言,避免了对结构化查询语言进行解析和处理所需的开销。
3.2 Berkeley DB数据库操作
    通过内嵌在程序中的函数库完成对数据的保存,查询,修改和删除等操作。对它的操作要调用专用的API实现,这些API提供了查询,插入,删除等功能。比如com.sleepycat.db.Db类代表数据库对象。Db类的put()方法完成的是插入功能;get()完成的是独处数据的功能;com.sleepycat.db.Dbc是游标类,提供了遍历数据库记录的功能。
    Berkeley DB提供了数据库句柄结构DB,数据库记录结构DBT,数据库游标结构DBC,数据库环境句柄结构DB_ENV,数据库操作函数,如数据库创建函数:DB→open();数据库些函数DB→put()等,通过对这些函数的调用实现了对数据库复杂的管理操作。

4 Berkeley DB在ARM环境下的建立
4.1 Berkeley DB在Linux系统下的安装
    Berkeley DB源码以在官方网站上下载。建立宿主机-目标机的模式,宿主机上安装Linux操作系统和交叉编译器,对程序代码进行交叉编译,链接,形成在目标机上可以运行的二进制代码,然后把可执行代码文件下载到目标机上运行。
    (1)将cross 2.9.5.3交叉工具链安装在/usr/bcal/arm/路径下,并下载Berkeley DB的最新版本,建立好交叉编译器后,对下载的Berkeley DB程序包准备安装。
    (2)安装交叉编译器ARM-Linux-gcc
    #vi./dist/configure在配置文件的最前面添加以下几行:
    CC=/usr/local/arm/2 95.3/bin/arm—linux—gcc
    AR=/usr/local/arm/2 95.3/bin/arm—linux—arm
    RANLIB=/usr/local/arm/2 95.3/bin/arm—linux—ranlib
    STRIP=/usr/local/arm/2 95.3/bin/arm—linux—strip
    (3)安装程序库,通过-prefix命令更改安装路径,假设安装路径为/pt linux/arm—work,其命令为:
    #../dist/configure—prefix/pt linux/armwork—host=arm—linux
    #make
    #make install
    (4)安装完成后,在/pt linux/armwork目录下,将生成lib和include两个文件夹。对宿主机的库文件环境变量进行配置:#vi/etc /ld so conf
    (5)在文件的最后一行中添加/pt linux/armwork/lib # ldconfig,这样配置动态库生效Berkeley DB在linux环境下安装就算完成了。
4.2 数据库在ARM上的运行
    一个随机数存入数据库“db1.db”中,部分代码如下所示:

    建立好数据库文件后,用交叉编译器对数据库进行编译,编译通过后,将生成的可执行代码和动态库拷贝到嵌入式设备上。

5 结语
    在嵌入式系统中,利用嵌入式数据库对数据进行操作和管理是嵌入式系统应用发展方向,它简化了应用程序的整体开发过程,提高了用户存取记录的效率,实现了多用户数据的共享,可满足嵌入式远程监控系统的数据管理要求。随着嵌入式技术的发展,嵌入式数据库已逐步深入到嵌入式系统的各个应用领域。Berkeley DB作为当今世界上最流行的嵌入式数据库之一,其功能非常强大,而且操作简单,容易实现,是一个实用的数据库。本文介绍了Berkeley DB在监控系统中的应用。经实践证明,基于Berkeley DB的远程监控系统方案取得了较为理想的效果。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭