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、完成后,登录 导出文件。可在其他库上进行数据还原
针对此次还原,还是预防为主,定期进行异地备份,数据库迁移前再备份。遇事不要慌,找补救措施,寻找解决方案。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App