ITPub博客

首页 > 数据库 > Oracle > rman管理的复制数据库

rman管理的复制数据库

原创 Oracle 作者:xlfsy 时间:2010-10-27 16:30:40 0 删除 编辑

1、做一个全库备份(包括控制文件和归档日志)

RMAN> backup database include current controlfile

2> plus archivelog format='E:rmanbak%d_%s.bak';

启动 backup 于 26-10月-10

当前日志已存档

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=142 devtype=DISK

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

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

输入存档日志线程 =1 序列 =5 记录 ID=1 时间戳=733397920

通道 ORA_DISK_1: 正在启动段 1 于 26-10月-10

通道 ORA_DISK_1: 已完成段 1 于 26-10月-10

段句柄=E:RMANBAKSQTDB_3.BAK 标记=TAG20101026T093840 注释=NONE

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

完成 backup 于 26-10月-10

启动 backup 于 26-10月-10

使用通道 ORA_DISK_1

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

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

输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBSYSTEM01.DBF

输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBSYSAUX01.DBF

输入数据文件 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBGSYY_MAIN.DBF

输入数据文件 fno=00008 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBLSSY.DBF

输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBUNDOTBS01.DBF

输入数据文件 fno=00006 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBGSYY_IDX.DBF

输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBUSERS01.DBF

通道 ORA_DISK_1: 正在启动段 1 于 26-10月-10

通道 ORA_DISK_1: 已完成段 1 于 26-10月-10

段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBBACKUPSET2010_10_26O

1_MF_NNNDF_TAG20101026T093843_6DDD942G_.BKP 标记=TAG20101026T093843 注释=NONE

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

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

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

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

在备份集中包含当前的 SPFILE

通道 ORA_DISK_1: 正在启动段 1 于 26-10月-10

通道 ORA_DISK_1: 已完成段 1 于 26-10月-10

段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBBACKUPSET2010_10_26O

1_MF_NCSNF_TAG20101026T093843_6DDDCKBQ_.BKP 标记=TAG20101026T093843 注释=NONE

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

完成 backup 于 26-10月-10

启动 backup 于 26-10月-10

当前日志已存档

使用通道 ORA_DISK_1

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

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

输入存档日志线程 =1 序列 =6 记录 ID=2 时间戳=733398003

通道 ORA_DISK_1: 正在启动段 1 于 26-10月-10

通道 ORA_DISK_1: 已完成段 1 于 26-10月-10

段句柄=E:RMANBAKSQTDB_6.BAK 标记=TAG20101026T094003 注释=NONE

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

完成 backup 于 26-10月-10

RMAN>

2、在同一主机上建立复制数据库

2.1、建立复制数据库各种OS文件的存放目录

C:Documents and SettingsAdministrator>mkdir d:dupdb

C:Documents and SettingsAdministrator>mkdir d:dupdbbdump

C:Documents and SettingsAdministrator>mkdir d:dupdbudump

C:Documents and SettingsAdministrator>mkdir d:dupdbarchive

2.2、利用oradim工具建立复制数据库的service

C:Documents and SettingsAdministrator>oradim -new -sid dupdb

实例已创建。

2.3、利用orapwd工具建立复制数据库的密码文件

C:Documents and SettingsAdministrator>orapwd file=E:oracleproduct10.2.0db_

1databasePWDdupdb.ora password=jdls

2.4、建立复制数据库的参数文件

(1)从目标数据库的spfile创建pfile

SQL> create pfile from spfile;

(2)对产生的目标数据库pfile进行编辑

修改数据库名称、目录结构、文件名等参数

2.5、使用pifile启动复制数据库到nomount状态,并生成spfile

C:Documents and SettingsAdministrator>set oracle_sid=dupdb

C:Documents and SettingsAdministrator>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 10月 26 10:39:05 2010

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

已连接到空闲例程。

SQL> startup nomount pfile='D:dupdbinitdupdb.ora'

ORACLE 例程已经启动。

Total System Global Area 205520896 bytes

Fixed Size 1248092 bytes

Variable Size 67110052 bytes

Database Buffers 130023424 bytes

Redo Buffers 7139328 bytes

SQL> creat spfile from pfile='D:dupdbinitdupdb.ora';

SP2-0734: 未知的命令开头 "creat spfi..." - 忽略了剩余的行。

SQL> create spfile from pfile='D:dupdbinitdupdb.ora';

文件已创建。

2.6、利用RMAN建立复制数据库

C:Documents and SettingsAdministrator>set oracle_sid=dupdb

C:Documents and SettingsAdministrator>rman target sys/jdls@sqtdb auxiliary sys/jdls

恢复管理器: Release 10.2.0.1.0 - Production on 星期二 10月 26 10:50:54 2010

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

连接到目标数据库: SQTDB (DBID=3088639058)

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

RMAN> run{

2> set newname for datafile 1 to 'D:dupdbSYSTEM01.DBF';

3> set newname for datafile 2 to 'D:dupdbUNDOTBS01.DBF';

4> set newname for datafile 3 to 'D:dupdbSYSAUX01.DBF';

5> set newname for datafile 4 to 'D:dupdbUSERS01.DBF';

6> set newname for datafile 5 to 'D:dupdbGSYY_MAIN.DBF';

7> set newname for datafile 6 to 'D:dupdbGSYY_IDX.DBF';

8> set newname for datafile 8 to 'D:dupdbLSSY.DBF';

9> set newname for tempfile 1 to 'D:dupdbTEMP01.DBF';

10> set newname for tempfile 2 to 'D:dupdbGSYY_TMP.DBF';

11> duplicate target database to dupdb logfile

12> 'd:dupdbredo01.log' size 10m,

13> 'd:dupdbredo02.log' size 10m,

14> 'd:dupdbredo03.log' size 10m;

15> }

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 Duplicate Db 于 26-10月-10

使用通道 ORA_AUX_DISK_1

内存脚本的内容:

{

set until scn 613908;

set newname for datafile 1 to

"D:DUPDBSYSTEM01.DBF";

set newname for datafile 2 to

"D:DUPDBUNDOTBS01.DBF";

set newname for datafile 3 to

"D:DUPDBSYSAUX01.DBF";

set newname for datafile 4 to

"D:DUPDBUSERS01.DBF";

set newname for datafile 5 to

"D:DUPDBGSYY_MAIN.DBF";

set newname for datafile 6 to

"D:DUPDBGSYY_IDX.DBF";

set newname for datafile 8 to

"D:DUPDBLSSY.DBF";

restore

check readonly

clone database

;

}

正在执行内存脚本

正在执行命令: SET until clause

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 restore 于 26-10月-10

使用通道 ORA_AUX_DISK_1

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

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

正将数据文件00001恢复到D:DUPDBSYSTEM01.DBF

正将数据文件00002恢复到D:DUPDBUNDOTBS01.DBF

正将数据文件00003恢复到D:DUPDBSYSAUX01.DBF

正将数据文件00004恢复到D:DUPDBUSERS01.DBF

正将数据文件00005恢复到D:DUPDBGSYY_MAIN.DBF

正将数据文件00006恢复到D:DUPDBGSYY_IDX.DBF

正将数据文件00008恢复到D:DUPDBLSSY.DBF

通道 ORA_AUX_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREA

SQTDBBACKUPSET2010_10_26O1_MF_NNNDF_TAG20101026T093843_6DDD942G_.BKP

通道 ORA_AUX_DISK_1: 已恢复备份段 1

段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBBACKUPSET2010_10_26

O1_MF_NNNDF_TAG20101026T093843_6DDD942G_.BKP 标记 = TAG20101026T093843

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

完成 restore 于 26-10月-10

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

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 'd:dupdbredo01.log' SIZE 10 M ,

GROUP 2 'd:dupdbredo02.log' SIZE 10 M ,

GROUP 3 'd:dupdbredo03.log' SIZE 10 M

DATAFILE

'D:DUPDBSYSTEM01.DBF'

CHARACTER SET ZHS16GBK

内存脚本的内容:

{

switch clone datafile all;

}

正在执行内存脚本

释放的通道: ORA_AUX_DISK_1

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

输入数据文件副本 recid=1 stamp=733403350 文件名=D:DUPDBUNDOTBS01.DBF

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

输入数据文件副本 recid=2 stamp=733403350 文件名=D:DUPDBSYSAUX01.DBF

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

输入数据文件副本 recid=3 stamp=733403350 文件名=D:DUPDBUSERS01.DBF

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

输入数据文件副本 recid=4 stamp=733403350 文件名=D:DUPDBGSYY_MAIN.DBF

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

输入数据文件副本 recid=5 stamp=733403350 文件名=D:DUPDBGSYY_IDX.DBF

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

输入数据文件副本 recid=6 stamp=733403350 文件名=D:DUPDBLSSY.DBF

内存脚本的内容:

{

set until scn 613908;

recover

clone database

delete archivelog

;

}

正在执行内存脚本

正在执行命令: SET until clause

启动 recover 于 26-10月-10

分配的通道: ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: sid=156 devtype=DISK

正在开始介质的恢复

存档日志线程 1 序列 6 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQ

TDBARCHIVELOG2010_10_26O1_MF_1_6_6DDDCM3X_.ARC 存在于磁盘上

存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBARCHIVELOG20

10_10_26O1_MF_1_6_6DDDCM3X_.ARC 线程 =1 序列 =6

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

完成 recover 于 26-10月-10

内存脚本的内容:

{

shutdown clone;

startup clone nomount ;

}

正在执行内存脚本

数据库已卸载

Oracle 实例已关闭

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

Oracle 实例已启动

系统全局区域总计 205520896 字节

Fixed Size 1248092 字节

Variable Size 67110052 字节

Database Buffers 130023424 字节

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 'd:dupdbredo01.log' SIZE 10 M ,

GROUP 2 'd:dupdbredo02.log' SIZE 10 M ,

GROUP 3 'd:dupdbredo03.log' SIZE 10 M

DATAFILE

'D:DUPDBSYSTEM01.DBF'

CHARACTER SET ZHS16GBK

内存脚本的内容:

{

set newname for tempfile 1 to

"D:dupdbTEMP01.DBF";

set newname for tempfile 2 to

"D:dupdbGSYY_TMP.DBF";

switch clone tempfile all;

catalog clone datafilecopy "D:DUPDBUNDOTBS01.DBF";

catalog clone datafilecopy "D:DUPDBSYSAUX01.DBF";

catalog clone datafilecopy "D:DUPDBUSERS01.DBF";

catalog clone datafilecopy "D:DUPDBGSYY_MAIN.DBF";

catalog clone datafilecopy "D:DUPDBGSYY_IDX.DBF";

catalog clone datafilecopy "D:DUPDBLSSY.DBF";

switch clone datafile all;

}

正在执行内存脚本

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

临时文件 1 在控制文件中已重命名为 D:dupdbTEMP01.DBF

临时文件 2 在控制文件中已重命名为 D:dupdbGSYY_TMP.DBF

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

数据文件副本 filename=D:DUPDBUNDOTBS01.DBF recid=1 stamp=733403368

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

数据文件副本 filename=D:DUPDBSYSAUX01.DBF recid=2 stamp=733403368

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

数据文件副本 filename=D:DUPDBUSERS01.DBF recid=3 stamp=733403368

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

数据文件副本 filename=D:DUPDBGSYY_MAIN.DBF recid=4 stamp=733403369

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

数据文件副本 filename=D:DUPDBGSYY_IDX.DBF recid=5 stamp=733403369

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

数据文件副本 filename=D:DUPDBLSSY.DBF recid=6 stamp=733403369

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

输入数据文件副本 recid=1 stamp=733403368 文件名=D:DUPDBUNDOTBS01.DBF

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

输入数据文件副本 recid=2 stamp=733403368 文件名=D:DUPDBSYSAUX01.DBF

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

输入数据文件副本 recid=3 stamp=733403368 文件名=D:DUPDBUSERS01.DBF

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

输入数据文件副本 recid=4 stamp=733403369 文件名=D:DUPDBGSYY_MAIN.DBF

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

输入数据文件副本 recid=5 stamp=733403369 文件名=D:DUPDBGSYY_IDX.DBF

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

输入数据文件副本 recid=6 stamp=733403369 文件名=D:DUPDBLSSY.DBF

内存脚本的内容:

{

Alter clone database open resetlogs;

}

正在执行内存脚本

数据库已打开

完成 Duplicate Db 于 26-10月-10

RMAN>

2.6 连接到复制数据库检查对象和数据是否完整

3、在不同主机上建立复制数据库

注:大部分操作步骤同上,需要将目标数据库的全库备份文件以及所有的归档日志文件拷贝到复制数据库上的相同路径下即可。

[@more@]

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

下一篇: 穷人与野心
请登录后发表评论 登录
全部评论

注册时间:2010-02-05

  • 博文量
    31
  • 访问量
    341066