admin管理员组

文章数量:1582038

使用oradata下的文件恢复oracle数据库

起因

昨天刚到了块固态,一时激动直接安上去,然后重装系统了,装完才反应过来忘了备份数据库。所以以后做任何事情之前要三思而后行,一定切记备份

解决过程

当时在网上找了好多办法,看到有一个比较简单的办法, 就是只需要将oracle安装目录下的E:\app\guoqk\oradata(我在E盘下安装的)下的文件备份就行,于是就将该目录下的orcl(我的实例名)文件夹备份,其余的都删了,按照他的方法重装oracle,然后直接替换,发现不行,链接如下:https://blog.csdn/chenwei160803/article/details/7189935,具体什么原因不太清楚。

当时已经把其他文件都删了,只剩下那一个数据文件了,所以只能再网上找找类似的其他办法,找了一个比较符合我情况的,链接如下:https://blog.csdn/csdn_5200/article/details/88567572.

前提
在原来的oracle安装目录重新安装相同版本的oracle

大致思路
用一个正常的实例创建控制文件,并根据备份好的orcl文件恢复数据库

操作(与上文略有出入)
按他的步骤操作
1.cmd进入控制台
2.输入:sqlplus/nolog
3.用系统管理员登录:conn system/000000 as sysdba;
4.关闭数据库:shutdown abort;
5.启动数据库:startup nomount;
6.这里,先别着急替换E:\app\guoqk\oradata(我在E盘下安装的)里的文件,先利用这个正常的实例orcl生成*.trc文件:
敲入命令:alter database backup controlfile to trace;
在oracle 安装目录下找到trc文件,E:\app\guoqk\diag\rdbms\orcl\orcl\trace(我在E盘下安装的),按时间排序找到最新的trc文件,复制一份到E盘目录下,改名为temp.txt
7.打开temp.txt,删掉多余部分,只保留所需的,如下图所示
这是我的temp.txt文件,修改完毕保存关闭;
8.用备份的orcl文件去替换E:\app\guoqk\oradata(我在E盘下安装的)下的orcl文件;
9.输入命令执行控制文件:@E:\temp.txt;
10.以mount状态启动数据库:alter database mount;我按照这个命令执行失败了,换了种办法,先关闭:shutdown abort;再启动:startup mount;
11.恢复数据库:recover database;失败了
12.输入命令:recover database using backup controlfile until cancel;
在下方输入日志文件路径,E:\app\guoqk\oradata\orcl\redo03.log,总共有三个,如果还是报错,重新换一个,直到提示完成介质恢复为止;
13. 输入:alter database open resetlogs;
14. 输入:shutdown immediate;
15. 输入:startup;到这里就大功告成了。

本文标签: 文件夹数据库文件ORACLEoradata