oracle 11g数据库冷备与恢复

版本:v1.0

作者:  梁凯亮

E-mail[email protected]

QQ:37547134

日期:20012-0627

实验环境

硬件环境:x86_64位的虚拟机两台

操作系统:rhel 5.6 64

oracle版本:oracle 11g企业版11.0.2.1 x86_64

实验目标

将现有的数据库通过冷备份,在新装操作系统上进行还原。

实验步骤

1.        首先shutdown immediate 停止要冷备的数据库。

       SQL>shutdown immediate

      

2.        备份oralce实例的启动文件。

在备份前我将不能编辑的spfile文件用命令生成了一个可以编辑的pfile文件。

       SQL>create pfile from spfile;

生成的路径和spfile在一个目录下。

我的oracle启动文件的位置:/u01/oracle/database/db_1/dbs

反正也不大我将这个文件都备份了。

 

3.        导出创建controlfile的脚本。

先启动oracle数据库实例。

       SQL >startup

导出创建controlfile脚本到trace文件。

       SQL> alter database backup controlfile to trace;

我的trace目录是:/u01/oracle/database/diag/rdbms/orcl/orcl/trace

查看alert_orcl.log日志最后

       alter database backup controlfile to trace 
       Backup controlfile written to trace file        /u01/oracle/database/diag/rdbms/orcl/orcl/trace/orcl_ora_4820.trc 
       Completed: alter database backup controlfile to trace

 

查看 orcl_ora_4820.trc

STARTUP NOMOUNT 
CREATE CONTROLFILE REUSE DATABASE "OEM" RESETLOGS  NOARCHIVELOG 
    MAXLOGFILES 16 
    MAXLOGMEMBERS 3 
    MAXDATAFILES 100 
    MAXINSTANCES 8 
    MAXLOGHISTORY 292 
LOGFILE 
  GROUP 1 ‘D:\APP\SHUNZI\ORADATA\OEM\REDO01.LOG’  SIZE 50M BLOCKSIZE 512, 
  GROUP 2 ‘D:\APP\SHUNZI\ORADATA\OEM\REDO02.LOG’  SIZE 50M BLOCKSIZE 512, 
  GROUP 3 ‘D:\APP\SHUNZI\ORADATA\OEM\REDO03.LOG’  SIZE 50M BLOCKSIZE 512 
– STANDBY LOGFILE 
DATAFILE 
  ‘D:\APP\SHUNZI\ORADATA\OEM\SYSTEM01.DBF’, 
  ‘D:\APP\SHUNZI\ORADATA\OEM\SYSAUX01.DBF’, 
  ‘D:\APP\SHUNZI\ORADATA\OEM\UNDOTBS01.DBF’, 
  ‘D:\APP\SHUNZI\ORADATA\OEM\USERS01.DBF’, 
  ‘D:\APP\SHUNZI\ORADATA\OEM\MGMT_ECM_DEPOT1.DBF’, 
  ‘D:\APP\SHUNZI\ORADATA\OEM\MGMT.DBF’, 
  ‘D:\APP\SHUNZI\ORADATA\OEM\MGMT_AD4J.DBF’ 
CHARACTER SET AL32UTF8

 

 这个就是在新的平台下创建controlfile的脚本,注意和要还原的oracle路径保持一直。

(以下是还原操作)

4.        initorcl.ora 还原。

我的位置在:/u01/oracle/database/db_1/dbs/

5.        将备份的数据文件还原到controlfile指定的位置。

我的位置在:

/u01/oracle/database/oradata/orcl/

6.        复制controlfile文件。

查看initorcl .ora文件找到如下:

*.control_files='/u01/oracle/database/oradata/orcl/control01.ctl','/u01/oracle/database/flash_recovery_area/orcl/control02.ctl'

看到两个controlfile文件,这两个文件必须都存在如果不存在复制一个就好了。

 

7.        创建不存在的文件夹

查看initorcl .ora文件找到如下:

*.audit_file_dest='/u01/oracle/database/admin/orcl/adump'

如果没有这个文件需要创建一个,并赋给oracle的权限。

 

8.        创建sys的密码

[oracle@vm0 dbs]$ orapwd file=/u01/oracle/database/db_1/dbs/orapworc password=oradba  force=y

 

9.        netca  创建数据库监听并启动

 

10.    启动oracle数据库

sqlplus /nolog

conn  sys/oradba as sysdba

 

如果不提示错误表示启动正常,还看一看以前的表和数据是否存在?

注意事项

1.        硬件的内存一定要一样,否则需要修改initorcl.ora中和内存相关的配置信息。

2.        注意将没有创建的文件夹创建好。

3.