服务器常用的数据库

2024-05-11

服务器常用的数据库(精选6篇)

篇1:服务器常用的数据库

从codered到nimda等,一大堆蠕虫把原来需要人工利用的漏洞都变成了程序自动利用了,大家还想去手工操作这些IIS漏洞么?让我们调整重心,去看看服务器常用的数据库吧,

服务器常用的数据库

一般网站都是基于数据库的,特别是ASP、PHP、JSP这样的用数据库来动态显示的网站。很多网

篇2:服务器常用的数据库

前言

这篇文章介绍了DBA每天在监控Oracle数据库方面的职责,讲述了如何通过shell脚本来完成这些重复的监控工作。本文首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本。同时文章还介绍了8个重要的脚本来监控Oracle数据库:

检查实例的可用性

检查 的可用性

检查alert日志文件中的错误信息

在存放log文件的地方满以前清空旧的log文件

分析table和index以获得更好的性能

检查表空间的使用情况

找出无效的对象

监控用户和事务

DBA需要的Unix基本知识

基本的UNIX命令

以下是一些常用的Unix命令:

ps--显示进程 grep--搜索文件中的某种文本模式 mailx--读取或者发送mail cat--连接文件或者显示它们 cut--选择显示的列 awk--模式匹配语言 df--显示剩余的磁盘空间

以下是DBA如何使用这些命令的一些例子:

显示服务器上的可用实例:

$ ps -ef | grep smon

oracle 21832 1 0 Feb 24 ? 19:05 ora_smon_oradb1

oracle 898 1 0 Feb 15 ? 0:00 ora_smon_oradb2

dliu 25199 19038 0 10:48:57 pts/6 0:00 grep smon

oracle 27798 1 0 05:43:54 ? 0:00 ora_smon_oradb3

oracle 28781 1 0 Mar 03 ? 0:01 ora_smon_oradb4、显示服务器上的可用 :

$ ps -ef | grep listener | grep -v grep

(译者注:grep命令应该加上-i参数,即grep -i listener,

该参数的作用是忽略大小写,因为有些时候listener是大写的,这时就会看不到结果)

oracle 23879 1 0 Feb 24 ? 33:36 /8.1.7/bin/tnslsnr listener_db1 -inherit

oracle 27939 1 0 05:44:02 ? 0:00 /8.1.7/bin/tnslsnr listener_db2 -inherit

oracle 23536 1 0 Feb 12 ? 4:19 /8.1.7/bin/tnslsnr listener_db3 -inherit

oracle 28891 1 0 Mar 03 ? 0:01 /8.1.7/bin/tnslsnr listener_db4 -inherit

查看Oracle存档目录的文件系统使用情况

$ df -k | grep oraarch

/dev/vx/dsk/proddg/oraarch 71123968 4754872 65850768 7% /u09/oraarch

统计alter.log文件中的行数:

$ cat alert.log | wc -l

2984

列出alert.log文件中的全部Oracle错误信息:

$ grep ORA- alert.log

ORA-00600: internal error code, arguments: [kcrrrfswda.1], [], [], [], [], []

ORA-00600: internal error code, arguments: [1881], [25860496], [25857716], []

CRONTAB基本

一个crontab文件中包含有六个字段:

分钟 0-59

小时 0-23

月中的第几天 1-31

月份 1 - 12

星期几 0 - 6, with 0 = Sunday

Unix命令或者Shell脚本

要编辑一个crontab文件,输入:Crontab -e

要查看一个crontab文件,输入:

Crontab -l

0 4 * * 5 /dba/admin/analyze_table.ksh

30 3 * * 3,6 /dba/admin/hotbackup.ksh /dev/null 2>&1

在上面的例子中,第一行显示了一个分析表的脚本在每个星期5的4:00am运行。第二行显示了一个执行热备份的脚本在每个周三和周六的3:00a.m.运行。

监控数据库的常用Shell脚本

以下提供的8个shell脚本覆盖了DBA每日监控工作的90%,你可能还需要修改UNIX的环境变量。

检查Oracle实例的可用性

oratab文件中列出了服务器上的所有数据库

$ cat /var/opt/oracle/oratab

############################################################

## /var/opt/oracle/oratab##

############################################################

oradb1:/u01/app/oracle/product/8.1.7:Y

oradb2:/u01/app/oracle/product/8.1.7:Y

oradb3:/u01/app/oracle/product/8.1.7:N

oradb4:/u01/app/oracle/product/8.1.7:Y以下的脚本检查oratab文件中列出的所有数据库,并且找出该数据库的状态(启动还是关闭)

##############################################################

## ckinstance.ksh ## ###################################################################

RATAB=/var/opt/oracle/oratab

echo `date`

echo Oracle Database(s) Status `hostname` :

db=`egrep -i :Y|:N $ORATAB | cut -d: -f1 | grep -v # | grep -v *`

pslist=`ps -ef | grep pmon`

for i in $db ; do

echo $pslist | grep ora_pmon_$i >/dev/null 2>$1

if (( $? )); then

echo Oracle Instance - $i: Down

else

echo Oracle Instance - $i: Up

fi

done

使用以下的命令来确认该脚本是可以执行的:

$ chmod 744 ckinstance.ksh

$ ls -l ckinstance.ksh

-rwxr--r-- 1 oracle dba 657 Mar 5 22:59 ckinstance.ksh*

以下是实例可用性的报表:

$ ckinstance.ksh

Mon Mar 4 10:44:12 PST

Oracle Database(s) Status for DBHOST server:

Oracle Instance - oradb1: Up

Oracle Instance - oradb2: Up

Oracle Instance - oradb3: Down

Oracle Instance - oradb4: Up

检查Oracle 的可用性

以下有一个类似的脚本检查Oracle 。如果 停了,该脚本将会重新启动 :

#######################################################################

## cklsnr.sh ##

#######################################################################

#!/bin/ksh

DBALIST=primary.dba@company.com,another.dba@company.com;export DBALIST

cd /var/opt/oracle

rm -f lsnr.exist

ps -ef | grep mylsnr | grep -v grep >lsnr.exist

if [ -s lsnr.exist ]

then

echo

else

echo Alert | mailx -s Listener ‘mylsnr‘ on `hostname` is down $DBALIST

TNS_ADMIN=/var/opt/oracle; export TNS_ADMIN

ORACLE_SID=db1; export ORACLE_SID

ORAENV_ASK=NO; export ORAENV_ASK

PATH=$PATH:/bin:/usr/local/bin; export PATH

. oraenv

LD_LIBRARY_PATH=${ORACLE_HOME}/lib;export LD_LIBRARY_PATH

lsnrctl start mylsnr

fi

检查Alert日志(ORA-XXXXX)

每个脚本所使用的一些环境变量可以放到一个profile中:

#######################################################################

## oracle.profile ##

#######################################################################

EDITOR=vi;export EDITOR ORACLE_BASE=/u01/app/oracle; export

ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/8.1.7; export

ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib; export

LD_LIBRARY_PATH TNS_ADMIN=/var/opt/oracle;export

TNS_ADMIN NLS_LANG=american; export

NLS_LANG NLS_DATE_FORMAT=‘Mon DD YYYY HH24:MI:SS‘; export

NLS_DATE_FORMAT RATAB=/var/opt/oracle/oratab;export

ORATAB PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin:/usr/clearcase/“ target=”_blank“ >ccs/bin:/bin:/usr/bin:/usr/sbin:/

sbin:/usr/openwin/bin:/opt/bin:.; export

PATH DBALIST=primary.dba@company.com,another.dba@company.com;export

DBALIST以下的脚本首先调用oracle.profile来设置全部的环境变量。如果发现任何的Oracle错误,该脚本还会给DBA发送一个警告的email。

####################################################################

## ckalertlog.sh ##

####################################################################

#!/bin/ksh

.. /etc/oracle.profile

for SID in `cat $ORACLE_HOME/sidlist`

do

cd $ORACLE_BASE/admin/$SID/bdump

if [ -f alert_${SID}.log ]

then

mv alert_${SID}.log alert_work.log

touch alert_${SID}.log

cat alert_work.log >>alert_${SID}.hist

grep ORA- alert_work.log >alert.err

fi

if [ `cat alert.err|wc -l` -gt 0 ]

then

mailx -s ${SID} ORACLE ALERT ERRORS $DBALIST< alert.err

fi

rm -f alert.err

rm -f alert_work.log

done

清除旧的归档文件

以下的脚本将会在log文件达到90%容量的时候清空旧的归档文件:

$ df -k | grep arch

Filesystem kbytes used avail capacity Mounted on

/dev/vx/dsk/proddg/archive 71123968 30210248 40594232 43% /u08/archive

#######################################################################

## clean_arch.ksh ##

#######################################################################

#!/bin/ksh

df -k | grep arch >dfk.result

archive_filesystem=`awk -F ‘{ print $6 }‘ dfk.result`

archive_capacity=`awk -F ‘{ print $5 }‘ dfk.result`

if [[ $archive_capacity >90% ]]

then

echo Filesystem ${archive_filesystem} is ${archive_capacity} filled

# try one of the following option depend on your need

find $archive_filesystem -type f -mtime +2 -exec rm -r {} ;

tar

rman

fi

分析表和索引(以得到更好的性能)

以下我将展示如果传送参数到一个脚本中:

####################################################################

## analyze_table.sh ##

####################################################################

#!/bin/ksh

# input parameter: 1: password # 2: SID

if (($#<1)) then echo ”Please enter oracle user password as the first parameter !“ exit 0

fi

if (($#<2)) then echo ”Please enter instance name as the second parameter!“ exit 0

fi

要传入参数以执行该脚本,输入:

$ analyze_table.sh manager oradb1

脚本的第一部分产生了一个analyze.sql文件,里面包含了分析表用的语句,

脚本的第二部分分析全部的表:

#####################################################################

## analyze_table.sh ##

#####################################################################

sqlplus -s<

oracle/$1@$2

set heading off

set feed off

set pagesize 200

set linesize 100

spool analyze_table.sql

select ANALYZE TABLE || owner || . || segment_name ||

ESTIMATE STATISTICS SAMPLE 10 PERCENT;

from dba_segments

where segment_type = TABLE

and owner not in (SYS, SYSTEM);

spool off

exit

!

sqlplus -s<

oracle/$1@$2

@./analyze_table.sql

exit

!

以下是analyze.sql的一个例子:

$ cat analyze.sql

ANALYZE TABLE HIRWIN.JANUSAGE_SUMMARY ESTIMATE STATISTICS SAMPLE 10 PERCENT;

ANALYZE TABLE HIRWIN.JANUSER_PROFILE ESTIMATE STATISTICS SAMPLE 10 PERCENT;

ANALYZE TABLE APPSSYS.HIST_SYSTEM_ACTIVITY ESTIMATE STATISTICS SAMPLE 10 PERCENT;

ANALYZE TABLE HTOMEH.QUEST_IM_VERSION ESTIMATE STATISTICS SAMPLE 10 PERCENT;

ANALYZE TABLE JSTENZEL.HIST_SYS_ACT_0615 ESTIMATE STATISTICS SAMPLE 10 PERCENT;

ANALYZE TABLE JSTENZEL.HISTORY_SYSTEM_0614 ESTIMATE STATISTICS SAMPLE 10 PERCENT;

ANALYZE TABLE JSTENZEL.CALC_SUMMARY3 ESTIMATE STATISTICS SAMPLE 10 PERCENT;

ANALYZE TABLE IMON.QUEST_IM_LOCK_TREE ESTIMATE STATISTICS SAMPLE 10 PERCENT;

ANALYZE TABLE APPSSYS.HIST_USAGE_SUMMARY ESTIMATE STATISTICS SAMPLE 10 PERCENT;

ANALYZE TABLE PATROL.P$LOCKCONFLICTTX ESTIMATE STATISTICS SAMPLE 10 PERCENT;

检查表空间的使用

以下的脚本检测表空间的使用。如果表空间只剩下10%,它将会发送一个警告email。

#####################################################################

## ck_tbsp.sh ##

#####################################################################

#!/bin/ksh

sqlplus -s<

oracle/$1@$2

set feed off

set linesize 100

set pagesize 200

spool tablespace.alert

SELECT F.TABLESPACE_NAME,

TO_CHAR ((T.TOTAL_SPACE - F.FREE_SPACE),999,999) ”USED (MB)“,

TO_CHAR (F.FREE_SPACE, 999,999) ”FREE (MB)“,

TO_CHAR (T.TOTAL_SPACE, 999,999) ”TOTAL (MB)“,

TO_CHAR ((ROUND ((F.FREE_SPACE/T.TOTAL_SPACE)*100)),999)|| % PER_FREE

FROM (

SELECT TABLESPACE_NAME,

ROUND (SUM (BLOCKS*(SELECT VALUE/1024

FROM V$PARAMETER

WHERE NAME = db_block_size)/1024)

) FREE_SPACE

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME

) F,

(

SELECT TABLESPACE_NAME,

ROUND (SUM (BYTES/1048576)) TOTAL_SPACE

FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME

) T

WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME

AND (ROUND ((F.FREE_SPACE/T.TOTAL_SPACE)*100))< 10;

spool off

exit

!

if [ `cat tablespace.alert|wc -l` -gt 0 ]

then

cat tablespace.alert -l tablespace.alert >tablespace.tmp

mailx -s ”TABLESPACE ALERT for ${2}“ $DBALIST< tablespace.tmp

fi

警告email输出的例子如下:

TABLESPACE_NAME USED (MB) FREE (MB) TOTAL (MB) PER_FREE

------------------- --------- ----------- ------------------- ------------------

SYSTEM 2,047 203 2,250 9 %

STBS01 302 25 327 8 %

STBS02 241 11 252 4 %

STBS03 233 19 252 8 %

查找出无效的数据库对象

以下查找出无效的数据库对象:

#####################################################################

## invalid_object_alert.sh ##

#####################################################################

#!/bin/ksh . /etc/oracle.profile

sqlplus -s<

oracle/$1@$2

set feed off

set heading off column object_name format a30

spool invalid_object.alert

SELECT OWNER, OBJECT_NAME, OBJECT_TYPE,

STATUS FROM DBA_OBJECTS WHERE STATUS =

INVALID ORDER BY OWNER, OBJECT_TYPE, OBJECT_NAME;

spool off

exit ! if [ `cat invalid_object.alert|wc -l` -gt 0 ] then

mailx -s ”INVALID OBJECTS for ${2}“ $DBALIST< invalid_object.alert

fi$ cat invalid_object.alert

OWNER OBJECT_NAME OBJECT_TYPE STATUS

--------------------------------------------

HTOMEH DBMS_SHARED_POOL PACKAGE BODY INVALID

HTOMEH X_$KCBFWAIT VIEW INVALID

IMON IW_MON PACKAGE INVALID

IMON IW_MON PACKAGE BODY INVALID

IMON IW_ARCHIVED_LOG VIEW INVALID

IMON IW_FILESTAT VIEW INVALID

IMON IW_SQL_FULL_TEXT VIEW INVALID

IMON IW_SYSTEM_EVENT1 VIEW INVALID

IMON IW_SYSTEM_EVENT_CAT VIEW INVALIDLBAILEY CHECK_TABLESPACE_USAGE PROCEDURE INVALID

PATROL P$AUTO_EXTEND_TBSP VIEW INVALID

SYS DBMS_CRYPTO_TOOLKIT PACKAGE INVALID

SYS DBMS_CRYPTO_TOOLKIT PACKAGE BODY INVALID

SYS UPGRADE_SYSTEM_TYPES_TO_816 PROCEDURE INVALID

SYS AQ$_DEQUEUE_HISTORY_T TYPE INVALID

SYS HS_CLASS_CAPS VIEW INVALID SYS HS_CLASS_DD VIEW INVALID

监视用户和事务(死锁等)

以下的脚本在死锁发生的时候发送一个警告e-mail:

###################################################################

## deadlock_alert.sh ##

##################################################################

##!/bin/ksh

.. /etc/oracle.profile

sqlplus -s<

oracle/$1@$2

set feed off

set heading off

spool deadlock.alert

SELECT SID, DECODE(BLOCK, 0, NO, YES ) BLOCKER,

DECODE(REQUEST, 0, NO,YES ) WAITER

FROM V$LOCK

WHERE REQUEST >0 OR BLOCK >0

ORDER BY block DESC;

spool off

exit

!

if [ `cat deadlock.alert|wc -l` -gt 0 ]

then

mailx -s ”DEADLOCK ALERT for ${2}“ $DBALIST< deadlock.alert

fi

结论

0,20,40 7-17 * * 1-5 /dba/scripts/ckinstance.sh >/dev/null 2>&1

0,20,40 7-17 * * 1-5 /dba/scripts/cklsnr.sh >/dev/null 2>&1

0,20,40 7-17 * * 1-5 /dba/scripts/ckalertlog.sh >/dev/null 2>&1

30 * * * 0-6 /dba/scripts/clean_arch.sh >/dev/null 2>&1

* 5 * * 1,3 /dba/scripts/analyze_table.sh >/dev/null 2>&1

* 5 * * 0-6 /dba/scripts/ck_tbsp.sh >/dev/null 2>&1

* 5 * * 0-6 /dba/scripts/invalid_object_alert.sh >/dev/null 2>&1

0,20,40 7-17 * * 1-5 /dba/scripts/deadlock_alert.sh >/dev/null 2>&1

通过以上的脚本,可大大减轻你的工作。你可以使用这些是来做更重要的工作,例如性能调整。(责任编辑:铭铭)

篇3:ASP与常用数据库的连接

关键词:ASP,ADO,OLEDB,ODBC数据库连接

ASP是目前流行的开放式WEB应用程序开发技术。ASP能将脚本、HTML、组件和强大的WEB数据库访问功能结合在一起, 形成一个能在服务器上运行的应用程序, 并按用户要求制作专门的页面传递给客户端浏览器。数据库是管理大量、一致、可靠、共享、持久的数据资源的计算机软件产品。数据库软件是动态网站实现互动效果的一个非常重要的核心组件, 是支撑以电子商务、网上论坛和信息发布为代表的一系列网络服务的坚强支柱。因此在ASP中如何建立与不同类型数据库的连接就显得尤为重要。

ASP必须建立与数据库的联系才能使用数据库中的数据。在ASP中, 用来存取数据库的对象统称为ADO组件, 它的主要对象有三种:Connection、Recordset、Command。Connection对象又称连接对象, 用来和数据库建立连接, 用Connection对象建立连接后, 才可以利用Command对象或Recordset对象对数据库进行各种操作;Recordset:负责存取数据;Command对象定义将用于对数据源执行的指定命令。

ASP与数据库的互连是通过ODBC或者OLE DB实现的, 它们都为ASP提供统一的数据库访问接口。ODBC (Open Data Base Connectivity) 即开放数据库互连, 它将所有对数据库的底层操作全部隐藏在ODBC的驱动程序内核里。对于用户来说, 只要构建了一个指向数据库的连接, 就可以采用统一的应用程序编程接口 (API) 就实现对数据库的读写, 或者用相同的代码访问不同类型的数据库。

1 创建DNS数据源

在ASP中利用ADO对象来操作数据库, 首先要创建一个指向数据库的ODBC连接。

在Windows系统中, ODBC的连接主要是通过ODBC数据管理器来完成的, 数据库驱动程序使用数据源DSN (Data Source Name) 定位和标识特定的ODBC兼容的数据库, 构建ODBC连接就是创建与数据源的连接, 也就是创建DSN。一旦创建了指向数据库的ODBC连接 (DSN) , 同数据库连接的有关信息就被保存在DSN中。

DSN分为用户、系统和文件三种类型。用户DSN一般不用。文件DSN将信息保存在独立的文件Global.asa中, 如果希望将整个WEB应用程序和数据库移动到其他计算机中, 只需连同生成的DSN文件一起移动即可, 故使用较方便。系统DSN将信息保存在注册表中, 移动不方便, 但便于修改, 只需简单地修改Windows的注册表即可, 如果在同一台计算机上有多应用程序需使用一个DSN, 那么使用系统DSN更为方便。

比如, 如果你有一个访问Access数据库的程序, 数据源 (ODBC) 会允许您用同一个程序访问SQL数据库中的数据。至于具体访问细节你就不用关心, 完全由ODBC自动来完成。

举例:创建系统DNS数据源

建立一个数据库wwwlink.mdb, 表为link;建立数据源名为wwwlink。

依次选择【开始】/【设置】/【控制面板】/【管理工具】/【数据源 (ODBC) 】选项, 创建DNS数据源, 即可完成操作。

2 创建基于ODBC的数据库有源连接 (利用DSN数据源连接数据库)

Set Connection对象=Server.Create (“ADODB.Connection”)

Connection对象.open连接字符串或变量

例如:<%dim cn

Set cn=Server.Create (“ADODB.Connection”) cn.open“DSN=wwwlink;UID=sa;PWD=”%>

其中:UID表示用户名, PWD表示用户密码。创建有ODBC数据源的连接方法书写简便, 也不容易出错, 但当数据库移动位置后, 需重新设置数据源, 所以可移植性差。

3 利用用ODBC连接字符串连接数据库

数据库也可以不设数据源, 用ODBC连接字符串连接数据库, 但要用到Driver和Dbq两个参数。

3.1 ASP连接Access数据库

<%dim cn, dbfilemdbfile=serv

mdbfile=server.mappath ("数据库名称.mdb")

set cn=server.createobject ("adodb.connection")

cn.open"driver={microsoft access driver (*.mdb) };uid=admin;pwd=数据库密码;dbq="&dbfile%>

3.2 ASP连接Sql server连接方法

<%dim cnset cn=server.createobject ("adodb.recordset") cn.open"driver={sql server};server= (local) ;uid=***;pwd=***;"&_"database=数据库名%>

3.3 ASP连接Oracle连接方法

创建没有ODBC数据源的应用程序移植到别的服务器上后, 就可以立即使用, 因此它是应用程序中比较常用的数据库连接方法。

<%dim cnset cn=server.createobject ("adodb.connection") %>

4 创建基于OLE DB的连接字符串的连接

OLE DB是微软的战略性的通向不同的数据源的低级应用程序接口。OLE DB不仅包括微软资助的标准数据接口开放数据库连通性 (ODBC) 的结构化问题语言 (SQL) 能力, 还具有面向其他非SQL数据类型的通路, 即OLE DB的对象则是范围更为广泛的任何数据存储。

如果在“ODBC数据库管理器”中没有建立DSN, 那ADO便使用提供的OLE DB连接字符串来识别OLE DB提供者, 并将提供者指向数据源。

首先创建连接对象:

1) ASP连接Access数据库OLE DB连接方法:

<%cn.open"provider=microsoft.jet.oledb.4.0;"&_"data source="&server.mappath ("数据库所在路径") %>

2) ASP连接Sql server数据库OLE DB连接方法:

<%cn.open"provider=sqloledb.1;data source=ritant4;"&_"user id=***;password=***;"&_"inital catalog=数据库名"%>

3) ASP连接Oracle数据库OLE DB连接方法:

<%cn.open"provider=oraoledb.oracle;data source=dbname;user id=admin;password=pass;"%>

尽管OLEDB与ODBC都可以实现对数据库的存取操作, 从ADO数据存取架构上看, 访问相同数据时, ODBC可能比OLEDB速度快一些, 但OLEDB字符串连接方式, 省去了建ODBC数据源的步骤, 适用的数据库范围更广, 操作更加简洁, 所以更为常用些。

因此在应用程序中, 连接方式要优于的连接方式。

参考文献

[1]李华斌.Active Server Pages实用教程[M].北京:中国水利出版社, 2000.

篇4:服务器常用的数据库

关键词:数据库;Java;JDBC;连接池

中图分类号:TP311.13文献标识码:A文章编号:1007-9599 (2013) 06-0000-02

目前各种各样的软件信息技术都逐渐的融入到了生活中,为社会发展和人们生活做出了极大的贡献。其中Java语言程序的开发和应用,在社会中都有着很大的突破,它不但打破了传统语言程序的模式,还要有效的对其信息技术进行了有效的发展。因此在进行Java程序数据访问时候,要从各方面入手,从而达到信息的最大化。

1Java语言程序的特点

目前Java已经广泛的应用在人们的生活和办公,而与其传统的语言设计程序相比,这种技术有着很好的通用性和高效性,而且随着信息防护技术的较强,Java程序已经将这种技术融入到了该软件的应用当中,从而也提高了该程序的安全性,使得人们的信息技术有了很好的保障。由此可见,我们在进行程序设计开发的时候,对于信息的安全保护这是十分重要的,只有有效的保护了信息,这种软件程序也能收到人们的清青睐。

当我们在进行应用程序的开发时,对于数据库的链接也是十分重要的,如果当程序在运行的时,对于应用程序数据库的没有提高其连接率,那么将会严重的影响着应用程序的功能,这也给人们带来了许多的不便,而且在进行程序开发的过程中,怎么样才能使得数据库得到高效的访问,这对信息技术施工人员来说是十分重要的。而且只有提高应用程序对访问的效率才能使得,该应用软件得到很好的发展。因此,我们可以看出Java数据的访问技术,是Java应用程序的命脉。

2JDBC访问数据库的方式

JDBC是Java中连接数据库的接口技术,它是支持基本SQL功能的—个通用低层的应用程序编程接口。JDBC主要有两类接口:面向程序开发人员的JDBC API和面向JDBC驱动程序的JDBC、Driver和API。Java语言提供了一组用来执行基本的数据库操作的种类和接口的JD—BC API,这些API包含在Java语言的java.sql包中。开发者使用这些API可以完成所有基本的数据库操作,诸如管理JDBC驱动程序,并可进行数据库连接、处理相关的操作、返回操作结果等。JDBC为Java开发人员开发数据库提供了统一的机制,然而在使用JDBC访问数据库的驱动程序的具体实现方式上。

3实现方式的比较分析

Java对数据库访问的方式主要有四种,它们分别是JDBC—ODBC桥接方法、本地API连接方式、网络协议和本地协议。对这些方法分类主要是因为在不同的情况下,这些方法有着不同的运用方式和应用效果。而且不同的访问方式也存在着不同的差异。所以,我们在访问方式的选取的时候,一定要选取合适的访问方法,否知在应用软件运行的时候,将会出现极大的问题,这对人们的办公和生活有严重影响。

3.1JDBC—ODBC桥接方式

这种方式是通过ODBC驱动程序来提供JDBC对数据库的访问。使用该方式,只需要在操作系统中创建数据库管理系统(例如Oracle)的某一ODBC数据源,就可在Java程序中访问该数据源。由于操作系统中的ODBC管理程序目前已基本能支持各种类型的数据源,在Java应用程序中可以直接使用JDK所附带的驱动程序sun.idbc.odbc.Jdbc Odbc Driver进行连接,因此这种方式是一种最便捷的使用方式。但是这种方式由于需要在JDBC API和ODBC API之间进行转换,因此从效率上来说,是最不理想的一种方式。

3.2本地API方式

是一种将标准的JDBC调用转换为本地调用,即转化为某—数据库管理系统(如Oracle)的客户端调用。因此,所调用的JDBC API将实际上转换为特定数据库供应商提供的数据库API,然后通过该数据库供应商的数据库API访问数据库。这类方式的效率比第—类稍高,然而依然存在JDBC API和本地API桥接转换的问题。此外,这种方式要求在每台客户机上预装本地API库,因此不利于应用系统的维护。

3.3网络协议方式

网络协议方式是将JDBC调用转换为独立于数据库管理系统的网络协议。JDBC驱动程序并没有直接和数据库进行通信,而是和一个中间件通信,然后这个中间件和数据库进行通信。这个中间件可将Java应用程序连接到不同的数据库。

3.4本地协议方式

本地协议方式也就是我们常说的本地连接,是采用纯Java驱动程序为基础的一种新型的连接模式,在其应用的时候是通过将JDBC调用系统直接转换为能够为数据库管理做服务的一种结构体系,进而生成一种网络管理协议体系,以保障访问数据库的顺利、持续和科学。这一类驱动器的应用是以驱动程序为基础,有数据库开发商自行开发和研制的一个环节。同时这种方式的应用对于一个生成其他数据库结构都是十分必要和关键的。

通过上述方式进行比较得出,我们可以看出这四种实现的协议连接方式中,网络协议和本地协议的使用和选择在访问率上有着重大的优势,同时存在着众多可移植性的优势,在这两个方面上,这两种连接和驱动方式是极为关键和有力的。在选用访问数据库来作为实现方式的时候,我们应当根据现有工作要求的实际情况入手去总结和归纳,针对程序库中需要访问数据的类型和结构体系来加载合适的处理模式和方法,从而顺利、科学的执行相关命令与要求。

4可复用的数据库连接池机制与实现

在Java程序来进行书库卡访问的时候,数据库的连接可谓是一条不可缺少的条件,也是现代化社会发展中最为关键的一个核心环节。在工作中,需要在访问之初设置一个可靠的连接通道,在访问结束之后需要及时的关闭这一连接通道。这样的访问方式对于预防各种新建、销毁文档有着重要的保护作用,同时还可以增加应用程序的工作效率,降低开发成本,因而在目前的操作中需要针对这一现象加以研究和处理,尤其是针对那些用户和速度要求高的数据库应用系统中,更是要及时的对这些问题加以总结和处理完善,从而使得整个管理体系得到有效的完善。这种结构体系在应用中数据库结构的连接完成之后,能够及时的将数据库的连接交还给连接池,将其中扩展到连接池的功能供应要求,使得其中的配置和管理策略方面的问题都能够得到有效的连接。在此之后,执行数据库的时候就和常规的应用程序相差无几了,其无论是程序类型还是程序连接技术,都能够根据连接管理方式的不同来进行归纳和总结,从而做到因地制宜的访问,以便数据库管理连接的正常、科学进行。

5结束语

当前,由于电子信息化时代的到来给我们的生活带来了极大的方面,让人们在足不出户的情况下,就可以了解到先关的知识点,这对社会的发展和人们的生活都有着极大的作用。目前,随着一些应用程序的普遍使用,人们在开始对其进行了一定的认识。不过由于我国在电子信息处理技术和数据访问技术等方面还是存在着严重的不足,而且这些也是电子信息应用程序的命脉,因此想要将电子信息应用程序进行很好的发展,我们只有对着些程序中存在的问题进行不断的完善和发展,而且在进行相关程序的我们还要向发达国家进行请教,只有这样才能推动我国的电子信息应用软件的发展,才能使人们的生活更加的便利。

参考文献:

[1]李阳,李晓东.基于JDBC的数据库连接池技术的研究[J].科技信息,2009(06).

[2]石义良,邓娟.JSP数据库访问技术研究[J].科技资讯,2009(02).

[作者简介]常红(1980.07.21-),女,汉族,黑龙江大庆人,黑龙江生物科技职业学院讲师,硕士学位,研究方向:计算机科学与技术专业。

篇5:大数据开发运用的常用技术

大数据开发运用的常用技术

大数据是对海量数据进行存储、计算、统计、分析处理的一系列处理手段,处理的数据量通常是TB级,甚至是PB或EB级的数据,这是传统数据处理手段所无法完成的,其涉及的技术有分布式计算、高并发处理、高可用处理、集群、实时性计算等,汇集了当前IT领域热门流行的IT技术。

想要学好大数据需掌握以下技术: 1.Java编程技术

Java编程技术是大数据学习的基础,Java是一种强类型语言,拥有极高的跨平台能力,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等,是大数据工程师最喜欢的编程工具,因此,想学好大数据,掌握Java基础是必不可少的!

2.Linux命令

对于大数据开发通常是在Linux环境下进行的,相比Linux操作系统,Windows操作系统是封闭的操作系统,开源的大数据软件很受限制,因此,想从事大数据开发相关工作,还需掌握Linux基础操作命令。

3.Hadoop Hadoop是大数据开发的重要框架,其核心是HDFS和MapReduce,HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算,因此,需要重点掌握,除此之外,还需要掌握Hadoop集群、Hadoop集群管理、YARN以及Hadoop高级管理等相关技术与操作!

4.Hive 老男孩IT教育,只培养技术精英

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行,十分适合数据仓库的统计分析。对于Hive需掌握其安装、应用及高级操作等。

5.Avro与Protobuf Avro与Protobuf均是数据序列化系统,可以提供丰富的数据结构类型,十分适合做数据存储,还可进行不同语言之间相互通信的数据交换格式,学习大数据,需掌握其具体用法。

6.ZooKeeper ZooKeeper是Hadoop和Hbase的重要组件,是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组件服务等,在大数据开发中要掌握ZooKeeper的常用命令及功能的实现方法。

7.HBase HBase是一个分布式的、面向列的开源数据库,它不同于一般的关系数据库,更适合于非结构化数据存储的数据库,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,大数据开发需掌握HBase基础知识、应用、架构以及高级用法等。

8.phoenix phoenix是用Java编写的基于JDBC API操作HBase的开源SQL引擎,其具有动态列、散列加载、查询服务器、追踪、事务、用户自定义函数、二级索引、命名空间映射、数据收集、行时间戳列、分页查询、跳跃查询、视图以及多租户的特性,大数据开发需掌握其原理和使用方法。 老男孩IT教育,只培养技术精英

9.Redis Redis是一个key-value存储系统,其出现很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用,它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便,大数据开发需掌握Redis的安装、配置及相关使用方法。

10.Flume Flume是一款高可用、高可靠、分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。大数据开发需掌握其安装、配置以及相关使用方法。

11.SSM SSM框架是由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。大数据开发需分别掌握Spring、SpringMVC、MyBatis三种框架的同时,再使用SSM进行整合操作。

12.Kafka Kafka是一种高吞吐量的分布式发布订阅消息系统,其在大数据开发应用上的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。大数据开发需掌握Kafka架构原理及各组件的作用和使用方法及相关功能的实现!

13.Scala Scala是一门多范式的编程语言,大数据开发重要框架Spark是采用Scala 老男孩IT教育,只培养技术精英

语言设计的,想要学好Spark框架,拥有Scala基础是必不可少的,因此,大数据开发需掌握Scala编程基础知识!

14.Spark Spark是专为大规模数据处理而设计的快速通用的计算引擎,其提供了一个全面、统一的框架用于管理各种不同性质的数据集和数据源的大数据处理的需求,大数据开发需掌握Spark基础、SparkJob、Spark RDD、spark job部署与资源分配、Spark shuffle、Spark内存管理、Spark广播变量、Spark SQL、Spark Streaming以及Spark ML等相关知识。

15.Azkaban Azkaban是一个批量工作流任务调度器,可用于在一个工作流内以一个特定的顺序运行一组工作和流程,可以利用Azkaban来完成大数据的任务调度,大数据开发需掌握Azkaban的相关配置及语法规则。

16.Python与数据分析

Python是面向对象的编程语言,拥有丰富的库,使用简单,应用广泛,在大数据领域也有所应用,主要可用于数据采集、数据分析以及数据可视化等,因此,大数据开发需学习一定的Python知识。

篇6:服务器常用的数据库

1)第3.8.15条,水泵基础高出地面不应小于0.10m;

2)第3.8.6条,水泵吸水喇叭口至池底的净距,不应小于0.8倍吸水管管径,且不应小于0.10m;

3)第5.4.19条,膨胀管出口离接入水箱水面的高度不应小于0.10m;

4)塑规第4.4.6条,塑料管道穿越楼板屋面时设套管,套管高出地面、屋面不小于0.10m;(作废)

5)塑规第4.4.7条,塑料管道与其它金属管道平行敷设时,应有不少于0.10m保护距离;(作废)

6)塑规第4.1.7条,架空塑料给水管顶上空净空不宜小于0.10m;(作废)

7)游规第4.4.3条,游泳池、水上游乐池的补水箱,补水管应高出箱内最高水位0.10m;

8)游规第5.6.5、5.6.6条,游泳池通过平衡池、均衡池补充水管控制阀门的出水口应高于池内溢流水位0.10m。

什么场合出现0.15m的间距或高度要求?

1)第3.2.12条,生活饮用水箱进水管最低点高出溢流边缘最大可不大于0.15m;修正:

3.2.4B生活饮用水水池(箱)进水管口的最低点高出溢流边缘的空气间隙应等于进水管管径,但最小不应小于25mm,最大可不大于0.15m。

3.2.4C从生活饮用水管网向消防等其他用水的贮水池(箱)补水时,其进水管口最低点高出溢流边缘的空气间隙不应小于0.15m。

2)第3.5.15条,建筑物内埋地给水管与排水管交叉埋设最小净距不应小于0.15m;

3)中规第8.1.4条,建筑中水管道与给水管、排水管交叉埋设时,其最小间距不应小于0.15m;

4)塑规第3.5.3条,室外给水管道管顶最小覆土深度不得小于冰冻线以下0.15m;

5)第4.3.2条,小区生活污水管道埋设深度不得高于冰冻线以上0.15m;6)第4.3.14条,饮料用贮水箱的间接排水口最小空气间隙不得小于0.15m;

7)第4.5.13条,排水横管起点清扫口与其端部相垂直墙面的距离不得小于0.15m;修正:

第4.5.13条,排水横管起点清扫口与其端部相垂直墙面的距离不得小于0.20m;

8)第4.5.14条,立管上设检查口,应高于该层卫生器具边缘0.15m;

9)第4.6.9条,器具通气管、环形通气管、专用通气管、H管与通气立管的连接点应设在卫生器具上边缘以上不小于0.15m处与通气立管连接;

10)游规第13.1.1条,浸脚消毒池的消毒液有效水深不得小于0.15m。

什么场合出现0.20m的间距或高度要求?

1)第3.5.13条,塑料给水管距燃气热水器边缘不宜小于0.20m;

2)塑规第2.1.10条,塑料给水管距供暖管道的净距不得小于0.20m;

3)第3.8.15条,泵房内管道外底距地面或管沟底面距离,当DN≤150mm时,不应小于0.20m;

4)第4.8.3条,降温池有压高温污水如无两次蒸发时,管口宜插入水中深度0.20m以上;5)第5.4.16条,水加热器上部附件的最高点至建筑结构最低点的净距不得小于0.20m。

什么场合出现0.25m的间距或高度要求?

1)第3.8.15条,泵房内管道管外底距地面或管沟底面距离,当DN≥200mm时, 不应小于0.25m。

什么场合出现0.30m的间距或高度要求? 1)第3.2.12条注,当生活饮用水贮水池的最高水位比建筑物给水引入管管底低0.30m时,其进水管无须高出溢流边缘;2)第3.5.3条,敷设在室外综合管廊(沟)内,给水管与各种管道之间净距不宜小于0.30m;

3)第3.8.7条,多台水泵吸水总管的在池中的引水管应设向下的喇叭口,喇叭口低于水池最低水位不宜小于0.30m;

4)第3.3.8条,自吸式水泵计算允许安装高度时,应有不小于0.30m的安全余量;5)第4.3.2条,生活污水接户管覆土深度不宜小于0.30m;

6)第4.3.18条,当排水管道连接井处跌落差大于0.3m时,不受偏转角限制;7)第4.6.10条,通气管高出屋面不得小于0.30m;

8)第4.6.15条,当地最冷月平均气温在-13℃以下地区,应在室内平顶或吊顶以下0.3m处,将伸顶通气管放大一级;

9)排规第4.1.14条,管径大于或等于110mm的横支管与暗设立管相连时,墙体贯穿部位应设置阻火圈或长度不小于0.3m 的防火套管。

什么场合出现0.40m的间距或高度要求?

1)第3.5.13条,明设的塑料给水立管距灶台边缘不得小于0.40m;2)第4.3.3条,塑料排水立管距家用灶台边,净距不得小于0.40m;3)第4.5.3条,排水管起点设置堵头代替清扫口时,堵头与墙面应有不小于0.40m的距离。

什么场合出现0.50m的间距或高度要求? 1)第3.5.15条,建筑物内生活给水管与排水管埋地平行敷设的最小净距不应小于0.50m;

2)中规第8.1.14条,建筑中水管道与生活给水管、排水管埋地平行敷设的最小净距不应小于0.50m;

3)第3.5.10条,给水立管离大便、小便槽端部不得小于0.50m;4)第3.8.6条,自灌式水泵吸水喇叭口低于水池最低水位0.50m;5)第5.6.5条,下行上给式热水系统循环管道的回水立管可在最高配水点以下0.50m处与配水主管连接;

6)排规第3.1.21条,在最冷月平均气温低于-13℃的地区,立管尚应在最高层离顶棚0.50m处设置检查口;

7)排规第4.1.14条,立管管径大于或等于110mm且明设时,在楼板处设置长度不小于0.50m的阻火套管;

8)排规第4.1.14条,横干管穿越防火分区隔墙时,管道穿越墙体的两侧应设置阻火圈或长

度不小于0.50m的防火套管。

什么场合出现0.60m的间距或高度要求?

1)第3.5.19条,进人的管道井,维修人员的工作通道净宽度不宜小于0.60m;

2)第3.7.3条,水池(箱)装有管道的侧面,其管道外壁与建筑本体墙面之间通道宽度不宜小于0.60m;

3)第4.3.12条,横支管接入横干管竖直转向管段时,连接点应距转向处以下不得小于0.60m;

4)第4.6.10条,在通气管口周围4m以内有门窗时,通气管口应高出窗顶0.60m,或引向无门窗一侧;

5)第4.8.2条,隔油池出水管管底至池底的深度不得小于0.60m;6)游规第11.4.3条,几童游泳池水深应为0.60m。

什么场合出现0.70m的间距或高度要求?

1)第3.5.3条,室外给水管道在车行道下覆土深度不宜小于0.70m;

2)第4.3.2条,小区干道和小区组团道路下的排水管道覆土深度不宜小于0.70m;3)第3.7.3条,水池(箱)外壁无管道的侧面与墙面之净距不宜小于0.70m;

4)第3.8.16条,泵房检修场地尺寸宜按水泵或电机外形尺寸四周有不小于0.70m通道确定;

5)第5.4.16条,容积式、导流型容积式、半容积式水加热器的一侧应有净距不小于0.70m的通道;

6)游规第16.2.1条,游泳池过滤器与墙面之净距不宜小于0.70m。

什么场合出现0.80m的间距或高度要求?

1)第3.7.3条,水池(箱)的顶板至上面建筑本体板底的净空不小于0.80m;

2)第3.7.5条,高位水箱的箱底与地面板净距,当有管道敷设时不宜小于0.80m;

3)第5.4.17条,热水机组最上部部件(大烟囱除外)至机房顶板梁底净距不宜小于0.80m;4)游规第16.2.1条,游泳池过滤器与过滤器之间净距不宜小于0.80m;

5)游规第16.2.1条,游泳池过滤器顶端建筑结构最低点净距不得小于0.80m。

什么场合出现1.0m的间距或高度要求?

1)第3.7.3条,生活饮用水水池(箱)安装管道的侧面与建筑本体结构墙面之净距不宜小于

1.0m;

2)第3.9.26条,成人戏水池的水深宜为1.0m;3)第3.10.5条,冷却塔检修通道不宜小于1.0m;

4)第4.5.14条,排水立管上设置检查口,应在地(楼)面以上1.0m;

5)第4.9.24条,压力流屋面雨水排水悬吊管与雨水斗出口的高差应大于1.0m;6)第5.4.17条,热水机组两侧通道宽度应为机组宽度,且不应小于1.0m。

下列压力值适合哪些部位?

0.01MPa住宅入户管上水表水头损失值管道过滤器局部水头损失值

0.03MPa建筑物或小区引入管上水表只通过生活用水工况下的水头损失值使用净水水咀最低工作压力为0.03MPa

0.02~ 0.05 MPa游泳池循环水进入水池流出水头

0.05MPa建筑物或小区引入管上水表通过消防用水工况下的水头损失 0.025~ 0.04 MPa倒流防止器水头损失值

0.06MPa游泳池压力过滤器滤料为石英砂无烟煤和沸石时,水头损失不超过

0.06MPa

0.10MPa居住小区生活与消防合用管道应按生活用水流量叠加区内一次火灾的最大消防流量校核管道末梢室外消火栓从地面算起的水压,不得低与0.10MPa 绝对压力为工作压力值加0.10MPa

0.15MPa雨水压水流排水塑料管抗环变形外压力应大于0.15MPa

0.30MPa可调式减压阀的阀前与阀后,要求环境安静的场所不应大于0.30MPa 0.35MPa水压大于0.35MPa入户管(或配水槽管),宜设减压或调压设施高层建筑饮用净水各分区最低配水点的静水压不宜大于0.35MPa 0.40MPa可调式减压阀阀前与阀后的最大压差不应大于0.40MPa

0.45 Mpa分区最低卫生器具配水点静水压不宜大于0.45MPa高层建筑饮用净水各分区配水点静水压不得大于0.45MPa

0.55 Mpa分区最低卫生器具配水点静水压,特殊情况下不宜大于0.55MPa气压水罐内最高工作压力,不得使管网最大水压处配水点的水压大于0.55MPa

0.60MPa卫生器具给水配件承受的最大工作压力,不得大于0.60MPa 压力过滤器罐体承受的压力不宜小于0.6MPa

0.90MPa配水件的试验压力,一般按其工作压力的1.5倍计,0.6MPa×1.5=0.9MPa

1.0MPa人防防爆阀门的额定工作压力不小于1.0MPa

下列百分比压力值适合哪些部位?

1%~2%建筑物空调、冷冻设备的补水量,一般按冷却水循环水量的1% ~2%确定

3%~5%热水配水管道的热损失,一般采用设计小时耗热量的3% ~5%确定 10%~15%居民小区管网漏失水量和未预见水量之和可按最高日用水量的10% ~15%

15%直流式给水系统或直流净化给水系统的游泳池和水上游乐池每小时补充水量不得小于池水容积15%

15%~20%居住小区加压泵站贮水池中生活用水调节量,资料不足时,可按最高日用水量15% ~20%

20%游泳池的水面、池底、池壁、管道和设备等传热损失,应按游泳池水表面蒸发损失热量的20%确定

20%~25%建筑物内生活用水贮水池有效容积,资料不足时,宜按最高日用水量的20% ~25%确定

游泳池循环水量部分加热时,被加热的循环水量不少于全部循环水量的20% ~25%

25%~35%连续运行时,中水贮存池(箱)的调节容积可按中水日用水量的25% ~

35%

35%~50%连续运行时,中水调节池(箱)的调节容积可按日处理水量的35% ~50%

由水泵联动提升进水的水箱生活用水调节容积不宜小于最大时用水量的50%

50%采用水泵—水箱联合供水时,供水箱的调节容积不得小于中水系统最大小时用水量的50%

热水供应的水加热器一台检修时,其余各台的总供热能力不得小于设计小时耗热量的50%

70%居住小区环状给水管网与市政给水管的连接管不宜小于两条,当其中一条发生故障时,其余的连接管应能通过不小于70%的流量 70%~100%

住宅、旅馆、医院、疗养院病房、卫生间内浴盆或淋浴器可按70% ~ 100 %计,其它器具不计

75%中水的原水收集率不应低于回收排水项目的给水量的75%

80%~90%比例减压阀的水头损失,阀后的动水压宜按阀后静水压的80% ~

90%

85%~95%居民小区生活排水系统,排水定额是其相应的生活给水系统用水定额的85% ~95%

100%由城市给水管网夜间直接进水的高位水箱的生活用水调节容积为100%最高日用水量

工业企业生活间、公共浴室、学校、剧院、体育场(馆)等浴室内的淋浴器和洗脸盆均按100%计

上一篇:无邪教先进社区申报材料下一篇:吉他扫弦的学习及练习方法