oracle表空间的还原

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle表空间的还原相关的知识,希望对你有一定的参考价值。

之前建了6个表空间。建了几个用户并默认使用了这6个表空间,因为需要临时导入一个很大的数据文件,因为导入后会使表空间的文件变的很大,想的是用完后再恢复回去,所以把6个表空间的文件备份了一下,用完后我把表空间删了,然后把之前备份的6个表空间拷贝到了原来的位置。但是oracle却不好使了,请问我该如何做呢?

你这事情就比较麻烦了
临时的方法是,这6个表空间不要了。数据库mount起来之后,把这6个表空间offline,然后打开数据库,这样其他的表空间还可以用。
要恢复这6个表空间的数据,需要你之前有正常方法做的全库备份,并且开启归档模式。
在异地进行指定时间点的恢复。然后再通过导入导出的方法,把数据迁移回当前库。

你之前备份的6个表空间的文件,如果是在开启数据库时,通过操作系统拷贝方式做的,那是完全无效的。唯一可能的用处是,使用oracle的一些工具直接读里面的数据,重新录入。但是这个不是常规方法。那些工具也很冷门,很少有人懂。我是不懂...

还有一个方法,是从操作系统恢复被你删除的表空间,然后再恢复数据库。各种艳照门就是这么出来的。。。

不管哪种方法,过程中肯定很多错误需要处理,请专业的数据修复公司来做吧。
参考技术A 有无归档备份? 有无rman备份?
如果都无,重装吧,恢复不了了!
参考技术B 在归档模式下吗? 参考技术C 你直接用操作系统命令删除的?
还有你备份的那6个表空间文件是怎么备份的,服务器模式是运行在归档模式吗?

oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库

oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库
最近由于系统重装,在还原dmp备份文件时,由于数据原因(用exp命令导出时表没有导出全部),导致系统不能正常运行。根据网上的信息和个人实际情况,做个记录,便于后用。

oracle 导出空表方法:

1. 执行下面语句:

select table_name from user_tables where NUM_ROWS=0;
2.假设我们这里有空表TBL_1,TBL_2,TBL_3,TBL_4,则查询结果如下:

alter table TBL_1 allocate extent;
alter table TBL_2 allocate extent;
alter table TBL_3 allocate extent;
alter table TBL_4 allocate extent;
最后我们把上面的SQL语句执行,再导出就可以了。

下面正式开始

说明:把原来的数据做备份

原oracle安装目录,D:\tools\oracle11g\Administrator

备份oracle目录, D:\数据库备份\oracle11g\Administrator

 

步骤:

一、重装oracle,安装目录要与原来的安装目录相同,即为D:\tools\oracle11g\Administrator

二、创建数据库时,确保ORACLE_SID与原数据库相同,此处ORACLE_SID = sd ,安装好数据库后,创建好表空间信息,也与原数据库相同,如果原来的有临时表空间,也要创建(和原来的一样)

三、创建成功后,会在D:\tools\oracle11g\Administrator\oradata\ 下出现与ORACLE_SID同名的文件夹sd ,即D:\tools\oracle11g\Administrator\oradata\sd

四、在控制面板->管理工具->服务 中,停止以下服务:

1)OracleOraDb11g_home1TNSListener

2)OracleServiceSD

因为我只开启了这两项oracle服务,为确保操作过程顺利,可以停止所有oracle服务。

五、从备份盘中拷贝oracle数据库文件:

1)把D:\数据库备份\oracle11g\Administrator\oradata\目录下的oracle文件夹完整拷贝到 D:\tools\oracle11g\Administrator\oradata\目录下。

2) 将D:\数据库备份\oracle11g\Administrator\product\11.2.0\dbhome_1\database 目录下文件拷贝到 D:\tools\oracle11g\Administrator\product\11.2.0\dbhome_1\database

3) 将D:\数据库备份\oracle11g\Administrator\product\11.2.0\dbhome_1\network\admin 目录下文件拷贝到 D:\tools\oracle11g\Administrator\product\11.2.0\dbhome_1\network\admin下,注意修改文件里的HOST值

 

admin 文件夹下的文件都看看,如果和现在的主机名(IP)不一样,都改一下。

六、复制控制文件

把D:\数据库备份\oracle11g\Administrator\flash_recovery_area\sd下的CONTROL02.CTL(这个文件和用户有关)文件copy到新安装的对应目录下(可把新的进行重命名,以备用。相信你在做上面的操作前都已经做好备份了)。

七、重新启动停止的oracle服务。

OK,你的数据已经还原好了。







以上是关于oracle表空间的还原的主要内容,如果未能解决你的问题,请参考以下文章

oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库

Oracle dmp文件导入(还原)到不同的表空间和不同的用户下

用友nc5.7 linux 中oracle创建表空间问题

oracle中怎样把表、表空间导入或导出?

ORACLE RMAN备份及还原(转)

Oracle实验六—表空间与数据文件管理