admin管理员组

文章数量:1122911

重装系统后Oracle数据库恢复的方法

    • 方法(一)
      • 2、oradata目录的datafile,tempfile,logfile
        • 关于控制文件错误导致的问题

在开发机器上经常会遇到重装系统的问题,重装之前如果ORACLE没有及时备份的话重装之后就纠结了,数据还原很头疼。各种娘中只能找到一些ORACLE安装与重装系统前目录相同的解决办法,目录不同就没招了。我用的是oracle11G。老版的应该相似。经过我的尝试,找到了几个关键点,现在分享出来。

方法(一)

  1. 关闭数据库
    win + R 输入 sql plus \nolog
SQL> conn / as sysdba 
已连接
SQL> shutdown immediate;

数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
    • 手动关闭oracle所有服务

      复制旧的Oracle整个目录 D:\app\ 到 D:\app_old\ (重装系统或重装数据库之前操作)
      新安装的Oracle整个目录备份 D:\app\ 到 D:\app_new\ (安全起见)
  1. 覆盖
    将D:\app_old\administrator目录下的admin、cfgtoollogs、diag、flash_recover_area、oradata 覆盖到D:\app\administrator下。

  2. 控制文件CONTROL01.CTL
    oracle数据库的控件文件有两个,一个是在oradata\orcl中,名称为CONTROL01.CTL
    另外一个是在flash_recovery_area\orcl,名称为CONTROL01.CTL
    控制文件也可能是CONTROL02.CTL 或CONTROL03.CTL

2、oradata目录的datafile,tempfile,logfile

原数据库中的文件路径如果和重装后的路径不一致(重装之后分区没变,但是盘符D盘变成了E盘,有其他东西又不方便改,就只能用D了,所以需要改一下数据文件的路径),将这些路径全部修改之后就可以了,具体步骤如下:

  • 启动各项oracle服务
  • 用sqlplus /nolog命令进入oracle命令符
  • 用connect sys/change_on_install as sysdba;命令获得系统管理权限并登录。
  • 用select instance_name from v$instance;确认当前的数据库实例是否正确,如果不是oradb需要使用 set oracle_sid来修改默认的oracle实例。
  • 将D:\app\administrator\oradata\orcl\CONTROL02.CTL控制文件复制到D:\app\administrator\flash_recovery_area\orcl中,替换目录中原有的控制文件,注意:名称不一样的话改一下名字。
  • 使用startup nomount用无装载模式启动数据库。
  • 设置数据库为装载模式:alter database mount;
  • 查看数据文件清单:select name from v$datafile;
    会看到如下结果:
E:\APP\Administrator\ORADATA\ORADB\SYSTEM01.DBF
E:\APP\Administrator\ORADATA\ORADB\SYSAUX01.DBF
E:\APP\Administrator\ORADATA\ORADB\UNDOTBS01.DBF
E:\APP\Administrator\ORADATA\ORADB\USERS01.DBF
E:\APP\Administrator\ORADATA\ORADB\SDMS_DATA01.DBF
  • 修改数据文件路径,依次执行如下命令:
SQL> alter database rename file 'E:\app\Administrator\oradata\orcl\SYSTEM01.DBF' to 'D:\app\Administrator\oradata\orclSYSTEM01.DBF' ;
  • 查看临时文件清单:select name from v$tempfile;
SQL> alter database rename file 'E:\app\Administrator\oradata\orcl\TEMP01.DBF' to 'D:\app\Administrator\oradata\orcl\TEMP01.DBF' ;
  • 查看日志文件清单:select * from v l o g f i l e ; s e l e c t ∗ f r o m v logfile; select * from v logfile;selectfromvlogfile;
SQL> alter database rename file 'E:\app\Administrator\oradata\orcl\REDO03.LOG' to'D:\app\Administrator\oradata\orcl\REDO03.LOG';
  • 启动数据库:alter database open;
SQL> alter database open;

好了,现在可以用客户端连接这个数据库了。

关于控制文件错误导致的问题

控制文件的错误,请检查警报日志中获得更多信息
通过:/app/administrator/diag/rdbms/ora11g/ora11g/alert/log.xml文件中找出实例启动日志

参考资料:

https://wwwblogs/cnsend/p/13783104.html
https://wwwblogs/sparkbj/articles/6146247.html

本文标签: 重装系统数据库方法Oracle