ITKeyword,专注技术干货聚合推荐

注册 | 登录

Oracle 11g 新特性 Active Database Duplicate

weiwangsisoftstone 分享于 2012-07-01

推荐:Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库

  在Oracle 10g下,我们可以使用RMAN duplicate 命令创建一个具有不同DBID 的复制库。 到了Oracle 11gR2, RMAN 的duplicate 有2种方法实现:        1. Active

2019阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

 

Oracle 11g 新特性 Active Database Duplicate

原库:mdsp(归档模式)

新库:oradup

操作系统:windowxp+oracle11g

1.  手工创建新的instance

C:\Documents and Settings\wwang>oradim  -NEW -SID oradup

实例已创建。

创建初始化参数文件,并创建相应的目录

参数文件中要包括:

DB_ NAME=oradup

CONTROL_FILES

DB_FILE_NAME_CONVERT=(‘D:\APP\WWANG\ORADATA\MDSP’,’ D:\app\wwang\oradata\oradup’)

LOG_FILE_NAME_CONVERT=(‘D:\APP\WWANG\ORADATA\MDSP’,’ D:\app\wwang\oradata\oradup’)

Log_archive_dest_1=’location=D:\app\wwang\oradata\arch’

compatible='11.2.0.0.0'

创建密码文件:

C:\Documents and Settings\wwang>orapwd file=D:\app\wwang\product\11.2.0\dbhome_1\database\pwdoradup.ora entries=

2 force=y password=123;

C:\Documents and Settings\wwang>

2.  将oradup启动到nomount状态

C:\Documents and Settings\wwang>set oracle_sid=oradup

C:\Documents and Settings\wwang>sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on 星期日 7月 1 19:45:29 2012

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

已连接到空闲例程。

SQL> startup nomount;

ORACLE 例程已经启动。

Total System Global Area  326414336 bytes

Fixed Size                  1374388 bytes

Variable Size             251660108 bytes

Database Buffers           67108864 bytes

Redo Buffers                6270976 bytes

SQL>

3.  启动rman同时连接到原库和新库

 

C:\Documents and Settings\wwang>rman target sys/oracle@mdsp auxiliary sys/123@oradup

恢复管理器: Release 11.2.0.1.0 - Production on 星期日 7月 1 20:02:33 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到目标数据库: MDSP (DBID=663168021)

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

RMAN>

 

4.  执行duplicate target database to oradup from active database

屏幕显示如下:

RMAN> duplicate target database to oradup from active database;

启动 Duplicate Db 于 01-7月 -12

使用通道 ORA_AUX_DISK_1

内存脚本的内容:

{

   sql clone "create spfile from memory";

}

正在执行内存脚本

sql 语句: create spfile from memory

内存脚本的内容:

{

   shutdown clone immediate;

   startup clone nomount;

}

正在执行内存脚本

Oracle 实例已关闭

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

Oracle 实例已启动

系统全局区域总计     326414336 字节

Fixed Size                     1374388 字节

Variable Size                251660108 字节

Database Buffers              67108864 字节

Redo Buffers                   6270976 字节

内存脚本的内容:

{

   sql clone "alter system set  db_name =

 ''MDSP'' comment=

 ''Modified by RMAN duplicate'' scope=spfile";

   sql clone "alter system set  db_unique_name =

 ''ORADUP'' comment=

 ''Modified by RMAN duplicate'' scope=spfile";

   shutdown clone immediate;

   startup clone force nomount

   backup as copy current controlfile auxiliary format  'D:\APP\WWANG\ORADATA\ORADUP\CONTROL01.CTL';

   restore clone controlfile to  'D:\APP\WWANG\FLASH_RECOVERY_AREA\ORADUP\CONTROL02.CTL' from

 'D:\APP\WWANG\ORADATA\ORADUP\CONTROL01.CTL';

   alter clone database mount;

}

正在执行内存脚本

sql 语句: alter system set  db_name =  ''MDSP'' comment= ''Modified by RMAN duplicate'' scope=spfile

sql 语句: alter system set  db_unique_name =  ''ORADUP'' comment= ''Modified by RMAN duplicate'' scope=spfile

Oracle 实例已关闭

Oracle 实例已启动

系统全局区域总计     326414336 字节

Fixed Size                     1374388 字节

Variable Size                251660108 字节

Database Buffers              67108864 字节

Redo Buffers                   6270976 字节

启动 backup 于 01-7月 -12

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=142 设备类型=DISK

通道 ORA_DISK_1: 启动数据文件副本

复制当前控制文件

输出文件名=D:\APP\WWANG\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFMDSP.ORA 标记=TAG20120701T200958 RECID=1 STAMP=7875

22202

通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:07

完成 backup 于 01-7月 -12

启动 restore 于 01-7月 -12

分配的通道: ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: SID=134 设备类型=DISK

通道 ORA_AUX_DISK_1: 已复制控制文件副本

完成 restore 于 01-7月 -12

数据库已装载

内存脚本的内容:

{

   set newname for datafile  1 to

 "D:\APP\WWANG\ORADATA\ORADUP\SYSTEM01.DBF";

   set newname for datafile  2 to

 "D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF";

   set newname for datafile  3 to

 "D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF";

   set newname for datafile  4 to

 "D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF";

   set newname for datafile  5 to

 "D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF";

   set newname for datafile  6 to

 "D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF";

   backup as copy reuse

   datafile  1 auxiliary format

 "D:\APP\WWANG\ORADATA\ORADUP\SYSTEM01.DBF"   datafile

 2 auxiliary format

 "D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF"   datafile

 3 auxiliary format

 "D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF"   datafile

 4 auxiliary format

 "D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF"   datafile

 5 auxiliary format

 "D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF"   datafile

 6 auxiliary format

 "D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF"   ;

   sql 'alter system archive log current';

}

正在执行内存脚本

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 backup 于 01-7月 -12

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 启动数据文件副本

输入数据文件: 文件号=00001 名称=D:\APP\WWANG\ORADATA\MDSP\SYSTEM01.DBF

输出文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSTEM01.DBF 标记=TAG20120701T201016

通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:45

通道 ORA_DISK_1: 启动数据文件副本

输入数据文件: 文件号=00002 名称=D:\APP\WWANG\ORADATA\MDSP\SYSAUX01.DBF

输出文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF 标记=TAG20120701T201016

通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:35

通道 ORA_DISK_1: 启动数据文件副本

输入数据文件: 文件号=00003 名称=D:\APP\WWANG\ORADATA\MDSP\UNDOTBS01.DBF

输出文件名=D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF 标记=TAG20120701T201016

通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:25

通道 ORA_DISK_1: 启动数据文件副本

输入数据文件: 文件号=00005 名称=D:\APP\WWANG\ORADATA\MDSP\IMUSE01.DBF

输出文件名=D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF 标记=TAG20120701T201016

通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:07

通道 ORA_DISK_1: 启动数据文件副本

输入数据文件: 文件号=00006 名称=D:\APP\WWANG\ORADATA\MDSP\JACK.DBF

输出文件名=D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF 标记=TAG20120701T201016

通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01

通道 ORA_DISK_1: 启动数据文件副本

输入数据文件: 文件号=00004 名称=D:\APP\WWANG\ORADATA\MDSP\USERS01.DBF

输出文件名=D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF 标记=TAG20120701T201016

通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01

完成 backup 于 01-7月 -12

sql 语句: alter system archive log current

内存脚本的内容:

{

   backup as copy reuse

   archivelog like  "D:\APP\WWANG\FLASH_RECOVERY_AREA\MDSP\ARCHIVELOG\2012_07_01\O1_MF_1_45_7Z0HNXSD_.ARC" auxil

iary format

 "D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001"   ;

   catalog clone archivelog  "D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001";

   switch clone datafile all;

}

正在执行内存脚本

启动 backup 于 01-7月 -12

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始复制归档日志

输入归档日志线程=1 序列=45 RECID=2 STAMP=787522334

输出文件名=D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001 RECID=0 STAMP=0

通道 ORA_DISK_1: 归档日志复制完成, 经过时间: 00:00:01

完成 backup 于 01-7月 -12

已编目的归档日志

归档日志文件名=D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001 RECID=2 STAMP=787522336

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

输入数据文件副本 RECID=1 STAMP=787522336 文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSTEM01.DBF

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

输入数据文件副本 RECID=2 STAMP=787522336 文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF

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

输入数据文件副本 RECID=3 STAMP=787522337 文件名=D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF

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

输入数据文件副本 RECID=4 STAMP=787522337 文件名=D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF

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

输入数据文件副本 RECID=5 STAMP=787522337 文件名=D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF

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

输入数据文件副本 RECID=6 STAMP=787522337 文件名=D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF

内存脚本的内容:

{

   set until scn  2736545;

   recover

   clone database

    delete archivelog

   ;

}

正在执行内存脚本

正在执行命令: SET until clause

启动 recover 于 01-7月 -12

使用通道 ORA_AUX_DISK_1

正在开始介质的恢复

线程 1 序列 45 的归档日志已作为文件 D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001 存在于磁盘上

归档日志文件名=D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001 线程=1 序列=45

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

完成 recover 于 01-7月 -12

内存脚本的内容:

{

   shutdown clone immediate;

   startup clone nomount;

   sql clone "alter system set  db_name =

 ''ORADUP'' comment=

 ''Reset to original value by RMAN'' scope=spfile";

   sql clone "alter system reset  db_unique_name scope=spfile";

   shutdown clone immediate;

   startup clone nomount;

}

正在执行内存脚本

数据库已卸装

Oracle 实例已关闭

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

Oracle 实例已启动

系统全局区域总计     326414336 字节

Fixed Size                     1374388 字节

Variable Size                251660108 字节

Database Buffers              67108864 字节

Redo Buffers                   6270976 字节

sql 语句: alter system set  db_name =  ''ORADUP'' comment= ''Reset to original value by RMAN'' scope=spfile

sql 语句: alter system reset  db_unique_name scope=spfile

Oracle 实例已关闭

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

Oracle 实例已启动

系统全局区域总计     326414336 字节

Fixed Size                     1374388 字节

Variable Size                251660108 字节

Database Buffers              67108864 字节

Redo Buffers                   6270976 字节

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

  MAXLOGFILES     16

  MAXLOGMEMBERS      3

  MAXDATAFILES      100

  MAXINSTANCES     8

  MAXLOGHISTORY      292

 LOGFILE

  GROUP  1 ( 'D:\APP\WWANG\ORADATA\ORADUP\REDO01.LOG' ) SIZE 50 M  REUSE,

  GROUP  2 ( 'D:\APP\WWANG\ORADATA\ORADUP\REDO02.LOG' ) SIZE 50 M  REUSE,

  GROUP  3 ( 'D:\APP\WWANG\ORADATA\ORADUP\REDO03.LOG' ) SIZE 50 M  REUSE

 DATAFILE

  'D:\APP\WWANG\ORADATA\ORADUP\SYSTEM01.DBF'

 CHARACTER SET AL32UTF8

内存脚本的内容:

{

   set newname for tempfile  1 to

 "D:\APP\WWANG\ORADATA\ORADUP\TEMP01.DBF";

   switch clone tempfile all;

   catalog clone datafilecopy  "D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF",

 "D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF",

 "D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF",

 "D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF",

 "D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF";

   switch clone datafile all;

}

正在执行内存脚本

正在执行命令: SET NEWNAME

临时文件 1 在控制文件中已重命名为 D:\APP\WWANG\ORADATA\ORADUP\TEMP01.DBF

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

数据文件副本文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF RECID=1 STAMP=787522371

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

数据文件副本文件名=D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF RECID=2 STAMP=787522371

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

数据文件副本文件名=D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF RECID=3 STAMP=787522371

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

数据文件副本文件名=D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF RECID=4 STAMP=787522371

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

数据文件副本文件名=D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF RECID=5 STAMP=787522371

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

输入数据文件副本 RECID=1 STAMP=787522371 文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF

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

输入数据文件副本 RECID=2 STAMP=787522371 文件名=D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF

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

输入数据文件副本 RECID=3 STAMP=787522371 文件名=D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF

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

输入数据文件副本 RECID=4 STAMP=787522371 文件名=D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF

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

输入数据文件副本 RECID=5 STAMP=787522371 文件名=D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF

内存脚本的内容:

{

   Alter clone database open resetlogs;

}

正在执行内存脚本

数据库已打开

完成 Duplicate Db 于 01-7月 -12

RMAN>

5.  检查数据库的状态

C:\Documents and Settings\wwang>set oracle_sid=oradup

C:\Documents and Settings\wwang>sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on 星期日 7月 1 20:43:43 2012

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

连接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select INSTANCE_NAME,STATUS from  v$instance;

INSTANCE_NAME                    STATUS

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

oradup                           OPEN

SQL>

  Oracle 11g 新特性 Active Database Duplicate 原库:mdsp(归档模式) 新库:oradup 操作系统:windowxp+oracle11g 1.  手工创建新的instance C:\Documents and Settings\wwang>oradim  -NEW -

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。