---------------------------------
实验环境:windows + oracle 10.2.0.1.0
原数据库:dgtest[归档模式] 服务名:primary
复制数据库:dgtest 服务名:standby (两个实例名一样,为了做DG)
---------------------------------
参考文章:http://blog.csdn.net/NinGoo/archive/2005/03/28/332324.aspx
http://yangtingkun.itpub.net/index.php
1. 在目标数据库上创建新实例
建立目标数据库所需的目录结构,包括udump、bdump、cdump、adump目录。
创建参数文件inittest.ini(可使用原库的pfile进行修改),主要参数如下:
DB_FILE_NAME_CONVERT=('E:\oracle\oradata\ning','E:\oracle\oradata\test')
LOG_FILE_NAME_CONVERT=('E:\oracle\oradata\ning','E:\oracle\oradata\test')
--如果实例名不变,不需要name convert
使用oradim创建新的instance
c:\>oradim -new -sid dgtest
例程已创建。
使用orapwd创建password文件
c:\>orapwd file=E:\oracle\product\10.2.0.1\db_1\database\PWDtest.ora password=test entries=5
设置网络配置文件tnsnames.ora和listener.ora,并启动监听,测试。
c:\>sqlplus /nolog
SQL> conn sys@test as sysdba
请输入口令:
已连接到空闲例程。
启动到 nomount状态
startup nomount pfile='c:\oracle\p.ora';
否则在源数据库RMAN连接的时候会遇到:
在RMAN-03002: Duplicate Db 命令 (在 12/07/2008 02:52:39 上) 失败
RMAN-06403: 无法获得完全授权的会话
RMAN-04006: 来自辅助数据库的错误: ORA-01034: ORACLE 不可
--记得创建好 spfile
2.使用rman备份原库
RMAN> connect target /
RMAN> run
2> {
3> allocate channel c1 device type disk format 'c:/oracle/oraback/%U';
4> backup database plus archivelog; -- delete all input;
5> }
将备份拷贝之目标库对应位置
3.使用rman复制数据库
C:\WINDOWS>rman target sys/oracle@primary AUXILIARY sys/oracle@standby
恢复管理器: Release 10.2.0.1.0 - Production on 星期六 7月 12 17:24:14 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: DGTEST (DBID=3616354273)
已连接到辅助数据库: DGTEST (未装载)
RMAN> DUPLICATE TARGET DATABASE TO 'dgtest' nofilenamecheck; (如果两库文件路径相同需要加nofilenamecheck 参数
--在执行该命令时记得将目标库上的连接关闭
......
... ...
内存脚本的内容:
{
Alter clone database open resetlogs;
}
正在执行内存脚本
数据库已打开
完成 Duplicate Db 于 12-7月 -08
4.检查复制库的状态
C:\WINDOWS>sqlplus system/oracle@standby
--成功
-- EOF --
This work is licensed under a CC A-S 4.0 International License.