Oracle Database 11g数据库管理艺术
Ch1, 2
第一章 Oracle DBA的世界
有 |
许多类型的Oracle数据库,也有许多类型的Oracle DBA(数据库管理员)。本章介绍Oracle DBA的任务以及成为一名成功的Oracle DBA所需要的基本训练。我们将介绍普通DBA需要完成的日常任务。如果你是这个领域的新手,这将使你对DBA日常需要做些什么有个基本概念。我们还介绍作为一名Oracle DBA如何提高技能以及履行职责,保持数据库最佳的方法。本章最后面还提供了一个有助于你成为一名顶尖DBA的资源和组织的列表
1.1 Oracle DBA的任务
DBA的主要职责是让组织机构的数据可供最终用户和决策者使用。DBA的所有其他任务都以此为目标,DBA日常所做的任何事情几乎都是围绕这个目标进行的。不能访问数据,许多机构和组织就不能履行其职能。
注解 想象一下,如果像亚马逊这样的公司不能访问其客户数据,即使是很短的一段时间,所带来的混乱也是不堪设想的。整个公司将不得不停止运作,至少要损失数千份订单。作为一名DBA,其工作就是要确保对自己单位的数据的可靠访问,而且还要负责阻止对数据的未授权访问。思考一下基于公众人物数据的重要机构,如果出现重大的数据泄露事故,会带来怎样的后果。
这并不是说数据的可用性是DBA唯一需要担心的事情。DBA还要负责数据的如下方面,它们都是使数据对用户进一步可用的关键。
安全性:保证数据安全以及对数据的访问安全。
备份:保证数据库在人为或系统故障情况下可复原。
性能:保证数据库及子系统性能最优。
设计:保证数据库的设计满足组织机构的需求。
实现:保证新数据库系统及应用程序的正确实现。
在一个较小的组织机构中,DBA可能要处理所有IT问题,包括数据库。而在一个大型机构中,可能有许多DBA,各自负责系统的一个特定方面。
作为Oracle DBA所要完成的这些任务可归为以下3类:
安全性;
系统管理;
数据库设计。
下面各节详细介绍这些任务,给出了DBA要达到基本要求所应该考虑的问题。虽然每节中的这些内容可能很长,看起来有点困难,但如果遵循某些指导原则,这些任务实际也不难。应该进行适当的规划和测试,并且使多数日常任务自动化,可以把劳动强度降到最低。这样,其余的日常工作就会变得令人愉快了,比方说性能调优等。
1.1.1 DBA的安全任务
DBA会涉及系统安全(主要指数据库及数据的安全)的不同方面。在创建一个新Oracle系统
时,可能同时也会带来几个安全漏洞。在将数据库投入实际运行环境前,需要知道如何堵上这些安全漏洞。介绍用户管理的第12章给出了标准的Oracle安全准则以及其他与Oracle安全有关的更为完整的介绍。
1. 保护数据库
对于Oracle DBA来说,没有什么任务比保护数据库的安全更基本和更关键了。Oracle DBA承担着信息部门交给他的保护组织机构数据安全的重任,包括防止数据库的未授权使用和访问。DBA有几种保证数据库安全的手段,而且基于公司的安全方针,DBA需要维护数据库的安全策略(如果没有安全策略,则要负责建立)。更复杂的问题是,准许用户访问数据库后,对用户数据库操作的各种授权。我们将在第12章中讨论这个问题。
注解 有的组织机构没有安全策略,特别是小公司更是如此。在此情形下,通常由DBA提出安全策略,然后在数据库中实施。
2. 创建和管理用户
每个数据库都有用户,基于适当人员的请求来创建用户是DBA的工作。DBA需要指导用户使
用数据库,并通过合适的授权方案、角和权限来保证数据库的安全。当然,在用户由于密码过期及有关问题不能登录数据库时,也需要DBA解决。监控各个用户的资源使用并提醒大量使用资源的用户也是DBA的职责。
1.1.2 DBA的系统管理任务
DBA的另一主要任务是数据库及其子系统的日常管理。这种日常管理并不仅仅局限于数据库本身。DBA需要知道系统如何作为一个整体运行,需要监控承载数据库的服务器的性能,还需要监控连接数据库的网络的性能。以下几节介绍了Oracle DBA管理系统的各个方面。
1. 故障排除
Oracle DBA负责的主要工作之一是排除数据库的故障。故障排除是一个包罗万象的词,它可能涉及以下几节所讨论的很多工作。知道如何从Oracle支持人员处获得适当的帮助以及如何利用Oracle的资源快速解决问题是故障排除的两个重要方面。
2. 性能调优
性能调优是一个普遍存在的问题。它是设计阶段、实现阶段和测试阶段的一个组成部分。事实上,性能调优是一个需要Oracle DBA不断关注的任务。DBA可能需要进行数据库调优或应用调优,或者两者都需要调优,这取决于组织机构的设置。一般来说,DBA进行数据库调优,并且协助应用程序开发人员在应用程序调优测试和实现阶段完成。
一个使用中的数据库的性能需求是不断变化的,DBA需要观察合适的指标并不间断地监控数据库的性能。例如,在迁移到较新的Oracle数据库版本后,我发现有几个大的批处理程序未在规定的时间内完成。在多次失败后,我认识到这是由于某些代码使用了基于成本的优化程序提示,而这些提示在新Oracle版本下不再受到支持。后来,我只简单地调整了这些提示,结果就极大地改善了程序的性能。这说明:在切换到新Oracle版本前,应该保证在新版本中测试过所有代码。
可以说,所有数据库调优都可以分为两类,即主动调优和被动调优。顾名思义,主动调优表示DBA细心监控必要的性能指标,阻止可能问题的出现。众所周知,预防是最好的措施。因此主动调优的效果总是超过被动调优的效果。不过,大多数负责产品数据库的Oracle DBA不能做到主动调优,他们总是忙于应付数据库性能低下或类似的问题。DBA在日常工作中两种数据库调优都可能会遇到。
3. 监控系统
在数据库投入实际运行之后,DBA就应该监控系统以保证不中断服务。监控系统涉及如下任务:
监控数据库空间,保证它对于系统足够使用;
检查以保证批作业按预期结束;
监控每天的日志文件,查未授权的登录企图(DBA需要密切注意的东西)
4. 减少停机时间
通过消除停机(至少是使停机时间最小化)提供不间断服务是评判DBA工作好坏的一个重要标准。当然,如果停机是由磁盘故障导致,公司的服务等级协议(SLA),如果有的话,会决定更换磁盘的速度。DBA不一定能控制SLA提供的最大时间。不过, DBA应该积极主动地防止可以避免的停机(例如由于某个进程耗尽空间而导致的停机)。
如何连接oracle数据库5. 估计需求
只有DBA能估计一个新项目的操作系统、磁盘和内存需求。DBA负责估计所管理的数据库的增长以及后续要增加资源的需求。虽然有些硬件设备(如每台机器的CPU数目、UNIX服务器的类型等)的需求是由系统管理员和经理人独自提出的,但DBA通过提供数据库需求的良好估计也可以给出帮助。
除了估计最初的需求外,DBA还负责对应用程序的未来增长以及可能的变化进行规划。这就是所谓的容量规划,DBA的估计将作为部门经理提出申请的基础。
6. 建立备份和恢复策略
恰当的备份可以防止丢失组织机构宝贵业务数据这样的惨剧发生。Oracle DBA需要制定合适的备份策略,并进行备份测试。DBA还需要制定恢复计划,完成此项工作的最好方法是模拟几种数据丢失的情况。许多公司极不重视备份与恢复计划的恰当测试,尽管这对公司很重要。
丢失业务数据不仅导致直接损失金钱,而且最终还会失去客户的信任。意外的数据库停机反映公司的技术能力不强、管理无方。
如果灾祸或技术故障使数据库不能正常运行,DBA可以利用备份的副本有效地恢复数据库。DBA负责为组织机构制定、实施、测试可靠的备份与恢复策略。事实上,没有任何工作比在紧急情况下成功快速地恢复公司的数据库更重要了。我曾经看到有的人由于一次与备份有关或与恢复有关的紧急事件而获得职位或丢失职位,紧急事件对Oracle DBA的勇气是一种考验,其他的事情都做不到这一点。
在灾难面前,有经验的DBA相信自己有必备的技能,能做到从容应对。这种自信源自多年的勤奋学习、源自对完成紧急任务(如被损坏数据库的恢复和备份)所需理论和操作命令的多年实践。
7. 装载数据
在创建了数据库对象、模式和用户以后,接下来需要装载数据。数据一般来自旧系统,有时来自某个数据仓库。如果数据装载需要定期进行,DBA应该设计、测试和实现合适的装载程序。
8. 变更管理
每个应用程序都会随时间推移而改进功能、修复bug。在开发、测试和实现这样一个循环往复的过程中,DBA起着重要的作用。变更管理完全是一个迁移新代码的过程,Oracle DBA需要了解发生在自己组织机构中的这个过程。
除了更新应用代码外,Oracle DBA还负责确保评估和安装数据库软件的所有更新。这些所谓的软件补丁一般可通过Oracle的MetaLink服务得到。最新的Oracle企业管理器能够直接连接到MetaLink下载应用软件补丁。
在Oracle Database 11g中,可以使用两个新的更改管理特性Database Replay和SQL Performance Analyzer,预先出系统更改,包括数据库或服务器的升级,对SQL和数据库性能的影响。我们将在第20章讨论这两个重要的特性。
1.1.3 DBA的数据库设计任务
许多Oracle DBA至少要花费一些时间帮助设计新的数据库。DBA的任务可包括帮助建立实体—关系图,提出相关性和备选主键。事实上,让DBA积极参与新数据库的设计会改善数据库的性能。众所周知,数据库设计不良将会妨碍对其性能的调整。
1. 数据库设计
虽然在考虑DBA的职责时,设计数据库可能不是首先想到的事情,但设计问题(不管是初始设计还是设计更改)仍是Oracle DBA工作的一个基本组成部分。管理员,特别是在数据库的逻辑设计方面很熟练的管理员,是设计和建立新数据库的项目组的关键成员。优秀的DBA能保证在设计过程中做出好的选择。
2. 安装和升级软件
Oracle DBA在评估替代产品的特性中起着重要的作用。大多数组织机构中,DBA是安装Oracle数据库服务器软件的人员,UNIX系统管理员也可能完成部分安装工作。在实际安装前,DBA负责列出所有的内存和磁盘需求,以便Oracle软件、数据库以及系统本身能很好地运行。如果DBA希望系统管理员重新配置UNIX系统内核,使它能支持Oracle安装,则DBA要负责提供必要的信息。除了安装Oracle数据库服务器软件外,还要求DBA安装某些中间件,如客户机上的Oracle Application Server和Oracle客户机软件等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论