在Oracle数据库中,构成SYSTEM表空间和当前活动的撤销表空间(由UNDO_TABLESPACE参数指定)的数据文件被认为是"关键的"。这类文件受损将导致实例立即终止。而且,在通过还原和恢复操作修复损坏之前,数据库无法再次打开。构成用户数据表空间的其他文件受损通常不会导致实例崩溃。Oracle将使受损的文件脱机,使其内容不可访问,但数据库的其余部分仍保持打开。您的应用程序对此的反应将取决于其构造和编写方式。
提示:
在部分数据库不可用的情况下运行应用程序安全吗?这是一个要与开发人员和业务分析师讨论的问题,并且也是在决定如何跨表空间扩展段时要考虑的重要一点。
如果备份是用RMAN完成的,那么受损文件的还原和恢复操作将完全自动。RMAN将以最有效的方式执行还原,智能地使用完整和增量备份,然后应用必要的归档日志。如果RMAN通过SBT通道链接至磁带库,它将自动加载磁带来提取所需的文件。
数据文件的还原和完整恢复只有在自数据文件上一次备份后生成的所有归档日志文件可用的情况下才能成功。它们必须仍在磁盘的归档日志目标目录中,或者如果它们已被迁移到磁带,则必须在恢复操作期间还原。RMAN将自动从备份集中提取并还原到磁盘。如果归档日志文件因为某个原因缺失或受损,恢复将失败,但由于归档日志目标和RMAN备份集可以且应多路复用,因此一般不会出现这种情况。如果出现这种情况,唯一的选择是完整还原,不完整恢复至缺失的归档,这意味着会丢失所有后续工作。
练习16-3
在丢失不关键数据文件时,使用Database Control进行恢复
首先,创建一个表空间并在其中创建段,然后进行备份。接着模拟数据文件受损。诊断问题并解决它。数据库在整个练习期间将保持打开供使用。在各个点,您将被要求提供主机操作系统凭证(如果在之前的练习中未保存):提供一个合适的Windows或Unix登录名,如Oracle所有者。
(1) 使用SQL*Plus以SYSTEM用户身份连接数据库并创建一个表空间。例如,在Windows上是:
SQL>create tablespace noncrit
datafile 'C:\APP\ORACLE\ORADATA\ORCL\noncrit.dbf' size 2m;
或在Unix上为:
SQL>create tablespace noncrit
datafile '/app/oracle/oradata/orcl/noncrit.dbf' size 2m;
(2) 在这个新的表空间中创建表,并向其中插入一行:
SQL>create table ex16 (c1 date) tablespace noncrit;
SQL>insert into ex16 values(sysdate);
SQL>commit;
(3) 使用Database Control,以SYSTEM用户身份连接数据库。
(4) 从数据库主页中,选择Availability选项卡,然后选择Manage部分的Schedule Backup链接。
(5) 在Schedule Backup窗口中,选择Customize
Backup部分中的Tablespaces单选按钮