可以使用很多种方法创建副本数据库,这些方法均直接或间接的使用RMAN。使用RMAN DUPLICATE命令可以在保留目标数据库的基础上依靠目标数据库的备份创建一个副本数据库。该副本即可与目标数据库完全相同,也可仅包含目标数据库表空间的一部子集。目标站点以及副本站点甚至可以在同一台机器上。以下列出创建副本数据库的具体步骤。
一、 利用RMAN备份源数据库
对源数据库进行全备,并且将所有的数据库文件备份(包括增量备份和归档重做日志文件)保存在测试数据库可以访问的文件系统上,否则无法进行恢复。
二、 为测试数据库创建口令文件和实例
1. 创建口令文件:
C:\Documents and Settings\Administrator>
orapwd file=C:\oracle\product\10.2.0\db_1\database\pwddave.ora password=dave entries=10
2. 创建实例:
C:\Documents and Settings\Administrator>oradim -new -sid test
实例已创建。
三、 建立测试库与源数据库的网络连接,
在测试库中配置连接描述符
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.248.11)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
四、 创建pfile文件
拷贝源数据库的参数文件到测试库ORACLE_HOME/database目录下,更名为inittest.ora
修改的项目有:
a) 因为实例名改变了
audit_file_dest, backgroud_dump_dest, core_dump_dest,user_dump_dest这四个目录要做相应的修改。
b) control_files的值要改,改到测试库对应的控制文件的路径,如 :
'E:\oradata\test\control01.ctl',....
c) db_name改成测试库名test
d) 重定义数据文件的位置,通过db_file_name_convert参数定义,如:*.db_file_name_convert=('C:\ORACLE_DATA\devdb', 'E:\oradata\test') --前一个是数据文件的源目录,后一个是目标目录。
e) 重定义联机日志文件的位置,通过log_file_name_convert,如:
*.log_file_name_convert=('C:\ORACLE_DATA\devdb', 'E:\oradata\test') --前一个是日志文件的源目录,后一个是目标目录
五、 以NOMOUNT模式启动测试数据库
SET ORACLE_SID=test
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 209715200 bytes
Fixed Size 1248140 bytes
Variable Size 79692916 bytes
Database Buffers 125829120 bytes
Redo Buffers 2945024 bytes
六、 以MOUTN或OPEN模式启动源数据库
Set ORACLE_SID=ORCL
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 209715200 bytes
Fixed Size 1248140 bytes
Variable Size 79692916 bytes
Database Buffers 125829120 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
七、 执行恢复
C:\Documents and Settings\Administrator>set oracle_sid=test
C:\Documents and Settings\Administrator>rman target sys/orcl@orcl auxiliary sys/test
恢复管理器: Release 10.2.0.1.0 - Production on 星期三 3月 16 15:42:28 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1266395358)
已连接到辅助数据库: TEST (未装载)
RMAN> run{
2> allocate auxiliary channel aux0 device type disk;
3> allocate auxiliary channel aux1 device type disk;
4> duplicate target database to "test";}
分配的通道: aux0
通道 aux0: sid=156 devtype=DISK
分配的通道: aux1
通道 aux1: sid=155 devtype=DISK
启动 Duplicate Db 于 17-3月 -11
.
.
.
内存脚本的内容:
{
Alter clone database open resetlogs;
}
正在执行内存脚本
数据库已打开
完成 Duplicate Db 于 17-3月 -11
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12751636/viewspace-701988/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12751636/viewspace-701988/