冰糖葫芦抹辣椒

Oracle通过数据文件进行 数据恢复

由于沟通问题,导致数据库迁移过程中,目标服务器中的数据库被卸载,顶替。万幸的是,迁移数据库的技术人员,没有把数据文件删除,还有机会对数据进行恢复。

数据库是Oracle11G 版本是11.0.2.4 ,

数据库恢复前,保证数据库版本一致,这样能减少很多麻烦,一开始我这边的数据库用的是11.0.2.0,导致数据库还原工作进行的到一半的时候,还原失败。11.0.2.4的数据库安装文件、补丁还不好找,耽误很长时间。

安装过程中 出现 权限不足的问题,根据提示内容进行问题处理。本文主要过程参考他人工作,过程中的遇到的各种问题进行汇总,以备后来人参考

下面进行数据库的还原工作

1、装相同的Oracle 11g数据库并创建一个与要恢复的数据库相同的实例;  版本要完全一致。

2,以sysdba身份登录sqlplus;

>>sqlplus /nolog;

>>conn / as sysdba;

3、查询版本号、字符集,在此进行查询,主要是确定版本号和源数据库一致。能确定一致,可省略这一步

select * from v$version;  

select userenv('language') from dual;

4、对控制文件进行备份;备份控件文件到trace目录的trace文件;

>> show parameter dump_dest

查看trace目录

>>alter database backup controlfile to trace;

备份trace文件

找到oracle的安装目录:~\app\Administrator\diag\rdbms\orcl\orcl\trace文件夹下,按修改时间降序,找到最近的trace文件。备份好。

5、停止数据库实例;

>>shutdown immediate

6、备份~\app\Administrator\oradata\orcl实例目录下的所有文件,接着将该实例目录下的所有文件删除,把需恢复的数据库的orcl实例目录下的所有文件拷贝至此目录下,存储在其它位置的表空间数据文件也需要拷贝到对应位置或者也可以放到orcl实例目录下。(重建控制文件可以更改表空间数据文件的存储路径)。理论上 只拷贝DBF文件就行

7、以sysdba进入并执行startup nomount。把数据库启动到nomount状态。

>>startup nomount

8、从备份出来trace文件中拷贝CREATE CONTROLFILE部分语句来重建控制文件:

 

 

Log文件文件大小要和实际文件一致;

DATAFILE应根据实际情况增删表空间数据文件记录,别忘了添加源数据库文件、最后一个数据库文件,不要加‘,’。

9、>>recover database;

此处会报错,基本不用管

10、增加临时表空间

ALTER TABLESPACE &tablespace_name ADD DATAFILE 'TEMP01.DBF' SIZE 2G;

11、>>alter database open;

第10、11顺序忘记了,执行看结果就行,没有任何错误,这个顺序是对的,有错误 10 11进行颠倒

 

12、恢复完成,登录数据库进行测试。

 

第13步,可不做

13、完成后,登录 导出文件。可在其他库上进行数据还原

 

针对此次还原,还是预防为主,定期进行异地备份,数据库迁移前再备份。遇事不要慌,找补救措施,寻找解决方案。

 

posted on 2022-03-15 13:59  冰糖葫芦抹辣椒  阅读(2423)  评论(0编辑  收藏  举报

导航