第1个回答 2019-11-13
首先解决这个表空间恢复,有很多方法;
首先你要保证自己的数据库属于归档模式,这样我们可以根据归档文件来恢复删除掉的表空间(可以恢复无备份表空间恢复),要是有备份就更好了,可以用rman来恢复或者是根据归档文件和备份文件恢复到发生错误的那个点上。
前两部我就不说了直接从第三步开始:
3)备份表空间
alter
system
checkpoint;--
保证数据库和谐
alter
tablespace
TEST
begin
backup;
--备份数据文件
host
copy
D:\ORACLE\ORADATA\ORA10\test01.DBF
c:\bk
/y
将数据文件备份到其他目录下
alter
tablespace
users
end
backup;--结束备份
select
*
from
v$backup;--验证备份
4)破坏表空间
host
copy
c:\bk\1.txt
D:\ORACLE\ORADATA\ORA10\test01.DBF
--host
copy命令是sqlplus下的复制命令
这样test表空间呗破坏了
测试一下
alter
system
checkpoint;
查询一下这个表空间里的表
5)开始恢复
select
name,status
from
v$datafile;--查询一下
(一定要知道自己的数据文件号)
会发现test包空间还是存在
吧原来的文件在拷贝到你的数据文件目录下
host
copy
c:\bk\USERS01.DBF
D:\ORACLE\ORADATA\ORA10\USERS01.DBF
recover
datafile
4;
提示输入
auto
就好了。也可以根据归档文件做无备份恢复。
不知道我说得是否和你的要求一样