冷备份,手动还原到新建实例

本文以通过对其他数据库的冷备份,手动还原到新建MYTEST数据库为例:

1.冷备份orcl数据库文件

服务停止前执行下面的命令,对控制文件生成脚本进行备份。

SQL>alter database backup controlfile to trace;

在d:/oracle/product/10.2.0/admin/orcl/udump/下面找到最新的ora文件,之后要用到。

停止orcl数据库的服务,将orcl的下列文件备份到其他目录

 

D:/oracle/product/10.2.0/oradata/orcl/数据库文件(不用备份控制文件)

D:/oracle/product/10.2.0/admin/orcl/pfile/初期化文件

 

2.建相MYTEST数据库对应的目录

D:/oracle/product/10.2.0/admin/MYTEST/adump

D:/oracle/product/10.2.0/admin/MYTEST/bdump

D:/oracle/product/10.2.0/admin/MYTEST/cdump

D:/oracle/product/10.2.0/admin/MYTEST/pdump

D:/oracle/product/10.2.0/admin/MYTEST/pfile

D:/oracle/product/10.2.0/admin/MYTEST/udump

D:/oracle/product/10.2.0/flash_recovery_area/MYTEST

D:/oracle/product/10.2.0/oradata/MYTEST

并将前面备份的数据库文件复制到D:/oracle/product/10.2.0/oradata/MYTEST。

 

3. 之前备份的pfile文件,作相应修改(将orcl字样修改为MYTEST,含文件路径),并将文件保存到下面位置,文件名为init<SID>.ora。

D:/oracle/product/10.2.0/db_1/database/initMYTEST.ora

pfile或spfile相关内容:

http://blog.csdn.net/jsjzzh/archive/2011/02/02/6171935.aspx

 

4.手动建立密码文件(这是sys的密码)

orapwd file=D:/oracle/product/10.2.0/db_1/database/PWDMYTEST.ora password=test entries=10

密码文件相关内容:

http://blog.csdn.net/jsjzzh/archive/2011/02/02/6171912.aspx

 

5.通过oradim.exe命令,在服务里生成一个新实例MYTEST管理服务,启动方式为手动。

D:/oracle/product/10.2.0/db_1/BIN/oradim -new -sid MYTEST -startmode manual

 

6.启动数据库到nomount模式

D:/>set ORACLE_SID=MYTEST

D:/>sqlplus sys/test as sysdba

SQL>startup nomount

 

7.从建控制文件(关键步骤)

在之前备份的控制文件生成脚本中取得控制文件做成命令,将原orcl改为MYTEST执行。

SQL>CREATE CONTROLFILE REUSE DATABASE "MYTEST" NORESETLOGS  ARCHIVELOG

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 100

    MAXINSTANCES 8

    MAXLOGHISTORY 292

LOGFILE

  GROUP 1 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/REDO01.LOG'  SIZE 50M,

  GROUP 2 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/REDO02.LOG'  SIZE 50M,

  GROUP 3 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/REDO03.LOG'  SIZE 50M

-- STANDBY LOGFILE

DATAFILE

  'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/SYSTEM01.DBF',

  'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/UNDOTBS01.DBF',

  'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/SYSAUX01.DBF',

  'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/USERS01.DBF',

  'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/EXAMPLE01.DBF'

CHARACTER SET JA16SJIS;

 

ORA-01503: create controlfile

ORA-01161: database name in file header does not match given name of

ORA-01110: ………………………………………..

 

因为是从建控制文件,不能使用REUSE选项,将REUSE修改为SET,NORESETLOGS修改为RESETLOGS再执行(SET DATABASE指定后可以变更数据库名,且必须指定RESETLOGS选项,忽视LOGFILE文件中的内容)。

SQL>CREATE CONTROLFILE SET DATABASE "MYTEST" RESETLOGS  ARCHIVELOG

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 100

    MAXINSTANCES 8

    MAXLOGHISTORY 292

LOGFILE

  GROUP 1 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/REDO01.LOG'  SIZE 50M,

  GROUP 2 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/REDO02.LOG'  SIZE 50M,

  GROUP 3 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/REDO03.LOG'  SIZE 50M

-- STANDBY LOGFILE

DATAFILE

  'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/SYSTEM01.DBF',

  'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/UNDOTBS01.DBF',

  'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/SYSAUX01.DBF',

  'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/USERS01.DBF',

  'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYTEST/EXAMPLE01.DBF'

CHARACTER SET JA16SJIS;

 

成功!

 

 

注意:本人是日文系统CHARACTER SET请根据实际情况修改。

 

 

SQL>shutdown immediate

SQL>startup mount

SQL> alter database open

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open.

 

SQL>alter database open resetlogs;

 

成功!

确认与orcl库内容是一致的。

 

另外,通过oradim.exe命令建立新实例时,没有设定服务启动时实例也同时启动。可以使用startmode选项,如果希望随系统启动服务,使用srvcstart 选项

oradim -edit -sid ORACLE_SID -startmode auto -srvcstart system

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值