3 Tablespaces,Datafiles,and Control Files (原创)

上一篇 / 下一篇  2006-04-12 23:16:53 / 个人分类:翻译:Oracle 9i Concept

查看( 2945 ) / 评论( 2 )

TAG:

我的猪窝-bigboar bigboar 发布于2006-04-12 23:16:53
读书:Oracle 9i Database Concepts:第三章:Tablespaces,Datafiles,and Control Files
希望:
1)请不要跟帖灌水,跟贴只允许就本贴涉及的技术内容讨论,否则请保持沉默。
2)翻译过程中,因个人水平有限,错误肯定是有的,一旦有兄弟发现错误或疑问,务必请跟贴帮我纠正,大家学习,共同进步。
3)翻译过程中,我自己对很多问题有疑问,也会一起帖出来,有知道的兄弟,请务必帮助我一把,把你知道的跟帖解释出来.

谢谢!

================================================
本章原文地址:
http://www.oracle.com.cn/onlined ... 4/c04space.htm#1945


3 第三章:Tablespaces,Datafiles,and Control Files

本章描述了tablespace,tablespace是任何Oracle数据库主要的逻辑数据库结构,以及描述了对应于每个tablespace的物理datafile。
本章包括:
Introduction to Tablespaces, Datafiles, and Control Files
Tablespaces Overview
Datafiles Overview
Control Files Overview


###################################################
#
#   3.1 Introduction to Tablespaces, Datafiles, and Control Files
#
###################################################

Oracle逻辑地在tablespaces里存储data以及物理地在这个tablespace对应的datafile里存储data,如下图:



Databases,tablespaces,和datafiles虽然关系非常密切,但他们是有重要的区别的:
      •一个Oracle数据库包含的一个或多个逻辑存储单位叫tablespaces,这些tablespaces存储了数据库的所有data。
      •一个Oracle数据库里的每个tablespace包含的一个或多个文件叫datafiles, 这些datafile是Oracle所运行的操作系统的物理结构。
      • 数据库的data全部存储在数据库里组成每个tablespace的datafiles里,比如,最简单的Oracle数据库可以只有一个tablespace及一个datafile,另一个数据库可以有三个tablespace,每个tablespace包含两个datafile(一共6个datafile)。


3.1.1 Oracle-Managed Files
Oracle-managed files消除了DBA直接去管理组成Oracle数据库的操作系统文件的必要。(Oracle-managed files eliminate the need for you, the DBA, to directly manage the operating system files comprising an Oracle database. You specify operations in terms of database objects rather than filenames. 找不到翻译的感觉,谁来翻译了。。。),在需要对下列数据库结构执行create和delete时Oracle使用内部标准文件系统接口:
   tablespaces
   online redo log files
   control files

通过初始化参数,你可以指定某个文件系统目录来给一种详细的文件类型使用,然后Oracle能保证一个唯一的文件,一个Oracle管理的文件,可以被create和delte。(Through initialization parameters, you specify the file system directory to be used for a particular type of file. Oracle then ensures that a unique file, an Oracle-managed file, is created and deleted when no longer needed.最后这个when no longer needed应该怎么理解?)

参考:
Oracle9i Database Administrator's Guide

3.1.2 Allocate More Space for a Database
tablespace的大小是组成这个tablespace的datafile的大小之和,database的大小是组成这个database的所有tablespace的大小之和。
可以通过三种途径扩大database的大小:
      给tablespace加一个datafile
      增加一个新的tablespace
      增大datafile的大小

当你增加一个datafile到一个已经存在的tablespace时,你就为这个对应的tablespace增加了一定数量的磁盘空间分配。如下图

Enlarging a Database by Adding a Datafile to a Tablespace




第二种选择,你可以创建一个新的表空间(这个表空间至少包含一个datafile)来增加数据库的大小,如下图:
Enlarging a Database by Adding a New Tablespace




增大database的第三种选择是改变datafile的大小,或让已经存在的表空间的datafile在需要更多空间的时候可以动态的增长。你可以alter已经存在的文件或通过增加文件的动态扩展属性来达到这个目的,如下图:



See Also:
Oracle9i Database Administrator's Guide for more information about increasing the amount of space in your database
我的猪窝-bigboar bigboar 发布于2006-04-20 00:24:49
有兄弟给我发消息问为啥不接着翻译了,这两天忙着搞个东西,天天加班到很晚,胡子都长了,还好今天开始暂时解放了。
没有借口,这不是理由,今天赶工,接着翻译,只是质量开始慢慢的比较差了,都翻译完了,我们再来读一次,那时候再总结、提炼一次,去掉ORACLE的罗嗦的口水话,和文理不通的地方。



###################################################
#
#   3.2 Tablespaces Overview
#
###################################################



一个数据库被划分为一个或多个叫tablespace的逻辑存储单元,一个tablespace被划分的逻辑存储单位叫segment,segment更进一步划分为extent,extent是连续的block的集合。
(总的意思就是,从逻辑概念上来说:
由连续的block组成了extent,由extent组成了segment,由segment组成了tablespace,由tablespace组成了database,这些都是存储data的单位)

本节包含下列tablespace相关的主题:
The SYSTEM Tablespace
Undo Tablespaces
Default Temporary Tablespace
Using Multiple Tablespaces
Managing Space in Tablespaces
Multiple Block Sizes
Online and Offline Tablespaces
Read-Only Tablespaces
Temporary Tablespaces for Sort Operations
Transport of Tablespaces Between Databases

See Also:
Chapter 2, "Data Blocks, Extents, and Segments" for more information about segments and extents

3.2.1 The SYSTEM Tablespace
每个Oracle数据库都会包含一个叫SYSTEM的tablespace,在创建database时,Oracle就会自动创建这个SYSTEM表空间了。只要数据库是open状态,SYSTEM表空间就总是online的。

为了从本地管理表空间得到更多的好处,你可以创建一个本地管理的SYSTEM表空间,或者你可以把一个已经存在的字段管理的SYSTEM表空间移植为一个本地管理的格式。

在SYSTEM表空间属性为本地管理的数据库里,不能创建字段管理表空间。但是这种情况是可能的,即使用transportable功能,把一个字典管理表空间挂到本地管理的数据库里来,但这样的字典管理表空间是不能写入数据的。

注意:
   一旦表空间为本地管理,它就不能转换为字典管理了。

3.2.1.1 The Data Dictionary
SYSTEM表空间总是包含了全数据库的字典表,而且存储在datafile 1上。

3.2.1.2 PL/SQL Program Units Description
以PL/SQL程序为单位的所有数据--即PL/SQL代码及相关数据(也就是procedure,functions,packages,triggers)都是存储在SYSTEM表空间的。如果数据库包含了很多这种程序单位,那么DBA必须提供这些PL/SQL程序在SYSTEM表空间所需要的空间。

3.2.2 Undo Tablespaces
UNDO表空间是一个用来单独存储undo信息的特殊表空间,你不能在UNDO表空间里创建其他任何类型的segment(比如table或index segment)。每个数据库包含了零个或多个undo表空间。在自动undo管理模式,每个Oracle Instance被分配也仅仅只被分配一个undo表空间,undo表空间里的undo数据是通过undo segment由Oracle自动创建和维护的。

在一个事务里的第一个DML操作执行时,在当前undo表空间里,事务就被分配到一个undo segment(也就是一个事务表)。特殊情况下,如果instance没有被分配一个undo表空间,那么这个事务就会被binds到system表空间的system undo segment。

警告:
    在创建undo表空间并且让它onlie以前,不要运行任何用户的事务。

每个undo表空间包含一组undo文件,并且undo表空间是本地管理的。和其他类型的表空间一样,undo block也是成组的组成extent,并且每个extent的状态都在bitmap里记录。在任何一个时刻,一个undo extent要么分配即被一个事务表使用,要么它就是free的。

3.2.2.1 Creation of Undo Tablespaces
DBA可以使用CREATE UNDO TABLESPACE语句来单独创建undo表空间。undo表空间也可以在database创建时通过CREATE DATABASE语句创建。一组文件被分配给每个新创建的undo表空间。如同其他表空间一样,undo表空间的属性可以通过ALTER TABLESPACE来修改,并且可以通过DROP TABLESPACE语句来drop掉。

注意:
如果undo表空间正在被任何一个instance使用或包含的undo信息被需要用来做事务恢复,那么它不能被drop掉!

3.2.2.2 Assignment of Undo Tablespaces
你可以通过下面两种方法分配一个undo表空间给一个instance:
  .在instance启动时。你可以在初始化参数文件里指定一个undo表空间,或让系统自动选择一个可用的undo表空间。
  .在instance运行时。使用ALTER SYSTEM SET UNDO_TALBESPACE语句来使用一个其他的undo表空间替换当前活动的undo表空间,这种方法很少使用。

你可以使用ALTER TABLESPACE语句通过增加更多的data file到undo表空间来增加undo表空间的space。

你可以使用超过一个undo表空间,并且在他们之间切换。使用database resource manager来确定user在undo表空间里的配额(quota,即可使用的大小)。你可以为undo信息指定保留的周期。

See Also:
Oracle9i Database Administrator's Guide for detailed information about creating and managing undo tablespaces

3.2.3 Default Temporary Tablespace
如果SYSTEM表空间是本地管理表空间,你必须在创建数据库时定义(创建)一个缺省临时表空间。本地管理属性的SYSTEM表空间不能被用来做缺省临时存储。

如果SYSTEM表空间是字典管理表空间并且如果你在创建数据库时没有创建缺省临时表空间,那么SYSTEM表空间仍然用来做缺省临时存储。然而,你会在alert_${ORACLE_SID}.log文件里收到一个告警,告警会说推荐使用缺省临时表空间,并且在以后的版本里是必须的。

3.2.3.1 How to Specify a Default Temporary Tablespace
在创建数据库时,可以在CREATE DATABASE语句里使用DEFAULT TEMPORARY TABLESPACE子句来指定一个缺省临时表空间。

如果你drop了缺省临时表空间,那么SYSTEM表空间就被用来做缺省临时表空间。

注意:
    你不能使一个缺省临时表空间永久化或让它offline。

See Also:
Oracle9i SQL Reference for more information about defining and altering default temporary tablespaces

3.2.4 Using Multiple Tablespaces
一个非常小的数据库可以只需要一个SYSTEM表空间;然而,Oracle公司建议你至少创建一个额外的表空间来存储和数据字典信息分开的用户数据。这样就可以让你更灵活的执行数据库管理操作,并且减少字典对象(dictionary objects)和模式对象(schema objects)在同一个数据文件里的争用。

你可以使用多种表空间来完成下列任务:
***控制多种数据库数据的磁盘空间分配
***为数据库用户分配详细的空间使用配额(quota)
***通过让个别的表空间online或offline来控制数据(data)的可用性
***完成数据库一部分的备份和恢复操作
***跨存储设备来分配数据存储,从而提高性能

DBA可以使用表空间来完成下列操作:
***创建新的表空间
***添加数据文件到表空间
***为创建在表空间里的segment设置或修改缺省的segment存储
***可使一个表空间只读或可读写
***可使一个表空间为temporary或permanent
***drop表空间

3.2.5 Managing Space in Tablespaces
表空间使以extent为单位分配空间的,表空间可以使用两种不同的方法来跟踪他们的free/used空间:
***本地管理表空间:extent是由tablespace自己管理的
***字典管理表空间:extent是由数据字典来管理的

在你创建一个表空间时,你就要从这良种空间管理方法中选择一种。
(When you create a tablespace, you choose one of these methods of space management. You cannot alter the method at a later time.最后说以后不能改变这种方法,错的吧???字典管理表空间是可以转换为本地管理表空间的啊)

注意:
    在Oracle9i,如果你在创建表空间时没有指定extent的管理方法,那么缺省就是本地管理的。


3.2.5.1 Locally Managed Tablespaces
一个管理自己的extent的表空间(本地管理表空间),它在每个本表空间所包含的datafile里维护一个bitmap,该bitmap用来跟踪这个datafile里的block的free/used状态。每个bitmap里的bit对应了一个block或一组block。当extent被分配或为了重用而释放时,Oracle就改变bitmap的值来体现block的新状态。由于这种操作没有update数据字典表,所以这种bitmap的改变不会生成rollback信息。(除非是如空间quota信息改变等原因,才会更改数据字典表)

本地管理表空间比字典管理表空间有如下优势:
***本地管理的extent,会自动跟踪邻近的空闲空间,消除了coalesce空闲extent的需要。
***本地管理的extent,消除了递归空间管理操作。这种递归空间管理操作可能发生在字典管理表空间,由于在extent里的空间使用或释放而导致数据字典表或rollback segment的空间使用和释放的递归空间管理操作。

本地管理extent的大小可以由系统自动决定,或者可以选择,在本地管理表空间里所有extent具有相同的大小并且忽略object的存储选项。

CREATE TABLESPACE或CREATE TEMPORARY TABLESPACE语句的LOCAL子句分别指定了创建本地管理永久表空间和本地管理临时表空间。

3.2.5.2 Segment Space Management in Locally Managed Tablespaces
当使用CREATE TABLESPACE语句创建一个本地管理表空间时,SEGMENT SPACE MANAGEMENT子句指定了在一个segment里free/used空间会被怎样管理,可以选择:
   ***AUTO:
      这个关键字告诉Oracle,你想在segment里使用bitmap来管理free space。这种情况的bitmap,是一个描述了在segment里每个data block的状态的地图,对应的描述了在block里有多少可用空间可以用来inserting rows。不管一个data block里的或多或少的空间变的可用,它的新状态都会反映到bitmap里。bitmap让oracle可以更多的自动管理free space,因此,这种空间管理结构叫做自动segment-space管理。
***MANUAL :
这个关键字告诉oracle你想使用free list来管理segment里的free space。free list是有可用空间用来inserting rows的data block的lists。MANUAL是缺省设置。

See Also:
Oracle9i SQL Reference for details about SQL statements
Oracle9i Database Administrator's Guide for more information about managing SQL statements
"Determine the Number and Size of Extents"
"Temporary Tablespaces for Sort Operations" for more information about temporary tablespaces  

3.2.5.3 Dictionary Managed Tablespaces
如果是在更早的oracle版本创建数据库,那么你会使用字典管理表空间。对于使用字典管理它的extents的表空间,即字典管理表空间,当一个extent被分配或被释放以用来重新利用时,oracle会更新数据字典里相关的表,同时oracle也会存储这些每个数据字典更新操作的rollback信息。由于字典表和rollback segments也是数据库的一部分,所以它们所占用的空间也和其他所有的数据一样依赖于同样的空间管理方法。



3.2.6 Multiple Block Sizes
SYSTEM表空间的block size就是标准block size。这个block size是在数据库创建时配置的并且是有效的size。

你还可以指定另外四种block size,做为标准block size的补充。在初始化文件里,你可以为非标准block size的块配置非标准块为单位的buffer cache,即可配置另外四种subcache。subcache也可以在instance运行时进行配置。你可以创建这些以block size为block单位的tablespace,标准块大小被用在了SYSTEM表空间和其他大多数表空间。

注意:
    分区表里的所有分区都必须在同样block大小的表空间里。

multiple block size主要用在从OLTP数据库到企业数据仓库的表空间传输上,这让两个数据库不同block size的表空间传输更容易。

See Also:
"Transport of Tablespaces Between Databases"
Oracle9i Data Warehousing Guide for information about transporting tablespaces in data warehousing environments  

3.2.7 Online and Offline Tablespaces
DBA可以在数据库打开时,改变除了SYSTEM表空间以外的其他任何表空间为onlie(可访问)或offline(不可访问)在数据库OPEN时,SYSTEM表空间总是online,是因为数据字典必须总是对oracle来说是可用的。

表空间通常是online的以至里面包含的数据对数据库用户来说是可用的。然而,DBA可以为了维护或备份或恢复等原因让一个表空间为offline。

3.2.7.1 When a Tablespace Goes Offline
当一个表空间变为offline后,ORACLE不再允许任何SQL语句涉及到这个表空间包含的对象。还没有执行完语句的活动事务,在事务级它所关联的在这个offline表空间里的数据将不会受到影响,Oracle存储对应于这个没有执行完的语句rollback data到SYSTEM表空间的一个deffered rollback segment。在这个表空间online后,如果需要,oracle就会把这些rollback data应用到这个表空间里。

当一个表空间变为offline或变为onlie,都会在SYSTEM表空间的数据字典里记录下来。如果在你关闭数据库时表空间为offline,那么当你随后mount并且重新开始使用数据库时,这个表空间仍然会保持offline。

你只能在创建这个表空间的数据库把这个表空间变为online,因为是由这个数据库的SYSTEM表空间维护了关于这个表空间的必须的数据字典信息。一个offline的表空间不能进行读操作或被除了oracle以外的其他任何有效编辑。因此,offline的表空间不能传输到其他数据库。

当某些表空间错误发生时,oracle自动把表空间从online变为offline,比如,当数据库写进程DBWn在几次尝试写表空间的一个数据文件失败后,就会把这个online的表空间变为offline。如果用户尝试访问offline表空间里的表就会收到错误提示。如果是因为媒介失败导致的磁盘I/O失败而发生的问题,在你解决这个问题后你必须recover这个表空间。

See Also:
"Temporary Tablespaces for Sort Operations" for more information about transferring online tablespaces between databases
Oracle9i Database Utilities for more information about tools for data transfer


3.2.7.2 Use of Tablespaces for Special Procedures
如果你创建多个表空间来分开存储不同类型的数据,为了多方面的程序使用原因你让某些表空间offline,其他表空间保持online,那么这些对象里的信息对于使用来说,仍然是可用的。然而,当表空间被设置为offline时,一些情况还是会发生的,比如,如果两个表空间被用来分别存储table data和index data,那么下面的情况就是真的:
    *** 如果包含index data的表空间offline了,由于查询table data不需要访问index data,所以访问table data的查询操作仍然可用。
    *** 如果包含table data的表空间offline了,由于要访问table data,而表空间为offline,导致table data变的不可访问了。

如果oracle在online表空间里有足够的信息来运行一条语句,这条语句就会执行。如果这条语句需要offline表空间的数据,那么就会失败。


3.2.8 Read-Only Tablespaces
read-only表空间的主要用途是用来消除数据库里大的、静态的数据信息在备份和恢复时的需求。oracle不会更新只读表空间里的数据文件,所以只读表空间的数据文件可以放在如CD-ROMs或WORM驱动器的只读设备里。

注意:
Note:
Because you can only bring a tablespace online in the database in which it was created, read-only tablespaces are not meant to satisfy archiving or data publishing requirements.(后一句不知道怎么翻译好了)

只读表空间不能被更改,并且在它被变为读写表空间前,它不需要重复备份,即只备份一次就可以了。所以,如果你需要去recover你的数据库,你不必recover任何只读表空间,因为他们不能被修改。

See Also:
Oracle9i Database Administrator's Guide for more information about changing a tablespace to read-only or read/write mode
Oracle9i SQL Reference for more information about the ALTER TABLESPACE statement
Oracle9i Backup and Recovery Concepts for more information about recovery

[ Last edited by bigboar on 2006-4-20 at 00:27 ]
我的猪窝-bigboar bigboar 发布于2006-04-21 16:30:16
杂事太多,进度太慢了,没有借口,这不是理由




###################################################
#
#   3.3 Datafiles Overview
#
###################################################


一个数据库里的一个表空间包含一个或多个物理datafile,一个datafile只能被指定给一个数据库里的一个表空间。
Oracle通过分配指定大小的磁盘空间,并且为这个文件头的需要加载了overhead来为一个表空间创建一个datafile。在创建一个datafile时,承载这个数据库运行的操作系统会负责在把这个文件分配给oracle以前清除掉旧的信息并且重新授权认可,如果这个文件很大,这个进程会执行很长时间。在任何数据库里,第一个表空间总是SYSTEM表空间,所以在数据库创建时,任何数据库,Oracle都会自动分配第一个datafile给SYSTEM表空间

参考:
你的oracle操作系统相关文档里讲了在你的操作系统里datafile的文件头需要多少磁盘空间。


3.3.1 Datafile Contents
当一个datafile在刚创建时,虽然分配给datafile的磁盘空间已经格式化好了,但是并没有包含任何用户数据。Oracle保留这些空间来为以后要存储在这个datafile相关的表空间上的segment的data。随着表空间里的data的增长,oracle会在相关的datafile里为这个segment分配extents以得到free space来使用。

在一个表空间里的schema objects的相关数据被物理的存储在组成这个tablespace的一个或多个datafile里。注意,一个schema object并不是某个datafile,更进一步的,datafile是表空间里所有schema object的数据存储库,oracle在这个tablespace里的一个或多个datafile里为schema object分配空间来存储数据,因此,一个schema object可以跨越一个或多个datafile。除非table被条带化使用(这种情况下的data被spread到多个disk上),否则DBA和最终用户都不能控制那个datafile存储具体的那个schema object。

See Also:
Chapter 2, "Data Blocks, Extents, and Segments" for more information about use of space

3.3.2 Size of Datafiles
你可以在datafile创建有通过alter来改变datafile的大小,或你可以指定当表空间里的datafile随着表空间里的schema object扩大而动态扩大。这个功能让你可以在每个表空间里有多个datafile,并且简化了datafile的管理。

注意:在操作系统上你要有足够的空间以供扩展。

See Also:
Oracle9i Database Administrator's Guide for more information about resizing datafiles


3.3.3 Offline Datafiles
你可以在任何时候把除了SYSTEM表空间以外的表空间设为offline或变为online。表空间里的所有datafile在你把表空间设为offline或online时,会一起变为onlie或offline。

你可以把个别的datafile单独设置为offline,然而,这种情况通常只发生在一些数据库恢复程序里。

3.3.4 Temporary Datafiles
本地管理临时表空间会有临时datafile,即tempfile,除了下面列出的以外,和其他常规datafile是一样的:
  ***tempfile总是被设置为nologging模式。
  ***不能把tempfile设为read-only模式。
  ***不能重命名tempfile。
  ***不能通过ALTER DATABASE语句创建tempfile。
  ***当你创建或resize tempfile时,他们不是总会分配指定大小的磁盘空间。在某些操作系统(比如UNIX),在BLOCKS被访问以前,在文件被创建或resize时是不会分配disk blocks的。
  警告:这个特性让你可以快速的创建或resize tempfile,然而,只有当tempfile被访问后,disk的空间才会运行分配。
  ***tempfile的信息在数据字典DBA_TEMP_FILES和动态性能视图V$TEMPFILE里,而不在DBA_DATA_FILE或V$DATAFILE里。

See Also:
"Managing Space in Tablespaces" for more information about locally managed tablespaces







###################################################
#
#   3.4 Control Files Overview
#
###################################################



数据库的control file是数据库启动和成功运转而必须要的比较小的二进制文件。在数据库使用期间,controlfile被oracle连续的更新,所以当数据库open时,controlfile 必须可用以让写入新信息。如果因为某些原因而导致controlfile不可访问,那么数据库会变的不可用。

每个controlfile只会分配给一个oracle数据库。

3.4.1 Control File Contents
控制文件包含了它所属的数据库的相关信息,在数据库启动和normal operation期间,insstance访问数据库需要这些信息。control file里的内容只能被oracle修改,DBA和用户都不能去编辑control file.

控制文件里包含的内容如:
   ***database name.
   ***database 创建时间戳.
   ***database相关的datafiles和online redo log files的名字和路径。
   ***表空间信息
   ***datafile offline ranges
   ***the log history
   ***归档日志信息
   ***备份集和备份片信息
   ***backup datafile and redo log information
   ***datafile copy information
   ***the current log sequence number
   ***checkpoint information
database name和timestamp在database创建时就有了。database name不是从初始化参数DB_NAME就是从CREATE DATABASE语句里得到的。

每当datafile或online redo log file被新添加,重命名,或从数据库里drop时,controfile就会被oracle更新以反映新的物理结构变更,这些变化被记录是为了:
   ***在database startup期间oracle可以identified并且打开datafiles和online redo log files。
   ***在database recovery时,oracle可以identified这些必须或要求可用的文件。

因此,如果你对你的数据库做了物理结构上的更改(使用ALTER DATABASE语句),那么你应该立即做一个controfile的备份。

控制文件总是要记录检查点的相关信息,每阁3秒,CKPT(checkpoint process)会把online redo log里的checkpoint position相关信息记录到控制文件里。这些记录的信息在database recovery时用来告诉oracle,在online redo log group里在这个故障点以前所有的redo entries recorded不必用来做database recovery,因为他们已经被写到datafile里了。

See Also:
Oracle9i Recovery Manager User's Guide
Oracle9i User-Managed Backup and Recovery Guide
for information about backing up a database's control file

3.4.2 Multiplexed Control Files
和online redo log files一样,oracle允许设置多路controfile,对用样的数据库,control file可以被同时打开和写入。

在不同的disk上为一个数据库存储多个control file,你可以比只得到比一个controfile更多的安全。如果包含一个控制文件的磁盘发生故障了,当oracle尝试访问被损坏的控制文件时当前instance就会fails,然而,当其他disk上的当前控制文件的拷贝继续可用,这时候instance很容易就可以重新启动了,而且不需要做database recovery。

如果数据库里所有的控制文件在运行期间都丢失(故障)了,此时instance会中断,并且需要media recovery。如果因为当前控制文件拷贝不可用而必须用以前备份的旧的控制文件,此时介质恢复不是那么容易的。因此,强烈建议你坚持下列习惯:
  ***给每个数据库都使用多路控制文件。
  ***把多路控制文件放在不同的物理磁盘上。
  ***使用操作系统镜像。
  ***monitor backups.
我来说两句

(可选)

日历

« 2012-05-09  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 3568
  • 日志数: 38
  • 图片数: 1
  • 建立时间: 2006-10-27
  • 更新时间: 2006-11-26

RSS订阅

Open Toolbar