用户管理的完全恢复
http://blog.chinaunix.net/u2/63914/showart_1981560.html
一、完全恢复简介
1.诊断数据文件介质失败
在关闭状态下诊断数据文件介质失败(DBWR写信息到跟踪文件)
在open状态下诊断数据文件损坏或被删除
在open状态下诊断数据块损坏
2.转储数据文件到其他磁盘
在mount状态下改变数据文件位置(主要改变system表空间数据文件位置)
host copy d:/demo/system01.dbf(副本文件) d:/demo/system01.dbf(目标文件)
alter database rename file 'd:/demo/system01.dbf' to 'e:/demo/system01.dbf'
在open状态下改变数据文件位置(主要改变除system表空间以外的数据文件位置)
alter database datafile 'd:/demo/user01.dbf' offline;
host copy d:/demo/users01.dbf e:/demo/users01.dbf
alter tablespace users rename datafile 'd:/demo/users01.dbf' to 'e:/demo/users01.dbf'
3.完全恢复命令
当使用用户管理的完全恢复时,在将数据文件备份复制到目录位置之后,还需要以下三个命令。
recover database-----恢复数据库的多个数据文件(mount状态下)
startup force mount
recover database
recover tablespace------恢复一个或多个表空间的所有数据文件(在open状态下)
recover tablespace users
recover datafile---------恢复一个或多个数据文件(mount或open状态)
recover datafile 'd:/demo/system01.dbf'或文件编号1,2
4.应用归档日志
A:使用oracle建议的归档日志位置(recover datafile 5)
B:指定归档日志位置(recover from 'c:/test' datafile 5)
C:自动应用归档日志
在提示语法下指定auto(recover datafile 5-----auto)
在开始恢复之前设置自动恢复选项。set autorecovery on
recover datafile 5
在恢复命令中指定自动恢复选项。recover automatic datafile 5.
5.查看恢复文件
A:列出需要恢复的数据文件
select file#,error,change# from v$recover_file
B:列出日志历史信息
select sequence# from v$loghist where SCN号 between first_change# and switch_change#
C:列出恢复要使用的归档日志
select sequence#,archive_name from v$recovery_log
二、在mount状态下恢复数据文件(system表空间的数据文件)
如果数据库处于open状态时,system所对应的表空间的数据文件出现介质失败,执行I/o操作时,数据库会自动关闭;如果数据库处于关闭状态时,system表空间的数据文件出现介质失败,数据库将不能打开,假定system01.dbf被误删。为了重新使用数据库,需要恢复该数据文件
1.装载数据库
startup force mount
2.确定需要恢复的数据文件
select file#,error from v$recover_file
3.复制数据文件备份到目标位置
host copy d:/backup/system01.dbf d:/demo
如果数据文件所在磁盘损坏,则如下:
host copy d:/backup/system01.dbf e:/demo
alter database rename file 'd:/demo/system01.dbf' to 'e:/demo/system01.dbf'
4.恢复数据文件
recover datafile 1 ------auto(如果归档日志在默认位置下全部存在)
5.打开数据库
alter database open
三、在open状态下恢复关闭后意外失去的数据文件(除system表空间的数据文件之外)
假定在关闭状态下数据文件users01.dbf所在的磁盘出现损坏。
1.装载数据库
startup force mount
2.确定需要恢复的数据文件
select file#,error from v$recover_file
3.使数据文件脱机
alter database datafile 4 offline
4.打开数据库
alter database open
5.复制数据文件备份
host copy d:/backup/users01.dbf d:/demo
如果数据文件所在磁盘损坏,则如下:
host copy d:/backup/users01.dbf c:/demo
alter database rename file 'd:/demo/users01.dbf' to 'c:/demo/users01.dbf'
6.恢复数据文件
recover datafile 4-------auto
7.使数据文件联机
alter database datafile 4 online
四、在open状态下恢复打开时意外失去的数据文件
假定在open状态下数据文件users01.dbf出现介质失败
1.确定需要恢复的数据文件
select file#,error from v$recover_file
2.使数据文件脱机
alter database datafile 4 offline;
如果表空间的所有数据文件全部损坏或被误删除,可以执行alter tablespace ... offline for recover
3.复制数据文件备份
host copy d:/backup/users01.dbf d:/demo
如果数据文件所在磁盘损坏,则如下:
host copy d:/backup/users01.dbf c:/demo
alter database rename file 'd:/demo/users01.dbf' to 'c:/demo/users01.dbf'
4.恢复表空间或数据文件
recover datafile 4----auto
5.使表空间或数据文件联机
alter database datafile 4 online
五、在open状态下恢复未备份数据文件
假定将demo数据库转变为archivelog模式后,dba建立表空间user01
create tablespace user01 datafile 'd:/demo/user01.dbf' size 1m;
但是没有备份数据文件user01.dbf,并且在关闭状态下该数据文件出现介质失败。
1.装载数据库
startup force mount
2.确定需要恢复的数据文件
select file#,error from v$recover_file
3.使数据文件脱机
alter database datafile 6 offline
4.打开数据库
alter database open
5.重新建立数据文件
alter database create datafile 'd:/demo/user01.dbf'
如果数据文件所在磁盘损坏,则如下:
alter database create datafile 'd:/demo/user01.dbf' as 'c:/demo/user01.dbf'
6.恢复数据文件
recover datafile 6 --------auto
7.使数据文件联机
alter database datafile 6 online