经验总结:一次Oracle数据库冷备份恢复过程

  近日,我想把oracle数据库从我的电脑上迁移到机房的电脑上,一开始采用dmp/imp方式,但是发现需要导出很多用户,太麻烦。所以决定采用冷备份/冷恢复的方式。
  过程如下:
  通过v$controlfile查看控制文件,通过v$logfile查看重做日志文件,通过V$DATAFILE查看数据文件,发现他们都处于同一文件夹中i:\oracle\oradata\test中,索性都复制到另一台机器的e:\oracle\oradata\test中,复制之前shutdown系统。还复制了inittest.ora后来发现他指向另一个init.ora,又复制了这个init.ora,还复制了一个口令文件PWDtest.ora到机房电脑的相应位置。startup后,发现无法运行,我想应该是两个oracle安装路径不同的原因,首先修改了init.ora中的控制文件的路径,还是不行,我想应该修改控制文件中的数据文件路径信息,如何修改呢?网上一顿查找,终于找到了如下方法:
  首先,在原电脑上:
  1. 备份数据库中的数据,以防不测。
  2. svrmgrl
  3. svrmgrl>connect internal/oracle
  4. svrmgrl>alter database backup controlfile to trace; 备份控制文件
  5. 在/home/oracle//admin/ora7/udump下可找到最新生成的TRACE文件,假设为ora_15269.trc,此文件就包含了当前控制文件的参数及生成语法。
  6. 提取ora_15269.trc中有关控制文件生成的语句另存为creatctl.sql。7. 修改creatctl.sql中的路径信息;8.然后,复制到目标电脑上,并且在目标电脑上9. svrmgrl
  10. svrmgrl>connect internal
  11. svrmgrl>shutdown immediate
  12. svrmgrl>@creatctl.sql
  13. svrmgrl>alter database open;数据库迁移成功.]
  总结:
  冷备份需要在oracle shutdown的情况下,拷贝如下文件:1.数据文件;2.控制文件;3。日志文件;4。init数据库实例名.ora文件,及其内部指向的init.ora文件;5 口令文件PWD数据库实例名.ora;然后,安装oracle,实例名和以前相同,安装路径等最好也相同,shutdown,拷贝上述文件到相应位置,如果安装位置和以前不同,需要修改init*.ora,和控制文件中的路径信息。