ORACLE重装之后恢复数据库,相当于sqlserver的附加数据库
在开发机器上经常会遇到重装系统的问题,重装之前如果ORACLE没有及时备份的话重装之后就纠结了,数据还原很头疼。
各种娘中只能找到一些ORACLE安装与重装系统前目录相同的解决办法,目录不同就没招了。
我用的是oracle11G。老版的应该相似。
经过我的尝试,找到了几个关键点,现在分享出来。
1、控制文件CONTROL01.CTL
oracle数据库的控件文件有两个,一个是在oradata\oradb中,名称为CONTROL01.CTL
另外一个是在flash_recovery_area\SDMS_DEMO,名称为CONTROL01.CTL
控件文件也可能是CONTROL02.CTL 或CONTROL03.CTL
2、控制文件中的datafile,tempfile,logfile
原数据库中的文件路径如果和重装后的路径不一致,需要将这些路径全部修改之后就可以了,具体步骤如下:
一:重新创建oracle数据库后手动关闭oracle所有服务
二:将oradata中新创建的数据库目录改名,d:\app\user\oradata\oradb,改为d:\app\user\oradata\oradb_new
三:将原来的数据库目录复制到该目录下,复制后的结果是oradata中有d:\app\user\oradata\oradb_new和d:\app\user\oradata\oradb两个目录
d:\app\user\oradata\oradb是重装之前数据库的数据文件夹。
四:启动各项oracle服务
五:用sqlplus /nolog命令进入oracle命令符
六:用connect sys/change_on_install as sysdba;命令获得系统管理权限并登录。
七:用select instance_name from v$instance;确认当前的数据库实例是否正确,如果不是oradb需要使用 set oracle_sid来修改默认的oracle实例(没记错的话应该是这个命令可以问度娘查一下)。
八:将d:\app\user\oradata\oradb\CONTROL02.CTL控制文件复制到d:\app\user\flash_recovery_area\oradb中,替换目录中原有的控制文件,注意:名称不一样的话改一下名字。
九:使用startup nomount用无装载模式启动数据库。
十: 设置数据库为装载模式:alter database mount;
十一:查看数据文件清单:select name from v$datafile;
查看临时文件清单:select name from v$tempfile;
查看日志文件清单:select * from v$logfile;
会看到如下结果:
E:\APP\USER\ORADATA\ORADB\SYSTEM01.DBF
E:\APP\USER\ORADATA\ORADB\SYSAUX01.DBF
E:\APP\USER\ORADATA\ORADB\UNDOTBS01.DBF
E:\APP\USER\ORADATA\ORADB\USERS01.DBF
E:\APP\USER\ORADATA\ORADB\SDMS_DATA01.DBF
十二:修改数据文件路径,依次执行如下命令:
SQL> alter database rename file 'E:\APP\USER\ORADATA\ORADB\SYSTEM01.DBF' to 'D:\APP\USER\ORADATA\ORADB\SYSTEM01.DBF'
注意日志文件修改的时候有点纠结 文件名是redo01,因为oracle默认为大写,我看成了red001,一直修改不成,另外一个,如果用select * from v$logfile;看到的只有一条日志文件,建议把原数据库中的几个都修改一下。
SQL> alter database rename file 'E:\APP\USER\ORADATA\ORADB\REDO03.LOG' to'D:\APP\USER\ORADATA\ORADB\REDO03.LOG';
十三:启动数据库:alter database open;
好了,现在可以用客户端连接这个数据库了。
转自:http://www.cnblogs.com/hawkon/p/3955913.html
ORACLE重装之后恢复数据库,相当于sqlserver的附加数据库的更多相关文章
- MS SQLServer 批量附加数据库 分类: SQL Server 数据库 2015-07-13 11:12 30人阅读 评论(0) 收藏
************************************************************ * 标题:MS SQLServer 批量附加数据库 * 说明:请根据下面的注释 ...
- SQLServer之附加数据库
附加数据库注意事项 必须首先分离数据库. 尝试附加未分离的数据库将返回错误. 附加数据库时,所有数据文件(MDF 文件和 LDF 文件)都必须可用. 如果任何数据文件的路径不同于首次创建数据库或上次附 ...
- MS SQLServer 批量附加数据库
/************************************************************ * 标题:MS SQLServer 批量附加数据库 * 说明:请根据下面的注 ...
- Sqlserver 2012附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
环境: Win10系统 SQLSERver 2012 情况: 使用混合登陆方式,sa账户密码正确登陆后,附加.mdf文件出现此错误. 尝试解决方法一:使用管理员运行SQLSERver2012,sa账户 ...
- Sqlserver直接附加数据库和设置sa密码
1.exec sp_attach_db 'test','E:\db\test.mdf','E:\db\test_log.ldf' 2.sp_password Null,'123','sa' 推荐一个微 ...
- 【SQLServer】附加数据库失败
一个参考:https://blog.csdn.net/zjx86320/article/details/25562361 如果类似Administrator.Everyone等都依照网上的权限改过之后 ...
- sqlserver附加数据库时,无法打开物理文件 "xx.mdf"。操作系统错误 5:"5
sqlserver在附加数据库时,提示无法打开物理文件 "xx.mdf".操作系统错误 5:"5 此时可能你是用window验证方式登陆数据库的? 如果是这样,断开连接, ...
- sqlserver附加数据库时出错。有关详细信息,请单击“消息”列中的超链接
在SqlServer中附加数据库时,有时会发生下面的错误. 解决 :可能的问题是放置附加数据库的文件夹的权限问题.如下解决.点击放置附加数据库的文件夹-->右键-->属性 权限要设置为完全 ...
- SqlServer中用SQL语句附加数据库及修改数据库逻辑文件名
--查询数据库逻辑文件名 USE 数据库名 SELECT FILE_NAME(1) --查询数据库逻辑文件名(日志) USE 数据库名 SELECT FILE_NAME(2) --附加数据库 sp_a ...
随机推荐
- IDEA的十大快捷键
Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论.每个人都有自己的最爱,想排出个理想的榜单还真是困难.以前也整理过Intellij的快捷键,这次就按 ...
- [Oracle][RAC]Oracle RAC环境里打OCW上的个别Patch,然后Rollback,发现OCW也被Rollback掉了
对于Oracle RAC来说,存在着DB层面的Patch,也存在着GI层面的Patch. 本文介绍的是,GI层面,打Patch----> rollback 的动作之后,原来的OCW被Rollba ...
- maven win 安装 与 IntelliJ IDEA 配置Maven【2018-11-14最新最有姿势攻略】
[博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] http ...
- @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
在学习boot 项目的时候 ,发现在启动类中有一个这个的注解 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) ...
- C语言打印杨辉三角(2种方法)
杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来. 在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和.这就是我们用C语言写杨辉三角的关键之一. ...
- Python编程--类的分析
一.类的概念 python是面向对象的编程语言,详细来说,我们把一类相同的事物叫做类,其中用相同的属性(其实就是变量描述),里面封装了相同的方法,比如:汽车是一个类,它包括价格.品牌等属性.那么我们如 ...
- CSS旋转缩放
<style type="text/css"> figure{ float: left;}.test1{ border-radius: 0px; height: 200 ...
- xpath提取到的中文乱码时的解决办法
βҳ转换为正常的中文:
- flex 1与flex auto
flex意为"弹性布局" 这次主要探究的是flex:1与flex:auto的区别,flex是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 ...
- spring(一、原理、IOC、AOP、依赖注入)
1.spring原理 内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建.调用对象,Spring就是在运 ...