oracle重建实例_ORACLE数据库冷备份恢复

由于数据库意外死机,造成数据库无法使用,且数据没有备份,只能依赖于原有文件的留下来的文件目录,记下修复的过程,希望能帮到其他人。

数据库无法启动原因未知,开启实例lbora会造成服务器直接死机。

本次修复的数据库版本为oracle 10g 10.2.0,按步骤应当同样可以用于oracle 11g的修复。

一.重装数据库

由于一开机就死机,所以在同事的帮助下进入服务器安全模式,然后正常开启服务器。

第一步卸载数据库

直接使用oracle自带的卸载会造成数据库无法删除干净的情况,数据库自带的卸载截图如下。

所以选择另一种删除方式。

75551f1c4860a3e0451dc612bea27b91.png

彻底删除的步骤如下:

1.关闭oracle所有的服务。可以在windows的服务管理器中关闭;

9fd279bf3dbf6ab78ebe541b2a33b150.png

2.打开注册表:regedit 打开路径: <找注册表 :开始->运行->regedit>

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices

删除该路径下的所有以oracle开始的服务名称,这个键是标识Oracle在windows下注册的各种服务。

532e5deb7ccc934ec8fcb6a34957cad8.png

3.打开注册表,找到路径:

HKEY_LOCAL_MACHINESOFTWAREORACLE

删除该oracle目录,该目录下注册着Oracle数据库的软件安装信息。

e85807507bc1d812cc203e0bf0203378.png

4.删除注册的oracle事件日志,打开注册表

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplication

删除注册表的以oracle开头的所有项目。

5b0ff1cd8fdee113781d81d07849cfa7.png

5.删除环境变量path中关于oracle的内容。

鼠标右键右单击“我的电脑-->属性-->高级-->环境变量-->PATH 变量。

删除Oracle在该值中的内容。我这里除了path在perl5lib中也有数据库的路径需要删除

710a56b3e7ad5a16c002f55ae07cab43.png

6.重新启动操作系统。

以上1~5个步骤操作完毕后,重新启动操作系统。

7.重启操作系统后各种Oracle相关的进程都不会加载了。这时更改Oracle文件名,用来代替删除操作。(Oracle_Home指Oracle程序的安装目录),这里我将原来的文件命名为oracle1

25f2c432e15628a43e6e901029f775dc.png
这里的oracle为后来安装好的数据库目录

8.删除C:Program Files下oracle目录。

(该目录视Oracle安装所在路径而定)

9.删除开始菜单下oracle项,如:

C:Documents and SettingsAll Users「开始」菜单程序Oracle - Ora10g

不同的安装这个目录稍有不同。

如果不删除开始菜单下的Oracle相关菜单目录,没关系,这个不影响再次安装Oracle.当再次安装Oracle时,该菜单会被替换。

至此,Windows平台下Oracle就彻底卸载了。

此处参考了文章:

CSDN-专业IT技术社区-登录​blog.csdn.net

第二步安装数据库

打开oracle安装文件,双击setup.exe一步步安装即可。

d178d3e36edbad582bcf0f692b79d5a1.png

第三步恢复数据

一.建立与之前数据库服务名相同的数据库

在开始目录的oracle目录下从中找到Database Configuration Assistant

90cc5fd96c36fb1495e258cecf35efff.png

点击进入

注意是需要恢复的数据库名称,其他步骤点击默认,创建数据库。这里我需要恢复LBORA数据库就建立新的LBORA数据库。

35ce00dc216ce164fe43991f91cdd686.png

二.替换源文件的数据文件

1.关闭服务器中的Oracle服务

96738ff7b507ed1babd88ed42f9df17a.png

2.替换源文件

从之前备份的oracle1中取出

25f2c432e15628a43e6e901029f775dc.png

(1)文件夹:

admin;

oradata(datafile, controlfile,redo【注:数据文件, 控制文件,redo】);

flash_recovery_area三个文件夹。

(2)db_1下的内容

database(PWD开头的文件);

dbs(sp开头的文件);

NETWORK/ADMIN(listener.ora、tnsnames.ora)。

替换oracle文件夹中的相同文件

3.开启服务进行恢复

(1)打开sqlplus,并将服务设置为需要回复的实例名称

C:Documents and SettingsAdministrator>cd D:oracleproduct10.2.0db_1

C:Documents and SettingsAdministrator>D:

D:oracleproduct10.2.0db_1>set oracle_sid=lbora

D:oracleproduct10.2.0db_1>oradim -startup -sid lbora

D:oracleproduct10.2.0db_1>sqlplus /nolog

(2)连接数据库

SQL> conn 用户名/密码 as sysdba 参考SQL> conn sys/lbora as sysdba

(3)创建控制文件

创建一个跟踪文件:alter database backup controlfile to trace as 'D:/ccc.TXT';

取出ccc.TXT中下图所示语句,新建一个txt文件,写入txt文件中,并重命名为lbora.sql控制文件,注意datafile下面的路径是源文件oracle中oradata/lbora下的数据文件,除了TEMP开头的文件,CONTROL开头的文件以及REDO开头的文件,需要将其他文件的路径填入datafile下。

1e1c894b3fef56a4d6ad89d2cc110950.png

将lbora.sql文件放入D:oracleproduct10.2.0db_1文件夹下。

802c1dc479a397fda44f83d529fbf5a1.png

接下来执行重建过程

备注:需要在startup nomount下进行重建

SQL>shutdown immediate;
已经卸载数据库。
ORACLE 例程已经关闭
SQL> startup nomount;
ORACLE 例程已经启动。
SQL> @lbora.sql
控制文件已创建。
SQL>shutdown immediate;
SQL>startup;
SQL>alter database open;

如果出现错误ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
运行SQL>alter database open resetlogs;
第 1 行出现错误:
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:ORACLEPRODUCT10.2.0ORADATALBORASYSTEM01.DBF'
解决方法:
SQL> recover database using backup controlfile;
ORA-00279: 更改 19444901492 (在 03/20/2020 13:59:27 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREALBORAARCHIVELOG2020_03_26O1_MF_1_66140_%U_.ARC
ORA-00280: 更改 19444901492 (用于线程 1) 在序列 #66140 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:oracleproduct10.2.0oradataLBORAREDO01.LOG
已应用的日志。
完成介质恢复。

其中 指定日志: {<RET>=suggested | filename | AUTO | CANCEL}下

需要输入LBORA数据库日志所在路径
D:oracleproduct10.2.0oradataLBORAREDO01.LOG

(如果失败,则更换日志文件REDO02.LOG或者REDO03.LOG)

最后执行SQL>alter database open resetlogs;打开数据库,数据库修复完成。

由于重建控制文件时没有添加临时表空间文件,所以需要添加,命令如下

SQL> alter tablespace TEMP add tempfile 'D:oracleproduct10.2.0oradataLBORA

TEMP11.DBF' size 1024M reuse;

至此,已经完成了全部的修复工作,数据库能够正常使用了。

问题解析:

一.打开的是空闲例程:

出现SQL>conn sys/lbora as sysdba

已连接到空闲例程。的问题

是因为oracle安装目录下的admin中缺少文件 ,在相关实例下必须包含图片中所包含的文件,才能正常连接。

7439ae2798d49eda3e0c54c4ce6848a6.png

二.只恢复了部分数据库问题

是由于重建控制文件的过程中datafile缺少了文件,需要在替换datafile下所有和系统有关的文件后才能进行操作,否则一直会提示创建错误。替换完成后再执行sql文件。

参考网址:https://www.cnblogs.com/arxive/p/9437152.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值