ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RMAN 建立复制数据库

RMAN 建立复制数据库

原创 Linux操作系统 作者:guxueliang 时间:2011-03-10 17:55:47 0 删除 编辑

好久不做RMAN复制数据库了,都快忘了,做个测试,简单记录一下过程。

源数据库:pony

辅助数据库:dupdb

 

 

1.       首先做一次源数据库RMAN 备份,脚本以及备份过程如下:

RMAN> run{

2> allocate channel c1 device type disk;

3> backup database format='e:\rmanback\database_%T_%s.bak';

4> release channel c1;

5> sql 'alter system archive log current';

6> allocate channel c1 device type disk;

7> backup archivelog all format='e:\rmanback\arch_%T_%s.bak' delete input;

8> release channel c1;

9> allocate channel c1 device type disk;

10> backup current controlfile format='e:\rmanback\control_%T_%s.bak';

11> release  channel c1;

12> }

 

释放的通道: ORA_DISK_1

分配的通道: c1

通道 c1: sid=138 devtype=DISK

 

启动 backup 10-3 -11

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

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

输入数据文件 fno=00007 name=D:\ORADATA\RT1.DBF

输入数据文件 fno=00009 name=D:\ORADATA\RTIDX1.DBF

输入数据文件 fno=00001 name=C:\ORACLE\PRODUCT\10.2.0\PONY\SYSTEM01.DBF

输入数据文件 fno=00006 name=D:\ORADATA\BASE1.DBF

输入数据文件 fno=00008 name=D:\ORADATA\BSIDX1.DBF

输入数据文件 fno=00010 name=D:\ORADATA\UNDOTBS1.DBF

输入数据文件 fno=00003 name=C:\ORACLE\PRODUCT\10.2.0\PONY\SYSAUX01.DBF

输入数据文件 fno=00005 name=C:\ORACLE\PRODUCT\10.2.0\PONY\EXAMPLE01.DBF

输入数据文件 fno=00002 name=C:\ORACLE\PRODUCT\10.2.0\PONY\UNDOTBS01.DBF

输入数据文件 fno=00004 name=C:\ORACLE\PRODUCT\10.2.0\PONY\USERS01.DBF

通道 c1: 正在启动段 1 10-3 -11

通道 c1: 已完成段 1 10-3 -11

段句柄=E:\RMANBACK\DATABASE_20110310_31.BAK 标记=TAG20110310T170601 注释=NONE

通道 c1: 备份集已完成, 经过时间:00:03:26

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

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

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

在备份集中包含当前的 SPFILE

通道 c1: 正在启动段 1 10-3 -11

通道 c1: 已完成段 1 10-3 -11

段句柄=E:\RMANBACK\DATABASE_20110310_32.BAK 标记=TAG20110310T170601 注释=NONE

通道 c1: 备份集已完成, 经过时间:00:00:03

完成 backup 10-3 -11

 

释放的通道: c1

 

sql 语句: alter system archive log current

 

分配的通道: c1

通道 c1: sid=138 devtype=DISK

 

启动 backup 10-3 -11

当前日志已存档

通道 c1: 正在启动存档日志备份集

通道 c1: 正在指定备份集中的存档日志

输入存档日志线程 =1 序列 =28 记录 ID=12 时间戳=745434570

输入存档日志线程 =1 序列 =29 记录 ID=13 时间戳=745434571

通道 c1: 正在启动段 1 10-3 -11

通道 c1: 已完成段 1 10-3 -11

段句柄=E:\RMANBACK\ARCH_20110310_33.BAK 标记=TAG20110310T170931 注释=NONE

通道 c1: 备份集已完成, 经过时间:00:00:02

通道 c1: 正在删除存档日志

存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\ARC00028_0743446132.001 记录 ID=12 时间戳 =74543

4570

存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\ARC00029_0743446132.001 记录 ID=13 时间戳 =74543

4571

完成 backup 10-3 -11

 

释放的通道: c1

 

分配的通道: c1

通道 c1: sid=138 devtype=DISK

 

启动 backup 10-3 -11

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

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

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

通道 c1: 正在启动段 1 10-3 -11

通道 c1: 已完成段 1 10-3 -11

段句柄=E:\RMANBACK\CONTROL_20110310_34.BAK 标记=TAG20110310T170934 注释=NONE

通道 c1: 备份集已完成, 经过时间:00:00:02

完成 backup 10-3 -11

 

释放的通道: c1

 

 

2.       建立相关跟踪文件的目录,在此就不列举了。

3.       建立新的oracle数据文件,日志文件以及归档的路径,用以存放复制数据库。

 

4.       从源数据库新建pfile然后修改其中内容,注意相关的路径.。如下

C:\Documents and Settings\GUXUELIANG>set oracle_sid=pony

 

C:\Documents and Settings\GUXUELIANG>sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 3 10 17:15:32 2011

 

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

 

 

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> create pfile='E:\rmanback\initdupdb.ora' from spfile;

 

文件已创建。

 

修改其中内容(蓝色为特别注意或者添加内容)

dupdb.__db_cache_size=79691776

dupdb.__java_pool_size=4194304

dupdb.__large_pool_size=4194304

dupdb.__shared_pool_size=71303168

dupdb.__streams_pool_size=0

*.audit_file_dest='c:\oracle\product\10.2.0/admin/dupdb/adump'

*.background_dump_dest='c:\oracle\product\10.2.0/admin/dupdb/bdump'

*.compatible='10.2.0.1.0'

*.control_files='c:\oracle\product\10.2.0\dupdb\control01.ctl','c:\oracle\product\10.2.0\dupdb\control02.ctl','c:\oracle\product\10.2.0\dupdb\control03.ctl'

*.core_dump_dest='c:\oracle\product\10.2.0/admin/dupdb/cdump'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='dupdb'

*.instance_name='dupdb'

*.service_names='dupdb'

*.log_archive_dest_1='location=E:\oradata\archivelog'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=ponyXDB)'

*.job_queue_processes=10

*.open_cursors=300

*.pga_aggregate_target=16777216

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=167772160

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='c:\oracle\product\10.2.0/admin/dupdb/udump'

*.db_file_name_convert=’c:\oracle\product\10.2.0\pony\’,’E:\oradata\dupdb\’,’D:\oradata’,’E:\oradata\dupdb\’

*.log_file_name_convert=’c:\oracle\product\10.2.0\pony\’,’E:\oradata\dupdb\

 

5.       新建oracle实例 dupdb

C:\Documents and Settings\GUXUELIANG>oradim -new -sid dupdb -startmode auto -intpwd system

实例已创建。

 

6.       用上面的PFILE启动dupdb实例至nomount状态

C:\Documents and Settings\GUXUELIANG>set oracle_sid=dupdb

 

C:\Documents and Settings\GUXUELIANG>sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 3 10 17:28:42 2011

 

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

 

 

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> shutdown immediate

ORA-01507: ??????

 

 

ORACLE 例程已经关闭。

SQL> startup nomount pfile=E:\rmanback\initdupdb.ora

ORACLE 例程已经启动。

 

Total System Global Area  167772160 bytes

Fixed Size                  1247876 bytes

Variable Size              79693180 bytes

Database Buffers           79691776 bytes

Redo Buffers                7139328 bytes

 

 

7.       建立复制数据库,过程如下

C:\Documents and Settings\GUXUELIANG>set oracle_sid=dupdb

 

C:\Documents and Settings\GUXUELIANG>rman target sys/system@pony auxiliary sys/system

 

恢复管理器: Release 10.2.0.1.0 - Production on 星期四 3 10 17:36:47 2011

 

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

 

连接到目标数据库: PONY (DBID=1414953261)

已连接到辅助数据库: DUPDB (未装载)

 

RMAN> duplicate target database to dupdb;

启动 Duplicate Db 10-3 -11

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

分配的通道: ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: sid=157 devtype=DISK

 

内存脚本的内容:

{

   set until scn  849578;

   set newname for datafile  1 to

 "E:\ORADATA\DUPDB\SYSTEM01.DBF";

   set newname for datafile  2 to

 "E:\ORADATA\DUPDB\UNDOTBS01.DBF";

   set newname for datafile  3 to

 "E:\ORADATA\DUPDB\SYSAUX01.DBF";

   set newname for datafile  4 to

 "E:\ORADATA\DUPDB\USERS01.DBF";

   set newname for datafile  5 to

 "E:\ORADATA\DUPDB\EXAMPLE01.DBF";

   set newname for datafile  6 to

 "E:\ORADATA\DUPDB\BASE1.DBF";

   set newname for datafile  7 to

 "E:\ORADATA\DUPDB\RT1.DBF";

   set newname for datafile  8 to

 "E:\ORADATA\DUPDB\BSIDX1.DBF";

   set newname for datafile  9 to

 "E:\ORADATA\DUPDB\RTIDX1.DBF";

   set newname for datafile  10 to

 "E:\ORADATA\DUPDB\UNDOTBS1.DBF";

   restore

   check readonly

   clone database

   ;

}

正在执行内存脚本

 

正在执行命令: SET until clause

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

启动 restore 10-3 -11

使用通道 ORA_AUX_DISK_1

 

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

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

正将数据文件00001恢复到E:\ORADATA\DUPDB\SYSTEM01.DBF

正将数据文件00002恢复到E:\ORADATA\DUPDB\UNDOTBS01.DBF

正将数据文件00003恢复到E:\ORADATA\DUPDB\SYSAUX01.DBF

正将数据文件00004恢复到E:\ORADATA\DUPDB\USERS01.DBF

正将数据文件00005恢复到E:\ORADATA\DUPDB\EXAMPLE01.DBF

正将数据文件00006恢复到E:\ORADATA\DUPDB\BASE1.DBF

正将数据文件00007恢复到E:\ORADATA\DUPDB\RT1.DBF

正将数据文件00008恢复到E:\ORADATA\DUPDB\BSIDX1.DBF

正将数据文件00009恢复到E:\ORADATA\DUPDB\RTIDX1.DBF

正将数据文件00010恢复到E:\ORADATA\DUPDB\UNDOTBS1.DBF

通道 ORA_AUX_DISK_1: 正在读取备份段 E:\RMANBACK\DATABASE_20110310_31.BAK

通道 ORA_AUX_DISK_1: 已恢复备份段 1

段句柄 = E:\RMANBACK\DATABASE_20110310_31.BAK 标记 = TAG20110310T170601

通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:02:06

完成 restore 10-3 -11

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

  MAXLOGFILES     16

  MAXLOGMEMBERS      3

  MAXDATAFILES      100

  MAXINSTANCES     8

  MAXLOGHISTORY      292

 LOGFILE

  GROUP  1 ( 'E:\ORADATA\DUPDB\REDO01.LOG' ) SIZE 50 M  REUSE,

  GROUP  2 ( 'E:\ORADATA\DUPDB\REDO02.LOG' ) SIZE 50 M  REUSE,

  GROUP  3 ( 'E:\ORADATA\DUPDB\REDO03.LOG' ) SIZE 50 M  REUSE

 DATAFILE

  'E:\ORADATA\DUPDB\SYSTEM01.DBF'

 CHARACTER SET ZHS16GBK

 

 

内存脚本的内容:

{

   switch clone datafile all;

}

正在执行内存脚本

 

释放的通道: ORA_AUX_DISK_1

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

输入数据文件副本 recid=1 stamp=745436375 文件名=E:\ORADATA\DUPDB\UNDOTBS01.DBF

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

输入数据文件副本 recid=2 stamp=745436375 文件名=E:\ORADATA\DUPDB\SYSAUX01.DBF

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

输入数据文件副本 recid=3 stamp=745436375 文件名=E:\ORADATA\DUPDB\USERS01.DBF

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

输入数据文件副本 recid=4 stamp=745436375 文件名=E:\ORADATA\DUPDB\EXAMPLE01.DBF

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

输入数据文件副本 recid=5 stamp=745436375 文件名=E:\ORADATA\DUPDB\BASE1.DBF

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

输入数据文件副本 recid=6 stamp=745436376 文件名=E:\ORADATA\DUPDB\RT1.DBF

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

输入数据文件副本 recid=7 stamp=745436376 文件名=E:\ORADATA\DUPDB\BSIDX1.DBF

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

输入数据文件副本 recid=8 stamp=745436376 文件名=E:\ORADATA\DUPDB\RTIDX1.DBF

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

输入数据文件副本 recid=9 stamp=745436376 文件名=E:\ORADATA\DUPDB\UNDOTBS1.DBF

 

内存脚本的内容:

{

   set until scn  849578;

   recover

   clone database

    delete archivelog

   ;

}

正在执行内存脚本

 

正在执行命令: SET until clause

 

启动 recover 10-3 -11

分配的通道: ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: sid=156 devtype=DISK

 

正在开始介质的恢复

 

通道 ORA_AUX_DISK_1: 正在启动到默认目标的存档日志恢复

通道 ORA_AUX_DISK_1: 正在恢复存档日志

存档日志线程 =1 序列=28

通道 ORA_AUX_DISK_1: 正在恢复存档日志

存档日志线程 =1 序列=29

通道 ORA_AUX_DISK_1: 正在读取备份段 E:\RMANBACK\ARCH_20110310_33.BAK

通道 ORA_AUX_DISK_1: 已恢复备份段 1

段句柄 = E:\RMANBACK\ARCH_20110310_33.BAK 标记 = TAG20110310T170931

通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:02

存档日志文件名 =E:\ORADATA\ARCHIVELOG\ARC00028_0743446132.001 线程 =1 序列 =28

通道 clone_default: 正在删除存档日志

存档日志文件名 =E:\ORADATA\ARCHIVELOG\ARC00028_0743446132.001 记录 ID=1 时间戳 =745436383

存档日志文件名 =E:\ORADATA\ARCHIVELOG\ARC00029_0743446132.001 线程 =1 序列 =29

通道 clone_default: 正在删除存档日志

存档日志文件名 =E:\ORADATA\ARCHIVELOG\ARC00029_0743446132.001 记录 ID=2 时间戳 =745436383

介质恢复完成, 用时: 00:00:06

完成 recover 10-3 -11

 

内存脚本的内容:

{

   shutdown clone;

   startup clone nomount ;

}

正在执行内存脚本

 

数据库已卸载

Oracle 实例已关闭

 

已连接到辅助数据库 (未启动)

Oracle 实例已启动

 

系统全局区域总计     167772160 字节

 

Fixed Size                     1247876 字节

Variable Size                 79693180 字节

Database Buffers              79691776 字节

Redo Buffers                   7139328 字节

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

  MAXLOGFILES     16

  MAXLOGMEMBERS      3

  MAXDATAFILES      100

  MAXINSTANCES     8

  MAXLOGHISTORY      292

 LOGFILE

  GROUP  1 ( 'E:\ORADATA\DUPDB\REDO01.LOG' ) SIZE 50 M  REUSE,

  GROUP  2 ( 'E:\ORADATA\DUPDB\REDO02.LOG' ) SIZE 50 M  REUSE,

  GROUP  3 ( 'E:\ORADATA\DUPDB\REDO03.LOG' ) SIZE 50 M  REUSE

 DATAFILE

  'E:\ORADATA\DUPDB\SYSTEM01.DBF'

 CHARACTER SET ZHS16GBK

 

 

内存脚本的内容:

{

   set newname for tempfile  1 to

 "E:\ORADATA\DUPDB\TEMP01.DBF";

   set newname for tempfile  2 to

 "E:\ORADATA\DUPDB\TEMP1.DBF";

   switch clone tempfile all;

   catalog clone datafilecopy  "E:\ORADATA\DUPDB\UNDOTBS01.DBF";

   catalog clone datafilecopy  "E:\ORADATA\DUPDB\SYSAUX01.DBF";

   catalog clone datafilecopy  "E:\ORADATA\DUPDB\USERS01.DBF";

   catalog clone datafilecopy  "E:\ORADATA\DUPDB\EXAMPLE01.DBF";

   catalog clone datafilecopy  "E:\ORADATA\DUPDB\BASE1.DBF";

   catalog clone datafilecopy  "E:\ORADATA\DUPDB\RT1.DBF";

   catalog clone datafilecopy  "E:\ORADATA\DUPDB\BSIDX1.DBF";

   catalog clone datafilecopy  "E:\ORADATA\DUPDB\RTIDX1.DBF";

   catalog clone datafilecopy  "E:\ORADATA\DUPDB\UNDOTBS1.DBF";

   switch clone datafile all;

}

正在执行内存脚本

 

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

临时文件 1 在控制文件中已重命名为 E:\ORADATA\DUPDB\TEMP01.DBF

临时文件 2 在控制文件中已重命名为 E:\ORADATA\DUPDB\TEMP1.DBF

 

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

数据文件副本 filename=E:\ORADATA\DUPDB\UNDOTBS01.DBF recid=1 stamp=745436407

 

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

数据文件副本 filename=E:\ORADATA\DUPDB\SYSAUX01.DBF recid=2 stamp=745436409

 

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

数据文件副本 filename=E:\ORADATA\DUPDB\USERS01.DBF recid=3 stamp=745436409

 

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

数据文件副本 filename=E:\ORADATA\DUPDB\EXAMPLE01.DBF recid=4 stamp=745436410

 

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

数据文件副本 filename=E:\ORADATA\DUPDB\BASE1.DBF recid=5 stamp=745436410

 

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

数据文件副本 filename=E:\ORADATA\DUPDB\RT1.DBF recid=6 stamp=745436410

 

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

数据文件副本 filename=E:\ORADATA\DUPDB\BSIDX1.DBF recid=7 stamp=745436410

 

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

数据文件副本 filename=E:\ORADATA\DUPDB\RTIDX1.DBF recid=8 stamp=745436411

 

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

数据文件副本 filename=E:\ORADATA\DUPDB\UNDOTBS1.DBF recid=9 stamp=745436411

 

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

输入数据文件副本 recid=1 stamp=745436407 文件名=E:\ORADATA\DUPDB\UNDOTBS01.DBF

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

输入数据文件副本 recid=2 stamp=745436409 文件名=E:\ORADATA\DUPDB\SYSAUX01.DBF

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

输入数据文件副本 recid=3 stamp=745436409 文件名=E:\ORADATA\DUPDB\USERS01.DBF

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

输入数据文件副本 recid=4 stamp=745436410 文件名=E:\ORADATA\DUPDB\EXAMPLE01.DBF

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

输入数据文件副本 recid=5 stamp=745436410 文件名=E:\ORADATA\DUPDB\BASE1.DBF

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

输入数据文件副本 recid=6 stamp=745436410 文件名=E:\ORADATA\DUPDB\RT1.DBF

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

输入数据文件副本 recid=7 stamp=745436410 文件名=E:\ORADATA\DUPDB\BSIDX1.DBF

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

输入数据文件副本 recid=8 stamp=745436411 文件名=E:\ORADATA\DUPDB\RTIDX1.DBF

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

输入数据文件副本 recid=9 stamp=745436411 文件名=E:\ORADATA\DUPDB\UNDOTBS1.DBF

 

内存脚本的内容:

{

   Alter clone database open resetlogs;

}

正在执行内存脚本

 

数据库已打开

完成 Duplicate Db 10-3 -11

 

RMAN>

 

 

大功告成!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7958405/viewspace-689021/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-04-17

  • 博文量
    17
  • 访问量
    59581