场 景:客户的服务器是在虚拟机上,结果虚拟机的服务器的硬盘坏掉了。硬盘换掉后,系统成功恢复出来,但是登录虚拟机后,数据库无法启动。
解决方案:通过冷恢复将数据库还原。在自己的电脑上搭建一个和虚拟机系统一致的环境,包括操作系统、数据库版本、数据库安装目录都和虚拟机一致;
再将虚拟机的数据文件路径中的文件全部覆盖到新系统的相同目录中;最后通过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文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现