Oracle Rman duplicate数据库复制

Oracle Rman duplicate数据库复制

一、实验环境:

1.       虚拟机:VMware-workstation-5.5.1-19175

2.       数据库:oracle10g R2

3.       操作系统:windows 2003 Enterprise 32bit

4.       数据库环境:主数据库—ORCL、复制数据库----TEST2

 

二、创建并启动辅助(复制)数据库实例

2.1 创建口令文件

cmd下输入创建密码文件的命令如下:

 

2.2 创建辅助数据库实例

创建一个test2的实例名,命令如下:

 

2.3 配置监听程序

为我们的两个数据库配置好监听程序,编辑

c:\oracle\product\10.2.0\db_1\network\admin\listener.ora

c:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora两个文件如下:

 

linstener.ora文件全内容:

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

       (GLOBAL_DBNAME = ORCL)

      ORACLE_HOME = C:\oracle\product\10.2.0\db_1

       (SID_NAME = ORCL) )

    (SID_DESC =

       (GLOBAL_DBNAME = TEST2)

      ORACLE_HOME = C:\oracle\product\10.2.0\db_1

       (SID_NAME = TEST2) )

  )

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) )

  )

 

tnsnames.ora文件全内容:

ORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))

    (CONNECT_DATA =

      (SID = ORCL))

  )

 

TEST2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))

    (CONNECT_DATA =

      (SID = TEST2))

  )

 

配置完以后使用lsnrctl stop|lsnrctl  start 来重新启动监听程序。

 

2.4创建辅助(复制)数据库的相关目录

创建告警日志目录

c:\oracle\product\10.2.0\admin目录下拷贝之前的orcl文件夹并重新命名为test2,清空里面的所有文件(记得不要清空目录)

创建数据文件目录:

 

2.5创建辅助(复制)数据库的参数文件

创建一个文件形式的参数文件,命令如下:

修改c:\test2.ora文件里面的相关参数:

需要修改的参数如下:

Adumpbdumpcdumpudumpddumpdb_name和控制文件路径。

还需要添加两个参数:

db_file_name_convert=(¨c:\oracle\product\10.2.0\oradata\orcl¨,¨c:\oracle\product\10.2.0\oradata\test2¨)

log_file_name_convert=(¨c:\oracle\product\10.2.0\oradata\orcl¨,¨c:\oracle\product\10.2.0\oradata\test2¨)

解释:上面两个参数括号里面的第一个参数代表原数据库的数据目录,第二个参数代表复制数据库的数据目录(即复制的目标地址)。

注意:一定不要去修改db_block_size的大小。

 

完成以上步骤后我们可以开始创建我们真正想要的参数文件:

SQL>create spfile=’c:\oracle\product\10.2.0\db_1\database\spfiletest.ora’ from pfile=’c:\abc.ora’

 

2.6启动辅助实例

打开CMD窗口:启动辅助实例到nomount状态下。

 

 

三、复制数据库

3.1开始原数据库到归档模式

 

注意:如果你不打开归档模式等下在复制的时候会提示找不到相应的数据文件。

 

3.2使用RMAN完全备份原数据库

打开CMD窗口,输入如下命令:

Set oracle_sid=orcl

Rman target  sys/abc.123@orcl  nocatalog

输入如下命令进行完全备份:

全库备份(包括数据库,控制文件,归档日志)

 RMAN> run {

2> backup full database format 'e:\rmanbak\full_%U.bak';

3> backup archivelog all format 'e:\rmanback\arc_%U.bak' ;

4> copy current controlfile to ‘e:\rmanbak\control_bak.ctl';

5> }

 

我们可以使用RMAN>list  backup;来查看我们的备份详细信息。

备份完如下现实:

 

 

3.3复制数据库到辅助数据库上

打开CMD输入如下命令:

Set oracle_sid=orcl  -----其实这一步也可以不做,因为系统默认的sid就是我们的第一个数据库。当然你也可以去注册表里面修改它。

Rman target  sys/abc.123@orcl  auxiliary  sys/abc.123@test2

我在做的时候是使用test数据库,这里只要改为test2即可。

 

rman窗口中输入如下命令进行复制:

Run{

Allocate   auxiliary  channel  d1  type  disk;

Duplicate target  database  to  “test2”;  -------这里的复制目标数据库一定要用双引号。

Release  channel  d1;

}

 

3.4启动辅助(复制)数据库

打开cmd窗口:

Set  oracle_sid=test2

Sqlplus /nolog

Conn sys/abc.123 as sysdba

Startup force;

 

 

四、总结

我们在前面2.5提到的两个参数主要是用来指定我们要复制的数据库的数据文件的存放地址。

db_file_name_convert=(¨c:\oracle\product\10.2.0\oradata\orcl¨,¨c:\oracle\product\10.2.0\oradata\test2¨)

log_file_name_convert=(¨c:\oracle\product\10.2.0\oradata\orcl¨,¨c:\oracle\product\10.2.0\oradata\test2¨)

当然如果我们想到后面才定义数据文件的地址的话也是可以的:

Rman target  sys/abc.123@orcl  auxiliary  sys/abc.123@test2

run{
allocate auxiliary channel t1 type disk;
set newname for datafile 1 to 'D:\ORADATA\CLONE\SYSTEM01.DBF';
set newname for datafile 2 to 'D:\ORADATA\CLONE\UNDOTBS01.DBF';
set newname for datafile 3 to 'D:\ORADATA\CLONE\TOOLS01.DBF';
DUPLICATE TARGET DATABASE TO 'CLONE'
LOGFILE
GROUP 1 ('D:\ORADATA\CLONE\REDO01.DBF') SIZE 5M,
GROUP 2 ('D:\ORADATA\CLONE\REDO02.DBF') SIZE 5M,
GROUP 3 ('D:\ORADATA\CLONE\REDO03.DBF') SIZE 5M;
}

 

 

 

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

转载于:http://blog.itpub.net/13062352/viewspace-617398/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值