【IT168 技术文档】
目标数据库和克隆数据库分别在两台机器,其环境都一样:
WINDOWS 2000 SERVER SP4、IE6.1, ORACLE9205
在本文中,使用的是目标数据库上的RMAN,目录数据库在第3台机器上,
操作步骤:
1、连接目标数据库,对目标数据库做全库备份
2、备份目标数据库的参数文件
3、--将目标数据库的参数文件(第2步创建)拷贝到克隆机器上,修改相应的参数(主要是实例名和数据库名,和bdump、udump、cdump 等后台进程的跟踪文件存放的路径,本文中,克隆数据库的实例名为 CLONE,数据库名为 CLONE_DB),然后在克隆机器上创建实例
4、--修改克隆数据库的监听器,增加对克隆数据库的监听(第3段)
5、修改RMAN机器上的TNSNAMES.ORA文件,增加此连接串,保证RMAN使用此连接串能够连接到克隆数据库的实例
6、将目标数据库的备份集拷贝到克隆数据库机器的同一位置,并启动克隆数据库(nomount 状态)
由于第1步骤中没有备份日志,在使用
之后补充备份目标数据库的日志,
WINDOWS 2000 SERVER SP4、IE6.1, ORACLE9205
在本文中,使用的是目标数据库上的RMAN,目录数据库在第3台机器上,
操作步骤:
1、连接目标数据库,对目标数据库做全库备份
D:ORACLEBIN>rman
恢复管理器: 版本9.2.0.5.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
RMAN> connect catalog rman/rman@187
连接到恢复目录数据库
RMAN> connect target /
连接到目标数据库: ENCORE (DBID=3146513770)
RMAN> run
2> {allocate channel d1 type disk maxpiecesize = 500m;
3> backup full database
4> format 'E:rmanbakdb_%d_%s_%p_%t';
5> release channel d1;
6> }
分配的通道: d1
通道 d1: sid=16 devtype=DISK
启动 backup 于 2004-06-28 21:03:31
通道 d1: 正在启动 full 数据文件备份集
通道 d1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=D:ORACLEORADATAENCORESYSTEM01.DBF
输入数据文件 fno=00002 name=D:ORACLEORADATAENCOREUNDOTBS01.DBF
输入数据文件 fno=00005 name=D:ORACLEORADATAENCOREEXAMPLE01.DBF
输入数据文件 fno=00008 name=D:ORACLEORADATAENCORETOOLS01.DBF
输入数据文件 fno=00010 name=D:ORACLEORADATAENCOREXDB01.DBF
输入数据文件 fno=00006 name=D:ORACLEORADATAENCOREINDX01.DBF
输入数据文件 fno=00009 name=D:ORACLEORADATAENCOREUSERS01.DBF
输入数据文件 fno=00003 name=D:ORACLEORADATAENCORECWMLITE01.DBF
输入数据文件 fno=00004 name=D:ORACLEORADATAENCOREDRSYS01.DBF
输入数据文件 fno=00007 name=D:ORACLEORADATAENCOREODM01.DBF
通道 d1: 正在启动段 1 于 2004-06-28 21:03:37
通道 d1: 已完成段 1 于 2004-06-28 21:05:02
段 handle=E:RMANBAKDB_ENCORE_1_1_530053412 comment=NONE
通道 d1: 正在启动段 2 于 2004-06-28 21:05:02
通道 d1: 已完成段 2 于 2004-06-28 21:06:07
段 handle=E:RMANBAKDB_ENCORE_1_2_530053412 comment=NONE
通道 d1: 备份集已完成, 经过时间:00:02:35
完成 backup 于 2004-06-28 21:06:07
释放的通道: d1
RMAN>
2、备份目标数据库的参数文件
SQL> create pfile from spfile;
文件已创建
SQL>
3、--将目标数据库的参数文件(第2步创建)拷贝到克隆机器上,修改相应的参数(主要是实例名和数据库名,和bdump、udump、cdump 等后台进程的跟踪文件存放的路径,本文中,克隆数据库的实例名为 CLONE,数据库名为 CLONE_DB),然后在克隆机器上创建实例
D:oraclebin>oradim -new -sid clone -PFILE D:ORACLEdatabaseINITCLONE.ORA -INTPWD SYS1
D:oraclebin>
4、--修改克隆数据库的监听器,增加对克隆数据库的监听(第3段)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:ORACLE)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:ORACLE)
(SID_NAME = ORACLE92)
)
(SID_DESC =
(GLOBAL_DBNAME = clone_db)
(ORACLE_HOME = D:ORACLE)
(SID_NAME = clone)
)
)
5、修改RMAN机器上的TNSNAMES.ORA文件,增加此连接串,保证RMAN使用此连接串能够连接到克隆数据库的实例
CLONE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.194)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = CLONE_DB)
)
6、将目标数据库的备份集拷贝到克隆数据库机器的同一位置,并启动克隆数据库(nomount 状态)
由于第1步骤中没有备份日志,在使用
脚本克隆数据库时,出现 NO BACKUP COPY 之类的错误,RMAN> run
2> {allocate auxiliary channel d1 type disk;
3> set newname for datafile 1 to 'F:CLONEdataSYSTEM01.DBF';
之后补充备份目标数据库的日志,RMAN> run
2> {allocate channel d1 type disk maxpiecesize = 500m;
3> backup archivelog all
4> format 'E:rmanbaklog_%d_%s_%p_%t';
5> release channel d1;
6> }
![]()
分配的通道: d1
通道 d1: sid=11 devtype=DISK
启动 backup 于 2004-06-28 21:42:18
当前日志已存档
通道 d1: 正在启动存档日志备份集
通道 d1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =107 记录 ID=107 时间戳=528371132
输入存档日志线程 =1 序列 =108 记录 ID=108 时间戳=530053839
输入存档日志线程 =1 序列 =109 记录 ID=109 时间戳=530054855
输入存档日志线程 =1 序列 =110 记录 ID=110 时间戳=530055437
输入存档日志线程 =1 序列 =111 记录 ID=111 时间戳=530055540
输入存档日志线程 =1 序列 =112 记录 ID=112 时间戳=530055739
通道 d1: 正在启动段 1 于 2004-06-28 21:42:23
通道 d1: 已完成段 1 于 2004-06-28 21:42:26
段 handle=E:RMANBAKLOG_ENCORE_2_1_530055742 comment=NONE
通道 d1: 备份集已完成, 经过时间:00:00:04
完成 backup 于 2004-06-28 21:42:26
![]()
释放的通道: d1