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: oolsoracle11gAdministrator

备份oracle目录,   D:数据库备份oracle11gAdministrator

步骤:

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

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

三、创建成功后,会在D: oolsoracle11gAdministratororadata 下出现与ORACLE_SID同名的文件夹sd ,即D: oolsoracle11gAdministratororadatasd

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

     1)OracleOraDb11g_home1TNSListener

     2)OracleServiceSD

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

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

     1)把D:数据库备份oracle11gAdministratororadata目录下的oracle文件夹完整拷贝到 D: oolsoracle11gAdministratororadata目录下。

     2) 将D:数据库备份oracle11gAdministratorproduct11.2.0dbhome_1database 目录下文件拷贝到           D: oolsoracle11gAdministratorproduct11.2.0dbhome_1database

     3) 将D:数据库备份oracle11gAdministratorproduct11.2.0dbhome_1 etworkadmin 目录下文件拷贝到 D: oolsoracle11gAdministratorproduct11.2.0dbhome_1 etworkadmin下,注意修改文件里的HOST值

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

六、复制控制文件

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

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

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

原文地址:https://www.cnblogs.com/ybbky/p/6248916.html