Oracle 11g:备份与恢复的设计理念(上)

日期: 2009-05-26 作者:John Watson翻译:冯昀晖 来源:TechTarget中国 英文

本文节选自John Watson所著的《OCA认证Administration I考试指南》(该书由McGraw-Hill公司Oracle出版社2008年出版,版权所有。)第十五章。点击此处下载该章完整内容。   可能数据库管理员最重要的工作内容是确保数据库不丢失数据。

Redo和undo机制保证了无论DBA(Database Administrator,数据库管理员)做了什么,或没做什么,都不可能破坏数据库,(当然,我们假定没有物理损坏)。在你读完Instance Recovery(实例恢复)这章的这部分内容后,你就可以证实这一点。当然,如果DBA不事先采取适当的安全措施,Oracle数据库也……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

本文节选自John Watson所著的《OCA认证Administration I考试指南》(该书由McGraw-Hill公司Oracle出版社2008年出版,版权所有。)第十五章。点击此处下载该章完整内容。

  可能数据库管理员最重要的工作内容是确保数据库不丢失数据。Redo和undo机制保证了无论DBA(Database Administrator,数据库管理员)做了什么,或没做什么,都不可能破坏数据库,(当然,我们假定没有物理损坏)。在你读完Instance Recovery(实例恢复)这章的这部分内容后,你就可以证实这一点。当然,如果DBA不事先采取适当的安全措施,Oracle数据库也是可能丢失数据的。

  在Oracle 9i以上的版本中,Oracle数据库可以被适当配置,数据库决不会丢失哪怕一行已提交的数据。我们也可以把它配置为百分之百的可用。这种理想的配置需要使用Data Guard(Oracle为确保企业数据高可用性,数据保护以及灾难恢复开发的工具)和RAC(Real Application Cluster,真正应用集群),RAC可由Oracle Streams(Oracle提供的一体化信息共享功能)替代。单实例并且非分布式环境的数据库做不到这样的程度,但差距不大。

  本章详细阐述在Oracle备份和恢复机制背后的设计理念:无论你的组织需要什么级别的数据安全性和可用性级别,都可以在开放结构里配置。接下来两章的内容包括备份,修复和恢复的实践操作。但是,一定要知道,这只是简单的处理方式;OCP考试对备份和恢复有更多细节要求。而且即使通过了考试,也并不表示绝对掌握了这部分知识。这个领域的技能要求你不断学习,研究,最重要的是不断实践。

  认识Oracle数据库可能出现的失败类型:

  语句失败

  单独的SQL语句执行失败有很多种原因,DBA并不需要对所有这些出错原因负责。但是即便如此,DBA也必须有处理这些错误的准备。最好的处理方式是自动处理。无论SQL语句何时失败,负责执行语句的服务器会检测到问题,然后回滚该语句。一条语句可能更改很多行,出现失败时可能其中一部分更新已经执行通过了,语句失败前已更新的所有行会通过undo功能把他们的变更回退。这些工作都是自动完成的。如果该SQL语句是一个事务中多个SQL语句的一部分,那么所有成功的语句会保持原封不动,但是并不提交。理想情况下,程序员会在代码中包含异常处理段,在异常处理代码段中捕获和管理所有可能出现的问题。但总是会有一些错误不能被预置的错误处理机制覆盖到。

  SQL语句失败的常见原因之一是无效的数据,比如格式不符合要求或违反约束限制。写的好的代码会包含特殊处理以避免格式问题,比如试图给数值类型变量插入字符数据。当对从第三方系统中来的数据执行批量插入任务时,这种情况常常出现。Oracle本身会尝试通过自动类型转换来解决格式问题,但这种做法效果不是太好,我们不能依赖Oracle的这一机制而忽略这类问题。违反约束限制的问题也会被检测到,但Oracle没办法解决这类问题。显然,由无效数据引起的问题不在DBA的职责范围内,但是你必须做好准备与用户一起验证和纠正这些数据,与程序员一起想办法尽量把对问题的处理自动化,进而解决这些问题。

  第二种与DBA无关的语句类错误是应用程序中的逻辑错误。程序员写的代码可能在某些情况下在数据库中执行良好。本书第十章中描述了一个完美的关于死锁的例子:代码运行完全没有问题,除非在运气不好时,两个数据库连接在同一刻时间对同一数据行做相同的操作。死锁不是数据库错误,它是由程序员编写的代码引起的,在特定的情况下才会出现。

相关推荐

  • DBA在使用SQL语句时需要注意的问题

    Michael McLaughlin是Oracle 11g和MySQL 5.6开发者指南的作者,他在书中为Oracle数据库开发者提供了一些建议与帮助。

  • Oracle数据库不同版本的硬件需求

    每个企业的IT环境都是不同的,这些环境中可能会包含虚拟服务器、各种网络操作系统、基于云计算的服务、SAN等等,根据应用场景选择硬件是基本的准则。

  • Oracle 11g SQL性能分析器技术指南

    当今信息时代要求企业的IT系统能够始终保证系统的性能并且提供更高的服务质量,我们的IT系统经常要面对应用程序升级、硬件更新、数据库升级、对象结构变更等导致SQL性能下降的问题。

  • Oracle 11g SecureFile技术详解手册

    SecureFile不仅是新一代 LOB,它们还为 LOB 带来了更多的价值,尤其是以前只能在文件系统领域中获得的特性。