使用rman复制数据库

来源:互联网 发布:淘宝店铺首页怎么全屏 编辑:程序博客网 时间:2024/05/01 10:28

--------------------------------------------

实验环境:windows + oracle 10.1.0.2.0

原数据库:ning[归档模式]  复制数据库:test

Author:NinGoo    2005-3-27

-------------------------------------------

 

 

在同一台server上使用rmanDuplicate Database创建复制数据库。

 

 

1.    创建新的instance

 

 

准备好相应的目录结构

E:/oracle/product/10.1.0/admin/test/bdump

E:/oracle/product/10.1.0/admin/test/cdump

E:/oracle/product/10.1.0/admin/test/create

E:/oracle/product/10.1.0/admin/test/pfile

E:/oracle/product/10.1.0/admin/test/scripts

E:/oracle/product/10.1.0/admin/test/udmp

 

 

创建参数文件inittest.ini(可使用原库的pfile进行修改),主要参数如下:

db_name=test

background_dump_dest=E:/oracle/product/10.1.0/admin/test/bdump

core_dump_dest=E:/oracle/product/10.1.0/admin/test/cdump

user_dump_dest=E:/oracle/product/10.1.0/admin/test/udump

control_files='E:/oracle/oradata/test/control01.ctl','E:/oracle/oradata/test /control02.ctl','E:/oracle/oradata/test /control03.ctl'

DB_FILE_NAME_CONVERT=('E:/oracle/oradata/ning','E:/oracle/oradata/test')

LOG_FILE_NAME_CONVERT=('E:/oracle/oradata/ning','E:/oracle/oradata/test')

置于E:/oracle/product/10.1.0/admin/test/pfile或者E:/oracle/product/10.1.0/db_1/database即可。

 

 

使用oradim创建新的instance

c:/>oradim -new -sid test

例程已创建。

 

 

使用orapwd创建password文件

c:/>orapwd file=E:/oracle/product/10.1.0/db_1/database/PWDtest.ora password=test entries=10

 

 

配置好监听和tnsnames,然后使用sqlplus测试连接

 

 

c:/>sqlplus /nolog

 

 

SQL*Plus: Release 10.1.0.2.0 - Production on 星期日 3 27 21:01:13 2005

 

 

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

 

 

SQL> conn sys@test as sysdba

请输入口令:

已连接到空闲例程。

 

 

 

 

2.使用rman备份原库

 

 

RMAN> connect target sys/ning@ning

 

 

连接到目标数据库: NING (DBID=1141544503)

正在使用目标数据库控制文件替代恢复目录

 

 

RMAN> backup full database tag 'fullbk' format 'e:/oracle/oraback/full%u_%s_%p';

 

 

启动 backup 27-3 -05

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

输入数据文件 fno=00001 name=E:/ORACLE/ORADATA/NING/SYSTEM01.DBF

输入数据文件 fno=00002 name=E:/ORACLE/ORADATA/NING/UNDOTBS01.DBF

输入数据文件 fno=00004 name=E:/ORACLE/ORADATA/NING/USERS01.DBF

输入数据文件 fno=00003 name=E:/ORACLE/ORADATA/NING/SYSAUX01.DBF

输入数据文件 fno=00005 name=E:/ORACLE/ORADATA/NING/TEST01.DBF

通道 ORA_DISK_1: 正在启动段 1 27-3 -05

通道 ORA_DISK_1: 已完成段 1 27-3 -05

handle=E:/ORACLE/ORABACK/FULL03GGCQA4_3_1 comment=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:45

通道 ORA_DISK_1: 启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

备份集中包括当前控制文件

在备份集中包含当前的 SPFILE

通道 ORA_DISK_1: 正在启动段 1 27-3 -05

通道 ORA_DISK_1: 已完成段 1 27-3 -05

handle=E:/ORACLE/ORABACK/FULL04GGCQBH_4_1 comment=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:09

完成 backup 27-3 -05

 

 

 

 

3.使用rman复制数据库

 

 

c:/>rman target sys/ning@ning  AUXILIARY sys/test@test

 

 

恢复管理器: 版本10.1.0.2.0 - Production

 

 

opyright (c) 1995, 2004, Oracle.  All rights reserved.

 

 

连接到目标数据库: NING (DBID=1141544503)

已连接到备用数据库: test (未装载)

 

 

RMAN> DUPLICATE TARGET DATABASE TO 'test';

启动 Duplicate Db 27-3 -05

使用通道 ORA_AUX_DISK_1

 

 

内存脚本的内容:

{

   set until scn  169960;

   set newname for datafile  1 to

 "E:/ORACLE/ORADATA/TEST/SYSTEM01.DBF";

   set newname for datafile  2 to

 "E:/ORACLE/ORADATA/TEST/UNDOTBS01.DBF";

   set newname for datafile  3 to

 "E:/ORACLE/ORADATA/TEST/SYSAUX01.DBF";

   set newname for datafile  4 to

 "E:/ORACLE/ORADATA/TEST/USERS01.DBF";

   set newname for datafile  5 to

 "E:/ORACLE/ORADATA/TEST/TEST01.DBF";

   restore

   check readonly

   clone database

   ;

}

正在执行内存脚本

 

 

正在执行命令: SET until clause

 

 

正在执行命令: SET NEWNAME

 

 

正在执行命令: SET NEWNAME

 

 

正在执行命令: SET NEWNAME

 

 

正在执行命令: SET NEWNAME

 

 

正在执行命令: SET NEWNAME

 

 

启动 restore 27-3 -05

使用通道 ORA_AUX_DISK_1

 

 

通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集

通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件

正将数据文件00001恢复到E:/ORACLE/ORADATA/TEST/SYSTEM01.DBF

正将数据文件00002恢复到E:/ORACLE/ORADATA/TEST/UNDOTBS01.DBF

正将数据文件00003恢复到E:/ORACLE/ORADATA/TEST/SYSAUX01.DBF

正将数据文件00004恢复到E:/ORACLE/ORADATA/TEST/USERS01.DBF

正将数据文件00005恢复到E:/ORACLE/ORADATA/TEST/TEST01.DBF

通道 ORA_AUX_DISK_1: 已恢复备份段 1

段句柄 = E:/ORACLE/ORABACK/FULL03GGCQA4_3_1 标记 = FULLBK

通道 ORA_AUX_DISK_1: 恢复完成

完成 restore 27-3 -05

sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "test" RESETLOGS ARCHIVELOG

  MAXLOGFILES     16

  MAXLOGMEMBERS      3

  MAXDATAFILES      100

  MAXINSTANCES     8

  MAXLOGHISTORY      454

 LOGFILE

  GROUP  1 'E:/oracle/oradata/test/redo01.log' SIZE 10 M ,

  GROUP  2 'E:/oracle/oradata/test/redo02.log' SIZE 10 M ,

  GROUP  3 'E:/oracle/oradata/test/redo03.log' SIZE 10 M

 DATAFILE

  'E:/ORACLE/ORADATA/TEST/SYSTEM01.DBF'

 CHARACTER SET ZHS16GBK

 

 

 

 

内存脚本的内容:

{

   switch clone datafile all;

}

正在执行内存脚本

 

 

数据文件 2 已转换成数据文件副本

输入数据文件副本 recid=1 stamp=554071105 文件名=E:/ORACLE/ORADATA/TEST/UNDOTBS01

.DBF

数据文件 3 已转换成数据文件副本

输入数据文件副本 recid=2 stamp=554071105 文件名=E:/ORACLE/ORADATA/TEST/SYSAUX01.

DBF

数据文件 4 已转换成数据文件副本

输入数据文件副本 recid=3 stamp=554071105 文件名=E:/ORACLE/ORADATA/TEST/USERS01.D

BF

数据文件 5 已转换成数据文件副本

输入数据文件副本 recid=4 stamp=554071105 文件名=E:/ORACLE/ORADATA/TEST/TEST01.DB

F

 

 

内存脚本的内容:

{

   set until scn  169960;

   recover

   clone database

    delete archivelog

   ;

}

正在执行内存脚本

 

 

正在执行命令: SET until clause

 

 

启动 recover 27-3 -05

使用通道 ORA_AUX_DISK_1

 

 

正在开始介质的恢复

 

 

存档日志线程 1 序列 16 已作为文件 E:/ORACLE/ARCH/ARC00016_0553949015.001 存在于

磁盘上

存档日志文件名 =E:/ORACLE/ARCH/ARC00016_0553949015.001 线程 =1 序列 =16

完成介质的恢复

完成 recover 27-3 -05

 

 

内存脚本的内容:

{

   shutdown clone;

   startup clone nomount ;

}

正在执行内存脚本

 

 

数据库已卸载

Oracle 例程已关闭

 

 

已连接到备用数据库 (未启动)

Oracle 例程已启动

 

 

系统全局区域总计     142606336 字节

 

 

Fixed Size                      787848 字节

Variable Size                116390520 字节

Database Buffers              25165824 字节

Redo Buffers                    262144 字节

sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "test" RESETLOGS ARCHIVELOG

  MAXLOGFILES     16

  MAXLOGMEMBERS      3

  MAXDATAFILES      100

  MAXINSTANCES     8

  MAXLOGHISTORY      454

 LOGFILE

  GROUP  1 'E:/oracle/oradata/test/redo01.log' SIZE 10 M ,

  GROUP  2 'E:/oracle/oradata/test/redo02.log' SIZE 10 M ,

  GROUP  3 'E:/oracle/oradata/test/redo03.log' SIZE 10 M

 DATAFILE

  'E:/ORACLE/ORADATA/TEST/SYSTEM01.DBF'

 CHARACTER SET ZHS16GBK

 

 

 

 

内存脚本的内容:

{

   catalog clone datafilecopy  "E:/ORACLE/ORADATA/TEST/UNDOTBS01.DBF";

   catalog clone datafilecopy  "E:/ORACLE/ORADATA/TEST/SYSAUX01.DBF";

   catalog clone datafilecopy  "E:/ORACLE/ORADATA/TEST/USERS01.DBF";

   catalog clone datafilecopy  "E:/ORACLE/ORADATA/TEST/TEST01.DBF";

   switch clone datafile all;

}

正在执行内存脚本

 

 

已将数据文件副本列入目录

数据文件副本 filename=E:/ORACLE/ORADATA/TEST/UNDOTBS01.DBF recid=1 stamp=5540716

73

 

 

已将数据文件副本列入目录

数据文件副本 filename=E:/ORACLE/ORADATA/TEST/SYSAUX01.DBF recid=2 stamp=55407167

3

 

 

已将数据文件副本列入目录

数据文件副本 filename=E:/ORACLE/ORADATA/TEST/USERS01.DBF recid=3 stamp=554071673

 

 

 

 

已将数据文件副本列入目录

数据文件副本 filename=E:/ORACLE/ORADATA/TEST/TEST01.DBF recid=4 stamp=554071673

 

 

数据文件 2 已转换成数据文件副本

输入数据文件副本 recid=1 stamp=554071673 文件名=E:/ORACLE/ORADATA/TEST/UNDOTBS01

.DBF

数据文件 3 已转换成数据文件副本

输入数据文件副本 recid=2 stamp=554071673 文件名=E:/ORACLE/ORADATA/TEST/SYSAUX01.

DBF

数据文件 4 已转换成数据文件副本

输入数据文件副本 recid=3 stamp=554071673 文件名=E:/ORACLE/ORADATA/TEST/USERS01.D

BF

数据文件 5 已转换成数据文件副本

输入数据文件副本 recid=4 stamp=554071673 文件名=E:/ORACLE/ORADATA/TEST/TEST01.DB

F

 

 

内存脚本的内容:

{

   Alter clone database open resetlogs;

}

正在执行内存脚本

 

 

数据库已打开

完成 Duplicate Db 27-3 -05

 

 

 

 

4.检查复制库的状态

 

 

C:/>sqlplus /nolog

 

 

SQL*Plus: Release 10.1.0.2.0 - Production on 星期日 3 27 21:05:52 2005

 

 

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

 

 

SQL> conn sys@test as sysdba

请输入口令:

已连接。

 

 

SQL> select instance_name,status from v$instance;

 

 

INSTANCE_NAME    STATUS

---------------- ------------

test             OPEN

 

 

 

 

然后去掉inittest.oraDB_FILE_NAME_CONVERTLOG_FILE_NAME_CONVERT参数,再使用该文件生成spfile

 

 

SQL> create spfile from pfile='E:/oracle/product/10.1.0/db_1/database/inittest.ora';

 

 

文件已创建。

 

 

 

 

===============================================================

参考文章:

Oracle® Database Backup and Recovery Advanced User's Guide 10g Release 1 (10.1) Part Number B10734-01

原创粉丝点击