学院首页>网络编程>SQL Server>用户自定义的数据库修复

用户自定义的数据库修复

作者: 来源: 添加时间:2006-5-22 11:13:12

2、  打开状态下的完全介质恢复
SQL>SELECT d.file# f#,d.name,d.status,h.status from v$datafile d,v$datafile_header h
 WHERE  d.file#=h.file#;查询哪些数据文件被自动设置为脱机状态;
SQL>ALTER  TABLESPACE  users  OFFLINE  TEMPORARY;将包含损坏数据文件的表空间设置为脱机状态;将数据文件恢复到原来的位置上,如果介质故障无法排除,需要将数据文件恢复到其它位置上;
利用备份修复丢失或损坏的数据文件;如果修复后的数据文件不在原来的位置上,需要使用ALTER  DATABASE  RENAME  FILE …TO …语句在控制文件中更新它们的信息
SQL>RECOVER  TABLESPACE  users  AUTOMATIC对包含损坏数据文件的脱机表空间进行恢复;
SQL>ALTER  TABLESPACE  users  ONLINE;

四、 归档模式下的不完全介质恢复

1、  不完全恢复的操作准则;
在恢复前后都对数据库进行完全备份
完成不完全介质恢复后,检查数据库是否已经恢复到了目标时刻下的状态;
完成不完全介质恢复后,将归档重做日志文件移动到其它位置保存。

2、  基于时间的不完全恢复
对数据库进行一次完全备份,包括控制文件和所有的联机重做日志文件
SQL>SHUTDOWN  ABORT
确定不完全介质恢复的目标时间,即你需要将数据库恢复到哪个时刻下的状态,然后确定需要使用哪些备份来对数据进行修复,数据库修复所使用的控制文件备份应当能够正确反映出目标时刻下数据库的物理结构,所使用的数据文件备份应当是在目标时刻之前创建的,而且必须修复所有的数据文件,
如果没有在目标时刻之前建立的数据文件备份,需要重新创建空白的数据文件
如果在数据库中包含在目标时刻之后建立的数据文件,不要对这个数据文件进行修复,因为在完成不完全恢复后的数据库中根本不应当存在这个数据文件;
将数据文件恢复到原来的位置上,如果介质故障无法排除,则恢复到其它位置上;
利用选定的备份文件修复所有的控制文件和数据文件;
SQL>STARTUP  MOUNT 启动实例并加载数据库;
如果修复后的数据文件不在它们原来的位置上,需使用ALTER DATABASE RENAME  FILE … TO …语句在控制文件中更新它们的信息;
SQL>SELECT  name,status  FROM  V$DATAFILE;确定所有数据文件都处于联机
SQL>ALTER  DATABASE  DATAFILE … ONLINE;将数据文件恢复为联机;
SQL>RECOVER  DATABASE  UNTIL  TIME ‘2004-02-01:12:30:30’
如果控制文件是利用备份修复的,必须在RECOVER名利中指定USING  BACKUP CONTROLFILE子句;
SQL>ALTER  DATABASE  OPEN  RESETLOGS;
立即对数据库进行一次完全备份。

3、  基于撤销的不完全恢复
SQL>RECOVER  DATABASE  UNTIL  CANCEL
其它步骤同基于时间的不完全恢复

4、  基于SCN的不完全恢复
在进行基于SCN的不完全恢复时,oracle会在应用了所有具有小于等于指定SCN的事务的重做记录之后终止恢复过
RESETLOGS选项
在如下三种情况下,必须使用RESETLOGS选项打开数据库:

1、  在执行任何类型的不完全介质恢复之后;

2、  在使用备份修复控制文件后(在RECOVER命令中使用USING BACKUP CONTROLFILE子句);

在没有联机重做日志文件备份的情况下对不归档数据库进行完全恢复之后。

第 2 页,共 2 页 [1] [2]
站内搜索