场 景:客户的服务器是在虚拟机上,结果虚拟机的服务器的硬盘坏掉了。硬盘换掉后,系统成功恢复出来,但是登录虚拟机后,数据库无法启动。
解决方案:通过冷恢复将数据库还原。在自己的电脑上搭建一个和虚拟机系统一致的环境,包括操作系统、数据库版本、数据库安装目录都和虚拟机一致;
再将虚拟机的数据文件路径中的文件全部覆盖到新系统的相同目录中;最后通过sqlplus命令启动数据库。
操作步骤:
数据库A无法启动,将数据库A的数据冷恢复到数据库B。
操作步骤如下:
1>创建数据库B,操作系统、数据库版本、安装目录都必须跟数据库A的环境一致。
2>关闭数据库B,按照如下操作关闭数据库B。
3>将数据库A中D:\oracle\ora92\database和D:\oracle\oradata\tempo文件夹中的数据拷贝出来,覆盖到数据库B对应的目录中。
D:\oracle\oradata\tempo中的“tempo"是数据库名,此目录是安装数据库的时候指定的数据文件的路径,里面保存的是控制文件、日志文件、数据文件。
4>启动数据库,按照下图启动数据库。如果未报错则可以正常登录数据库了。如果报错,则查看日志文件定位错误。
5>启动数据库报错,执行alter database open,如果报错无法标识数据文件,错误如下图。
- ORA-01157: 无法标识/锁定数据文件
- ORA-01110: 数据文件 2: D:\oracle\oradata\tempo\UNDOTBS01.DBF;
处理步骤
5.1>执行操作”alter database datafile 'D:\oracle\oradata\tempo\UNDOTBS01.DBF' offline drop; “。
5.2>执行操作"alter database open; "。
重复执行5.1和5.2,直到操作5.2不报错为止。
注释:操作5.1中的DBF文件为执行5.2报错中提示的DBF文件。