18.Oracle10g服务器管理恢复--RMAN备用数据库(练习31.32)

备用数据库与主数据库一模一样,其中包括数据库的名称。在练习10、11中学习了如何应用用户管理技术实现一个备用数据库,当在原始数据库生成归档日志文件时,这些文件也传送并应用到备用数据库上。如果主数据库失效而且不能很快解决问题或者要求有立即失效恢复解决方案,则激活备用数据库。这样备用数据库就变为了主数据库,所有用户都将连接到这个新的主数据库上,以此同时需要立即创建一个新的备用数据库。如果没有这样做,那么新的主数据库失效时,就没有失效解决方案了。
类似练习30中用RMAN创建副本数据库方法,RMAN也可以用创建备用数据库,只是几个重要的地方有差别,这些差别在进行本练习时会一目了然。一旦创建了备用数据库,对它的维护(传送以及应用归档日志文件)就和练习10、11讲述的完全相同了。用RMAN的DUPLICATE创建备用数据库是在Oracle8i中首次引入的,因此不可能在低于8i版本的数据库上用RMAN创建备用数据库。
阅读本练习的前提条件是先通读练习10、11,在这两个练习中有相关概念和维护备用数据库的所有基本信息。在本练习中,将讲述如何使用RMAN创建备用数据库并备份该数据库,类似与数据库复制,主数据库为目标数据库,备用数据库为辅助数据库。
在本练习中将介绍以下几个新的RMAN命令:

  • INCLUDE CURRENT CONTROLFILE FOR STANDBY 在备份命令中包含一个备用控制文件,RMAN为了创建备用数据库必须在其备份中有一个备用控制文件;
  • DUPLICATE TARGET DATABASE FOR STANDBY 创建一个副本数据库作为目标的备用数据库,这个命令类似于练习30中的数据库克隆操作;
  • DORECOVER 从目标数据库用归档日志备份恢复备份数据库,一旦备用数据库创建完成,RMAN将对备用数据库应用主数据库中的所有归档日志,直到RMAN注册的最新归档日志。

在RMAN为备用操作复制数据库期间,RMAN将自动执行任务的所有要求,当连接到目标、辅助和可选的目标数据库时,RMAN将进行以下任务:

  1. 决定需要还原哪个基本备份;
  2. 根据辅助数据库参数或者RMAN设置命令和选项,确定将数据文件放置在辅助实例的什么位置;
  3. 为辅助数据库还原备用控制文件;
  4. 加载备用数据库控制文件;
  5. 从第1步)决定的备份片或者映像拷贝来还原数据文件;
  6. 如果指定了DORECOVER选项,将根据恢复停止点对还原的数据文件应用所有的增量备份;
  7. 如果指定了DORECOVER选项,将根据恢复停止点从磁盘或备份对还原的数据文件应用所有归档日志文件。

为什么要用RMAN来创建创建备用数据库呢?如果所有的备份都是RMAN备份,则必须要应用RMAN。如果既有RMAN备份也有用户管理的备份,则RMAN进行备份数据库的创建将更容易且自动化程度更高。RMAN可以创建新的备用控制文件并处理数据文件的还原和恢复。
当RMAN创建备用数据库时,应注意以下事项:

  • 如果在备用数据库还原期间不希望使用目录,则应在RMAN命令中指定NOCATALOG;
  • 在备份备用控制文件时的重做日志必须被归档(在恢复时,归档日志文件需要数据文件头的备份SCN);
  • 必须有包含备用控制文件的备份,否则,当试图创建备用数据库时会得到一个“RMAN-0624:no backup or copy foe thecontrolfile found to restore”错误;
  • 如果备用数据库驻留在其他的服务器上并拥有与主服务器相同的目录结构,则在备用创建期间不必重新命名任何一个文件。默认情况下,DUPLICATE命令将不能继续执行,而RMAN将会通知还原的辅助文件的位置与被备份的目标数据库文件的原始位置是一致的。这样可以防止DBA偶然覆盖已存在的数据文件,NOFILECHECK选项会忽略这个检查;
  • 备用数据库的数据库名称必须和主数据库的名称相同,如果主数据库和备用数据库在同一个机器上(类似本练习),则对备用数据库使用LOCK_NAME_SPACE初始化参数,这将允许两个具有相同名称的数据库驻留在同一机器上,并且不相互干扰;
  • RMAN将只创建备用数据库并在创建点上初步恢复数据库,不能进行备用数据库的后续维护和恢复(传送、应用归档重做日志文件)。

在本练习中,将使用RMAN创建PRACTICE数据库的一个备用数据库,当创建完成这个备用数据库后,将使用RMAN来备份这个备用数据库以有效地备份主数据库。

恢复管理器的备用

当用RMAN创建备用数据库时,需要遵循以下步骤,其中很多步骤与创建副本数据库的步骤相同:

  1. 准备备用主机 备用数据库可以驻留在与主数据库相同的机器或者其他机器上。如果都在同一机器上,则数据文件、控制文件和联机重做日志所在的路径必须不同。因此,必须首先创建包含备用数据库的路径结构,这和练习9中第一步相同;
  2. 创建主数据库的RMAN备份 为了用RMAN创建备用数据库,需要一个合适的用于RMAN向备用服务器上还原的备份。这个备份可以在数据库打开、关闭时生成,并且可以是映像拷贝、代理拷贝或备份。备用数据库换需要一个特殊的备用控制文件,在8.1.7版本以前,这个控制文件备份必须用SQL命令(ALTER DATABASE CREATE STANDBY CONTROLFILE AS)来创建,但现在RMAN也可以生成这个控制文件;
  3. 备份配置备用数据库的参数文件 必须为备用数据库创建数据库初始化参数,备用数据库需要的许多参数都与Oracle进行自动命名文件和日志文件有关。这可以在数据文件需要迁移到其他位置时,防止覆盖文件和人工干涉;
  4. 配置备用数据库的口令文件 为了DBA身份认证,备用数据库需要一个口令文件,可以按照练习9步骤得到这个文件;
  5. 配置NET8的配置文件 RMAN需要同时连接主数据库和备用数据库。如果这两个数据库驻留在不同的服务器上,可以用Net8 Assistant来配置复制服务器上的监听器以及配置运行RMAN服务器上tsnames;
  6. 使将要驻留备用数据库的服务器可以访问RMAN备份 如果该备份创建在磁盘上,则该备份可以用ftp的二进制传输模式、类似NFS的磁盘共享技术或Windows的共享驱动器映像等技术进行传输。备份必须和服务器上相同的位置保存到备用服务器上的路径下,这样才能使RMAN知道从哪里可以重新找到文件。如果不能访问,则可以在主服务器(确保为重建的数文件指定了不同的路径,放置没有覆盖生成的数据库)上还原备份,然后传送到备用服务器上,如果主数据库和备用数据库驻留在同一机器上,则该步骤可以省略;
  7. 启动备用数据库实例 在RMAN创建备用数据库之前,备用实例需要以非加载模式启动,此时读取第3步建立的参数文件;
  8. 加载或打开主数据库 RMAN创建备用的数据之前,备用加载或者打开主数据库;
  9. 创建备用数据库 一旦RMAN连接到主数据库和备用实例上,将建立通道并创建备用数据库,一旦该数据库被还原,就可以应用增量备份和重做以向前回退该数据库。当备用创建之后,数据库将保持加载状态一直等到设置为管理服务模式或手动应用重做日志。

备用数据库通过对归档重做日志文件的应用来保持和主数据库的同步,当备用数据库创建之后,RMAN就可以执行恢复操作。如果通知RMAN在备用数据库时就恢复,则Oracle将决定在刚才还原的基准备份上应用增量备份还是在应用归档日志文件。RMAN通常将还原基准备份,接着在应用所有后续级别的增量备份,一旦最后一个增量备份应用之后,则将应用归档重做日志使数据库向前回退。当DORECOVER关键字附加在DUPLICATE命令之后,会自动在备用数据库创建时进行恢复,如果这样操作,RMAN将自动还原最新的基准备份,应用所有后续的增量备份,然后应用归档重做日志。除非给定一个恢复停止点,恢复将继续执行直到RMAN应用最后一个归档日志。这是用RMAN创建备用数据库最好的方法,因为可以减少大量人工操作。
默认情况下,当你让RMAN创建备用数据库时,还原基准备份但是并没有进行恢复。这意味着,必须手工应用此备份之后的归档日志文件,如果最新的基准备份是很长时间之前进行的,则应用所有这些归档日志之前需要进行许多工作,确保这些文件在磁盘上是可用的。

 

练习31:用RMAN创建备用数据库

在本练习中,将使用包括备用数据库控制文件的RMAN备份创建一个备用数据库,应用该备份将创建一个备用数据库、恢复数据库并以只读方式打开。在本练习中,主数据库是PRACTICE数据库,备用数据库是STBY。
本练习的目的是用RMAN创建一个备用数据库,类似于练习10-11采用用户管理技术进行操作。管理和激活备用数据库不是RMAN的操作,RMAN只是创建备用数据库。因此处理验证备用数据库是否已经正确创建,将不在本练习中重复。
步骤一:准备备用数据库
准备创建备用数据库需要的相关目录,这和练习10-11类似,其中包括:

  • 目录 创建所有的管理目录和数据库目录;
  • 参数文件 拷贝PRACTICE数据库的参数文件并命名为D:\oracle\product\ 10.1.0\Db_1\database\initSTBY.ORA 。这样就创建了一个参数文件并将所有PRACTICE修改为STBY,除了数据库名(DB_NAME),使数据库与原始数据库的名称相同。为了在备用数据库创建期间转换文件名,增加两个转换参数。同时增加LOCK_NAME_SPACE参数可以在同一个机器上同时打开两个同名的数据库
    1 db_file_name_convert=("PRACTICE","STBY")
    2 log_file_name_convert=("PRACTICE","STBY")
    3 lock_name_space="STBY"
    4 standby_archive_dest=D:\oracle\STBY\ARCHIVE
  • 口令文件 为备用数据库创建一个口令文件,以便RMAN可以用SYSDBA身份连接到SYSDBA;
  • Window服务 在Windows环境中,使用oradmin工具为STBY数据库创建一个名为OracleServiceSTBY的数据库服务
  • 配置Net8  最后为STBY配置Net8连接,这一步对于练习10-11是不必要的。因为不需要同时连接到STBY实例和PRACTICE数据库,使用Net8 Assistant为STBY数据库增加一个数据库服务,并为STBY数据库配置监听器。另外非常注意,设置完毕后需要重启监听并把数据库处于非加载模式。

    (图2)

如果已经像练习10-11描述的那样创建了一个备用数据库,那么上述所有这些步骤都不是必须的(除了为STBY参数文件增加两个转换参数)。数据库文件已经存在与D:\oracle\CLNE\STBY目录中。可以保留这些以前生成的数据库文件(数据文件、日志文件和控制文件),也可以删除这些文件。

步骤二:备份PRACTICE数据库
创建备用数据所需的控制文件的备份,备用控制文件之外还需要一个日志切换,在命令中增加一个日志文件参数,该脚本输出可以输入到一个文件中:

1 WIN>rman trace=D:\oracle\CODE\chap16\b_standby.log
2 RMAN>connect target system/system@practice
3 RMAN>connect catalog rman1010/rman@rcat
4 RMAN>@D:\oracle\CODE\chap16\b_standby.rcv

下面显示的备份除了与前几个练习RMAN备份有一些差别外,其他的基本相同。这个备份显示了数据库几个不同部分是如何在一个单一备份脚本中备份。以前,数据库文件和归档日志文件的备份是分别运行不同的脚本产生的。

 1 run{
 2   allocate channel d1 type disk;
 3   backup
 4     incremental level 0
 5     database
 6       format 'D:\oracle\CODE\chap16\db_%d_%s_%p_%t'
 7       tag='STBY_INC0'
 8       include current controlfile for standby;
 9     sql "alter system archive log current";
10     backup archivelog
11       from time 'SYSDATE - 1/24'
12       format 'D:\oracle\CODE\chap16\ar_%d_%s_%p_%t';
13 }

以下是对这个备份的说明:

  • Controle file to standby 当备份整个数据库时,控制文件将自动包含在系统表空间中,为了备用数据库的生成必须创建一个特殊的控制文件。RMAN可以在一个数据文件备份片中存储这个特殊的文件,该文件也可以用于还原目标数据库的控制文件;
  • Archive log current 当备份数据库控制文件创建时,备用数据库的恢复从这个当前日志开始。因此这个日志文件应该在备用数据库创建之后,为了在备用数据库恢复而进行归档;
  • From time 'SYSDATE-1/24' 在归档日志备份集中最新的归档日志文件,这个文件将备份包含最近时间内值得重做的归档日志。

    (图4)

    (图6)

查看在屏幕的或者RMAN日志文件的备份输出,将会看到表示备用控制文件已经包含在这个备份中的消息:RMAN-080020:including standby controlfile in backupset.
在进入下一个步骤之前,请记录PRACTICE数据库当前的日志序列号,自动恢复将从这个日志序列号开始:

1 SQL>connect system/system@practice
2 SQL>SELECT sequence# FROM v$log WHERE status='CURRENT';

(图8)

在这个练习中,可以认为从这个查询返回的日志序列号是11,也可以在RMAN输出信息中看到这个结果。
如何知道一个备份集中是否包含一个备用控制文件?可以在目录中查询名为RC_BACKUP_CONTROLFILE的视图,其中控制文件类型“S”(Standy)。正常的控制文件备份将是一个控制文件类型“B”(Backup)。下面显示的结果是从第一个查询中得到的,列出刚刚创建的备份,可以与备份输出的跟踪文件b_standby.log文件比较set_count。

1 SQL>connect rman1010/rman@rcat
2 SQL>SELECT set_count, checkpoint_change#, checkpoint_time,
3            status, completion_time, controlfile_type
4       FROM rc_backup_controlfile
5      WHERE db_name = 'PRACTICE' AND controlfile_type = 'S';
同时下面的查询语句可以在备份集和备份片中查找包含的备用控制文件。

(图10)

1 SQL>SELECT bs.bs_key, bs.set_count, bs.backup_type, bs.incremental_level,
2            bs.completion_time, bs.elapsed_seconds, bp.handle, bp.status
3       FROM rc_backup_set bs, rc_backup_piece bp
4      WHERE bs.controlfile_included = 'STANDBY'
5        AND bs.db_id = bp.db_id
6        AND bs.bs_key = bp.bs_key
7        AND bs.db_id IN (SELECT dbid FROM rc_database WHERE name = 'PRACTICE');

(图12)

该查询的输出与来自备份执行的日志文件中显示的文本有关。确保日志文件中备份片的名称与该查询语句中的列名相同,备份经历的时间也相同。
步骤三:创建备用数据库
只需要几个命令就可以完成备用数据库的创建,简单地启动RMAN并连接到目标、目录和辅助数据库上。如果目标数据库与默认的环境的语言属性相同则该变量没有必要设置,如果NLS_LANG环境变量与目标数据库的不同则可能使备用数据库的创建失败。

1 WIN>RMAN TRACE=D:\oracle\CODE\chap16\STANDBY.LOG
2 RMAN>@D:\oracle\CODE\chap16\standby.rcv

RMAN执行的备用数据库创建工作只需要几个命令,下面列出的命令可以用前述步骤中创建的备份生成备用数据库。

1 connect target system/system@practice
2 connect catalog rman1010/rman@rcat
3 connect auxiliary system/stby@stby
4 run{
5   set command id to 'Standby Creation';
6   allocate auxiliary channel d1 type disk;
7   duplicate target database for standby dorecover;
8 }

(图14)

(图16)

(图18)

(图20)

(图22)

这几行命令用数据库的备份创建了PRACTICE数据库的副本,这个副本配置为PRACTICE数据库的一个STBY。这个脚本中的命令很少,但实际上RMAN完成了大量的工作:

  • Set command id 这个设置选项是RMAN填充了v$session视图的client_info列。因此,在STBY数据库创建时,可以将client_info的值设置为“Standby Creation”来查询v$session表,并观察会话的进行;
  • Duplicate target database for standby 这个命令使创建备用数据库需要完成大量的工作。首先,备用数据库的控制文件需要复制到辅助数据库init.ora文件中的CONTROL_FILES参数值指定的位置,然后目标数据库备份中的数据文件将还原到辅助数据库的还原位置上;
  • Dorecover 当目标数据库复制之后备份数据库将用增量RMAN备份和归档重做日志恢复,一致恢复到停止点的位置。

RMAN复制命令如何知道需要在什么位置创建复制的数据文件内?因为备用数据库和主数据库在同一服务器上,所以不能使用相同的文件名和路径,复制命令将按照下面的顺序在三个地方查找数据文件存放位置的指示:

  • Set newname 为特定的复制命令制定新的数据文件名。在一个运行块内,该参数定义了一个文件名,对于特殊的复制命令,这个设置是暂时的,这个新名称的值知识在运行块内有效;
  • Set auxname 为所有辅助操作指定一个新的数据文件名,该设定在其他指定以前都有效,这个设定在运行块外执行并在RMAN会话之前有效;
  • Db_file_name_convert 只为数据库的参数文件中指定一个转换字符串,这个设置对该数据库的所有数据文件都适用。

日志文件可以用一下两种方法来进行设定:

  • 在复制命令中设定;
  • 在辅助数据库参数文件中:log_file_name_convert

步骤四:验证备用数据库的生成
再次检查备用数据库的文件是否都已经保存在正确的目录下了,也可以连接到备用数据库并查询v$database,v$datafile, v$logfile和v$controlfile以证实是否所有的数据文件都保存在期望的位置。
既然已经创建了备用数据库,现在验证这个STBY数据库是否确实是PRACTICE数据库的一个备用数据库。如何才能验证STBY是一个备用数据库呢?可以这样检查备用数据库的功能:修改主数据库的数据库,将这个改变传递给备用数据库,只要只读方式打开数据库,然后检查修改的数据。

  • 修改主数据库中的数据 为了验证STBY执行了数据库的功能,修改主数据库的数据。首先删除TINA.DATE_LOG表中所有未来时间的记录,然后在该表中插入一个未来16年的记录,稍后将在备用数据库中可以看到该记录,在确定了这些修改之后,检查当前的重做日志序列号并切换日志文件。刚才对表TINA所做的修改将包含在最新归档的日志文件的重做记录当中。如果修改时的日志序列是11,则日志切换将在D:\oracle\PRACTICE\ARCHIVE目录中生成一个名为ARC00011_0737624225.001归档日志文件:
    1 SQL>connect system/system@practice
    2 SQL>DELETE FROM tina.date_log WHERE create_date > SYSDATE;
    3 SQL>COMMIT;
    4 SQL>INSERT INTO tina.date_log VALUES (SYSDATE+365*16);
    5 SQL>SELECT sequence# FROM v$log WHERE status = 'CURRENT';
    6 SQL>COMMIT;
    7 SQL>ALTER SYSTEM SWITCH LOGFILE;

    (图24)

  • 通过归档日志传递数据 一些发生在主数据库的数据修改还没有被应用到备用数据库中。这些修改包含在一个名为D:\oracle\PRACTICE\ARCHIVE\162.arc的归档日志文件中,为了将这些修改传递给备用数据库,这个新生成的归档日志文件必须应用于备用数据库,连接到备用数据库并应用该归档日志文件。因为本练习中数据库都在同一机器上,所以没有必要传送这个日志文件,只是通知恢复命令去查询该文件所在的路径,然后在恢复命令中选择自动恢复项来恢复备用数据库;
    1 SQL>connect sys/stby@stby as sysdba
    2 SQL>set logsource D:\oracle\PRACTICE\ARCHIVE
    3 SQL>recover standby database;

    (图26)

  • 从备用数据库读取新的数据 检查在PRACTICE数据库中生成并被传递为STBY数据库的更改数据,以只读方式打开数据库。从TINA.DATE_LOG表选择行记录,将会看到一个未来16年的记录,然后关闭备用数据库并返回到备用模式。如果对于这个练习有任何疑问,请回顾练习10内容,以便了解如何验证备用数据库更改的详细情况。 
    1 SQL>ALTER DATABASE OPEN READ ONLY;
    2 SQL>SELECT create_date FROM tina.date_log WHERE create_date > SYSDATE;
    3 SQL>SHUTDOWN IMMEDIATE;
    4 SQL>STARTUP NOMOUNT;
    5 SQL>ALTER DATABASE MOUNT STANDBY DATABASE;

    (图28)

练习32:用RMAN备份备用数据库

一旦创建了备用数据库,就可以用RMAN来备份这个备用数据库了,备份备用数据库实际上就是对主数据库的备份。这个工作也可以由用户管理备份完成,但相比较而言,用RMAN更简单而且易于操作。既然已经有一个主数据库的额外拷贝,而且这个拷贝可以保存在与实际的产品级环境不同的机器上,那么就可以从这个机器上进行备份,当备份是从备用数据库的服务器而不是主数据库的服务器进行时,减少由于将数据传送给介质管理层之前读取数据文件和归档日志文件而引起的主服务器资源的开销。
回顾练习19讲述用DBID作为每个数据库唯一的标识并将每个数据库注册在RMAN目录下,这个有Oracle提供给数据库的DBID是数据库第一次生成时获得的,并且在一些情况下会发生改变,其中一种情况就是用RMAN创建了一个复制的数据库。如果希望用RMAN进行新创建的复制数据库的RMAN备份,则必须首先在目录中注册。RMAN自动强迫复制数据库拥有一个新的DBID,该DBID可以将其作为备用数据库的原始数据库进行备份。因为该备用数据库就是主数据库的一个拷贝,而且DBID也一样,备用数据库通过读取从主数据库获得的归档重做日志而保持与主数据库同步。主数据库和备用数据库数据文件内容的差别依赖与有多少归档日志文件还没有被传递和应用。为了进行备用数据库的备份,需要停止恢复并关闭,然后以非加载方式启动。使用RMAN连接到备用数据库和恢复目录上,并进行数据库文件的冷备份,甚至可以对所有从主数据库传送来的归档日志文件进行备份。这将节约CUP、内存以及磁盘资源,否则会占用主服务器的资源,不能用RMAN对备用控制文件进行备份,但却可以用于还原主数据库,必须从主数据库进行控制文件的备份。备用的控制文件只能用于备用数据库,同时必须确保主服务器和备用服务器都能与MML和磁带库进行通信。从备份数据库写数据,然后向主服务器还原这些数据,用这样备份方法,可以还原从主数据库得到的文件并用于备用数据库,或者可以还原从备用数据库备份得到的文件并在主数据库中还原。
步骤一:备份备用数据库
生成一个类似于练习21用于增量级别0备份的备份脚本。可以使用同样的脚本,但需要更改tag和备份路径以便区分以前的备份。下面是一个RMAN命令的脚本:

1 connect target system/stby@stby
2 connect catalog rman1010/rman@rcat
3 run{
4   allocate channel d1 type disk;
5   backup incremental level = 0 cumulative database
6     format 'D:\oracle\CODE\chap16\db_%d_%s_%p_%t'
7     tag='WHOLE_STANDBY_INC0';
8 }

用RMAN备份备用数据库(b_whole_standby_inc0.rcv),这个脚本创建一个目标数据库的备份。注意,这个备份的tag将是WHOLE_STANDBY_INC0。同时应注意,备份片文件将保存在ch16目录下,这样容易找到备份集和备份片文件。

1 WIN>rman trace=b_whole_standby_inc0.log
2 RMAN>@D:\oracle\CODE\chap16\b_whole_standby_inc0.rcv

当进行备用数据库备份时,输出结果类似于以前的输出,但注意数据文件备份的路径都不在PRACTICE数据库的路径下,在日志文件中将看到类似以下的输出:

(图30)
步骤二:列表备份的内容
备份已经完成了,可以通过tag标识列出其内容。这个列表显示的内容与备份的日志文件(b_whole_standby_inc0.log)中的信息一样。确认备份集中的数量是相同的,并且备份片名称也是一样的:
1 RMAN>list backup tag 'WHOLE_STANDBY_INC0';

有趣的事情需要注意:该备份中列出的数据文件的位置是主PRACTICE数据文件的位置:

(图32)
尽管备用数据库的备份在D:\oracle\STBY路径下为数据文件拷贝了数据块,但目录和控制文件认为这些文件在D:\oracle\PRACTICE路径下。因此,还原将自动把这些数据文件放到主服务器上的适当位置。
还要做一件事:再次连接到主数据库上,并使用相同的list命令查看备份是否存在。关于备用数据库备份的信息包含在备用控制文件和目录中。
1 WIN>rman
2 RMAN>connect target system/system@practice
3 RMAN>connect catalog rman1010/rman@rcat
4 RMAN>list backup tag 'WHOLE_STANDBY_INC0';

(图34)

当list命令执行时,目录和主控制文件会自动同步,RMAN智能化很高,可以在服务器管理的内容中发现PRACTICE数据库可控制文件和目录之间的更改。该目录包含关于备份的信息,而且控制文件则没有。
一旦再同步完成,将看到连接到PRACTICE数据库的备份和将STBY数据库作为目标的备份是一样的,因此RMAN将STBY备用数据库的备份当做PRACTICE数据库的备份。


小结
在练习31、32中讲述了如何应用比手工操作方法更简单的RMAN创建备用数据库,没有必要浪费时间在还原备份并应用归档日志恢复数据库上。RMAN将还原基准备份并应用增量备份以及归档日志。同时练习中还讲述了如何进行备用数据库的备份,这个备份可以用于数据库还原。因为这两个数据库有相同的DBID,所以可以这样的操作,在备用数据库上进行备份可以减少从主服务器上进行备份的工作量。下表列出了采用用户管理和服务器管理技术创建备用数据库的差别。

比较用户管理和服务器管理的备用数据库创建

 

用户管理复制

服务器管理复制

配置备用数据库(路径、参数文件、口令文件、Window服务);Net8配置可选

配置备用数据库(路径、参数文件、口令文件、Window服务);Net8配置可选

采用用户管理备份主数据库打开或关闭备份,备份需要与所有数据文件一样大的磁盘或磁带空间

采用服务器管理备份目标数据库打开、关闭或映像拷贝。备份需要的磁盘或磁带空间比所有的数据库文件的空间小。映像拷贝需要与所有文件一样的磁盘或磁带空间

在主数据库上创建备用控制文件并拷贝放到备用数据库

数据库的备份必须包含一个备用控制文件的拷贝

通过操作系统的命令删除备份文件

只有当副本数据库保存在其他机器上且备份存储在主数据库磁盘或副本服务器上的磁带系统不可用时,才通过操作系统命令删除文件

SQL*Plus的命令创建备用控制文件

当连接到目标、目录或者辅助数据库时发布复制数据库命令

要从备份的时间处恢复备用数据库要重建归档日志文件并应用这些文件

RMAN自动处理增量备份和归档重做的应用

  

posted @ 2010-12-25 17:44  shishanyuan  阅读(1284)  评论(0编辑  收藏  举报