大型EAI项目中的ORACLE 数据库管理(ZT)

数据库在大型EAI(企业应用集成)项目中扮演着至关重要的角色。目前许多企业都迫切需要将其自身传统的管理与运作模式转化为先进、高效的信息化管理与运作模式。在实施企业信息化的过程中,怎样将该企业原有大量数据有机的结合起来以供应用软件使用是一件十分重要的事情。不夸张的说,数据库是项目实施成败的决定性因素之一,维护好数据库、对其进行有效的优化使其在项目中充分发挥其作用正是我需要做的事情。EAI以下我们以ORACLE8.1.7为例介绍一下大型EAI项目中的数据库管理问题。

维护数据库

一般来说,数据库的维护任务是由专职的DBA(数据库管理员)来担当,如果人员紧张也可以由有数据库经验的开发人员来兼职这项工作。数据库管理员的职责包括以下几点:

1. 在项目初期参加需求分析工作,分析企业的数据情况;

2. 协同系统设计人员做好数据库的设计工作;

3. 维护使用数据库用户的权限等,同是保证数据库重数据及程序的一致性;

4. 定期备份数据库;

5. 优化数据库各项参数,使数据库处于最优的运行状态;

1. 管理用户

在数据库的维护工作中管理用户是一件很重要的事情,做好用户·的管理不仅可以保证数据库的安全性而且可以保证数据库在项目实·施工程中和今后系统运行中数据的一致性。

数据库管理的工作是由专职的DBA(数据库管理员)来负责的。由于项目的规模比较大,参与项目的角色自然会比较多,但一般可划分为几个大角色,即开发角色、测试角色、浏览角色。开发角色是指项目的程序开发人员,他们每人负责开发一个或多个模块,需要对数据库中和本模块有关的数据进行添加、修改、删除,同时也会根据其需要在数据库中建立相应的trigger、procedure、package等,所以要给其分配connect和resource系统角色,必要时可以给其分配select_catalog_role角色,并根据每个人的需要分配对trigger、procedure、package等操作的权限,至于对象权限一定要将模块相关的表的_delete、_update、_insert权限赋予相关的开发人员;测试角色是指项目的测试人员,他们每人负责的整个系统的一个或多个模块进行各个级别的测试,需要对数据库中和本模块有关的数据进行添加、修改、删除,一般情况下不需要对trigger、procedure、package的操作权限,至于对象权限可以根据需求要将模块相关的表的_delete、_update、_insert权限赋予相关的测试人员;浏览角色是指项目中除开发角色、测试角色的其他角色,例如:项目经理、需求分析人员、设计人员等,他们需要经常查看数据库中的数据及程序以便了解项目的情况和控制项目的进度,可以赋予他们对数据和程序包的查看权限。

在权限的维护方面一定要慎重,应该在项目进展的不同阶段及时清理过期的权限保证数据库用户的准确性和一致性。

2 . 定期备份数据库

Oracle数据库是一种大型关系型的数据库,可以存贮达到存贮TB的数据,保证这些数据的安全尤其至关重要的,我们一直采用Oracle作为我们项目的数据库系统,在这里我们介绍一下Oracle数据库的备份方法。Oracle的内核提供数据库的备份和恢复机制,SQL*DBA按表空间进行数据的备份和恢复。Oracle提供两种方式:备份恢复和向前滚动,保证意外故障恢复数据库的一致性和完整性。

1. 份恢复方式

对数据库的某个一致状态建立副本,并储存在介质上脱机保存,以此作为数据库恢复的基础。现以Oracle实用程序Export/Import来介绍备份恢复方式。

Export/Import是Oracle提供的两个互补性程序,即卸载和装载。它们既完成数据库与操作系统文件的互为转载,同时可以有效地回收数据库的碎片,提供不同版本间Oracle 数据传送的手段,进行不同用户间的数据传送。

Export数据卸载,将数据从Oracle写到指定的操作系统文件进行备份。卸载的对象、内容与数量有三种模式:TABLE MODE(表模式)、USER MODE(用户模式)、FULL DATABASEM ODE(所有数据库模式)。使用方式既可用交互方式,也可采用命令行方式,以关键字=值 将所需信息在命令行中逐一描述来进行卸载。Export要求用户具有CONNECT或DBA特权。

Import与Export互逆,将操作系统文件重新装载至Oracle数据库中,使用方式如Expo rt。使用者要求具有CONNECT和RESOURCE特权,且可选择部分或全部装入。

Export/Import非常方便,系统开销小,它的限制是输出的操作系统文件采用专门的压缩方式存放,仅提供给Import使用。

也可采用SQL*PLUS和SQL*LOADER实用工具进行备份。使用SQL*PLUS的SPOOL命令通过脱机定向输出,使用PLUS格式化结果,形成指定格式的ASCII文件,需要时可用SQL*LOADER 进行加载。它的方便之处是ASCII文件可以编辑,可方便地加载至其他数据库(如FoxPro、 Sybase中)。

2. 前滚动方式

Oracle提供向前滚动方式,使建立备份后成功的事务不会丢失。恢复的基础是数据库的某个一致性状态(即方式1完成的备份恢复),恢复的依据是存档的重作记录文件。启动重作记录文件方法如下:

(1)启动Oracle;

(2)连接Oracle:CONNECT SYSTEM/PASSWORD;

(3)启动ARCHIVE LOG。

出现介质故障时,可用SQL*DBA的RECOVER命令,利用存档的重作记录文件恢复一个或多个表空间。RECOVER命令对DATABASE或TABLASPACE进行恢复。前者要求SQL*DBA START UP已被排斥方式装载且未被打开; 后者对无活跃回退段的表空间执行脱机,要求数据库已装载且被打开。

由于向前滚动方式恢复的依据是存档的重作记录文件,因而系统开销大,但恢复的是建立备份以后的成功事务,所以恢复的程度更高、更完备。

3.优化数据库

优化策略

---保证数据库能在最佳的性能状态下运行对于整个项目来说是至关重要的,在开发工作开始之前就应该考虑数据库的优化策略。优化策略一般包括服务器操作系统参数调整、数据库参数调整、网络性能调整、应用程序SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信息系统开发之前完成的。

----分析评价Oracle数据库性能主要有数据库吞吐量、数据库用户响应时间两项指标。数据库用户响应时间又可以分为系统服务时间和用户等待时间两项,即:

----数据库用户响应时间=系统服务时间+用户等待时间

----因此,获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。

----数据库性能优化包括如下几个部分:

----1. 调整数据结构的设计 这一部分是我们在开发整个系统之前要做的事情,开发人员需要考虑是否使用Oracle数据库的分区功能,对于经常访问的数据库表是否需要建立索引等等。

----2. 调整应用程序结构设计 这一部分也是我们在开发整个系统之前要做的事情。开发人员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。在这里我们选择Client/Server模式。

----3. 调整数据库SQL语句 数据库端应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了Oracle数据库的性能。 Oracle公司提供了Oracle语句优化器(Oracle Optimizer)和行锁管理器(Row-Level Manager)来调整优化SQL语句,这两者都是非常好的优化工具。

----4. 调整服务器内存分配 内存分配是在信息系统运行过程中优化配置的。数据库管理员根据数据库的运行状况不仅可以调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小,而且还可以调整程序全局区(PGA区)的大小。

----5. 调整硬盘I/O 这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O 负载均衡。

----6. 调整操作系统参数 例如:运行在Unix操作系统上的 Oracle数据库,可以调整Unix数据缓冲区的大小、每个进程所能使用的内存大小等参数。

----实际上,上述数据库优化措施之间是相互联系的。Oracle 数据库性能恶化的表现基本上都是用户响应时间比较长,需要用户长时间的等待。而性能恶化的原因却是多种多样的,有时是多个因素共同造成了性能恶化的结果,这就需要数据库管理员有比较全面的计算机知识,能够敏感地察觉到影响数据库性能的主要原因所在。另外,良好的数据库管理工具对于优化数据库性能也是很重要的。

性能优化工具

---- 下面介绍几种Oracle数据库常用的数据库性能优化工具:

----1. Oracle数据库在线数据字典 Oracle在线数据字典能够反映出Oracle的动态运行情况,对于调整数据库性能是很有帮助的。

----2. 操作系统工具 例如使用Unix操作系统的Vmstat、 Iostat等命令可以查看到系统级内存和硬盘I/O的使用情况,这些工具能够帮助管理员弄清楚系统瓶颈出现在什么地方。

----3. SQL语言跟踪工具(SQL Trace Facility)

----SQL语言跟踪工具可以记录SQL语句的执行情况,管理员可以使用虚拟表来调整实例,并使用SQL语句跟踪文件调整应用程序性能。SQL语言跟踪工具将结果输出成一个操作系统的文件,管理员可以使用TKPROF工具查看这些文件。

---- 4. Oracle Enterprise Manager(OEM) 这是一个图形的用户管理界面,用户可以使用它方便地进行数据库管理而不必记住复杂的Oracle数据库管理的命令。

----5. Explain Plan——SQL语言优化命令 使用这个命令可以帮助程序员写出高效的SQL语言。

4.系统性能评估

----信息系统的类型不同,需要关注的数据库参数也是不同的。数据库管理员需要根据自己的信息系统类型来着重考虑不同的数据库参数。

----1. 在线事务处理信息系统(OLTP) 这种类型的信息系统一般需要有大量的_insert、_update操作,典型的系统包括民航机票发售系统、银行储蓄系统等。OLTP系统需要保证数据库的并发性、可靠性和最终用户的速度,这类系统使用的Oracle数据库需主要考虑以下参数:

数据库回滚段是否足够;

是否需要建立Oracle数据库索引、聚集、散列;

系统全局区(SGA)大小是否足够;

SQL语句是否高效。

----2. 数据仓库系统(Data Warehousing) 这种信息系统的主要任务是从Oracle的海量数据中进行查询,以得到数据之间的某些规律。数据库管理员需要为这种类型的Oracle数据库着重考虑下述参数:

是否采用B*索引或者Bitmap索引;

是否采用并行SQL查询以提高查询效率;

是否采用PL/SQL函数编写存储过程;

有必要的话,需要建立并行数据库以提高数据库的查询效率。

5.系统参数的调整

----1. CPU参数

---- CPU是服务器的一项重要资源,服务器良好的工作状态表现为在工作高峰时CPU的使用率高于90%。如果空闲时间CPU使用率就在90%以上,说明服务器缺乏CPU资源;如果工作高峰时CPU使用率仍然很低,则说明服务器CPU 资源还比较充足。

----使用操作命令可以看到CPU的使用情况,一般Unix操作系统的服务器,可以使用sar-u命令查看CPU的使用率;NT操作系统的服务器,可以使用NT的性能管理器来查看CPU的使用率。

----数据库管理员可以通过查看v$sysstat数据字典中的 “CPU used by this session”统计项得知Oracle数据库使用的CPU时间;查看“OS User level CPU time”统计项得知操作系统用户状态下的CPU时间;查看“OS System call CPU time” 统计项得知操作系统系统状态下的CPU时间,操作系统总的CPU时间就是用户状态和系统状态时间之和。如果Oracle数据库使用的CPU时间占操作系统总CPU时间的90%以上,就说明服务器CPU基本上被Oracle数据库使用着,这是合理的,反之,则说明服务器CPU被其他程序占用过多,Oracle数据库无法得到更多的CPU时间。

---- 2. 内存参数

----内存参数的调整主要是指Oracle数据库的系统全局区(SGA)的调整。SGA主要由3部分构成:共享池、数据缓冲区、日志缓冲区。

----共享池由两部分构成:共享SQL区和数据字典缓冲区。共享SQL区是存放用户SQL命令的区域,数据字典缓冲区则存放数据库运行的动态信息。

总结

在大型EAI项目的实施过程中,数据库的维护是一项艰巨的任务,用户权限的管理、数据库的定期备份、数据库的优化都是十分重要的环节。数据库的维护不仅需要DBA的认真负责,也需要项目所有成员的积极配合,只有这样才能保质保量的满足整个系统对数据的要求,保证项目实施成功。

http://middleware.csdn.net/page/a21326af-a868-443f-b3e0-d4338d7cfdd3

转载于:https://www.cnblogs.com/chinhr/archive/2007/09/27/908260.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机应用技术的创新

更多论文来自(‘jsj.lunwendao.com’),如需期刊投稿,可到网上进行咨询。随着科技水平的提高,计算机已经渐渐的融入到我们的生活中,并有着不可或缺的作用,给我们的生活增添了浓重而多彩的一笔。尽…

笔记本电脑频繁自动重启_笔记本电脑自动重启是什么原因

使用电脑很长一段时间就会出现各种各样的问题,但不管出了什么问题,只要电脑能打开有一种方法可以解决的问题,但有时电脑会莫名其妙的重启,电脑爱好者我们有点不知所措。尤其是办公室人员做了很长时间的工作,想要面对以…

float浮动,定位

1 浮动定位 1、普通流定位 普通流,由称为文档流 块级元素:从上到下一个一个的排列 行内元素:一行内从左到右的排列 2、浮动定位 2.1、什么是浮动定位 将元素排列在普通流之外,即脱离文档…

Visual Studio 2005中编译调试新功能

在日常的编程中,程序员经常离不开的工作之一,就是调试。当写好一段代码或程序后,在运行后总会出现这样那样的问题,比如各样的错误,程序员就必须进行调试,将这些错误排除。在最新出炉的Visual Studio 2005中…

windows7 系统优化大技巧

1. 加快win7系统启动速度首先,打开win7开始菜单在搜索程序框中输入“msconfig”命令,打开系统配置窗口后找到“引导”选项(英文系统是Boot)。win7拥有强大便捷的搜索栏,记住一些常用命令,可以让你操作起来更快捷。 点击“高级选项…

新快现类似产品_小米全新折叠屏产品曝光,预计今年还有更多折叠屏产品亮相...

虽然目前小米并未正式推出旗下的折叠屏设备,但这并不意味着小米放弃了这方面的研究。相反,近日的一些爆料显示了小米在折叠屏设备领域有着多种不同的设想和思路。上个月的相关爆料曾提到过,小米2021年有望推出外折型、内折型和翻盖式三种不同…

全虚拟化和半虚拟化的区别 cpu的ring0~ring3又是什么概念?

ring0是指CPU的运行级别,ring0是最高级别,ring1次之,ring2更次之…… 拿Linuxx86来说, 操作系统(内核)的代码运行在最高运行级别ring0上,可以使用特权指令,控制中断、修改页表、访问…

设置span的宽度

在默认的情况下,利用 css 样式对 span 进行宽度设定是无效,但有时为了某种排版的要求,需要对 span 进行宽度设定,那么如何在 html 中利用 css 样式设定 span 的宽度?思路:这看上去是个很简单的问题&#xf…

dual mysql 获取序列_MySQL JDBC客户端反序列化漏洞

标题: MySQL JDBC客户端反序列化漏洞☆ 背景介绍☆ 学习思路☆ 搭建测试环境☆ 恶意MySQL插件 1) 获取MySQL 5.7.28源码 2) 在rewrite_example基础上修改出evilreplace☆ 测试rewriter插件 1) 安装rewriter.so 2) 在服务端替换SQL查询语句 3) 卸载rewriter.so …

kali linux之edb--CrossFire缓冲区溢出

漏洞的罪恶根源------变量,数据与代码边界不清,开发人员对用户输入没做过滤,或者过滤不严 如这个脚本,写什么,显示什么,但是加上;,|,&&,后面加上系统…

SQL连接查询深度探险

测试环境:Windows XP ProfessionMySQL 5.0.45Oracle 9iDB2 UDB 9.1测试的SQL脚本如下:此脚本适合MySQL、DB2,如果要在Oracle上执行,需要做个替换BIGINTINTEGER、VARCHARVARCHAR2。CREATETABLECUSTOMERS (ID BIGINT NOTNULL,NAME V…

[Bug]Object reference not set to an instance of an object.

引言 今天在客户这儿,由一个问题导致,需求的变化,不得不修改代码,在记录日志中出现该问题。 原因 通过id查找相关信息,没有判断是否为null,集合是否有数据。 Object reference not set to an instance of a…

自锁时间电路plc_1篇文章,4幅图,了解PLC接线和控制图就是这么简单

有网友留言说看不懂plc梯形图,不知道如何将电气控制原理图转化为plc接线图,今天就系统的来看一下plc的原理和接线,再转化为plc接线图,我们需要借助一个最简单的单向过载保护的自锁控制电路。来看一下电路元器件,FR热机…

Python~字典快速上手

目录 Key的重要性 一 创建字典{} 二 字典用key查找 in(遍历)和[]用key查找 keyerror in和[]的效率对比 三 字典的插入/修改/删除(先查找) ​编辑 四 字典增删查改/遍历的效率 五 字典的遍历 for遍历可迭代对象拿到key 与创建顺序相同 keys/values/items方法 六 可…

sql 相关子查询

相关子查询3个执行步骤 1.外部查询获得一个记录,然后将该记录传递到内部查询. 2.内部查询根据传递的值执行. 3.内部查询将结果值传回外部查询,外部查询利用这些值完成处理过程.转载于:https://www.cnblogs.com/Spinoza/p/10426904.html

常用的一些javascript小技巧

常用的一些javascript小技巧 [作者:oror,from蓝色理想] 事件源对象 event.srcElement.tagName event.srcElement.type ……………………………… 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture();事件按键event.keyCode …

活动目录服务器(windows server 2008)

1、在服务器管理器中添加角色,勾选Active Directory域服务、DNS服务器进行安装2、安装好后运行dcpromo进入域服务安装向导,选择高级模式安装3、出现部署配置时,勾选新林中新建4、在命名林输入域名称(ganen5.local)5、在…

漫步者蓝牙只有一边有声音_漫步者DreamPods半个月上手体验:谈谈那些好的和不好的地方...

随着手机逐渐取消了耳机孔,越来越多的人们开始使用上了蓝牙耳机。在当今这个飞速发展的时代,蓝牙耳机蓝无疑成为了新时代的宠儿。无论是上班族还是当代大学生等年轻化群体,蓝牙耳机无疑成为了一个不错的喜好选择。但是面对市面上如此多的蓝牙…

MySQL源码包编译安装

标题:MySQL数据库实例部署时间:2019年5月2日内容:MySQL源码包进行编译,然后部署MySQL单实例1. MySQL源码包编译1.1 安装编译环境# yum install -y gcc gcc-c# yum install -y ncurses-devel.x86_64# yum install -y libaio.x86_64…

moss 部署问题

(一) 编辑PostBuildActions.bat 在编译过程中如果你把vs安装在D盘那么你必须将%programfiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin替换成D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin否则找不到gacutil.exe,无法编译成功。…