我的实验环境:

- 源数据库A机:
RHEL6.4 + Oracle 11.2.0.4
IP地址:192.168.99.159
db_name=oradb 数据库已正常运行- 复制数据库B机:
RHEL6.4 + Oracle 11.2.0.4
IP地址:192.168.99.191
db_name=testdb 仅安装了数据库软件
  • 1.为复制数据库做准备
  • 2.启动辅助实例到nomount模式
  • 3.启动源数据库到mount或open
  • 4.运行RMAN DUPLICATE命令
  • 5.打开辅助实例

1.为复制数据库做准备

登录到B机,

1.1 配置环境变量

ORACLE_SID=testdb
ORACLE_BASE=按实际配置
ORACLE_HOME=按实际配置
PATH=按实际配置

1.2 创建密码文件

orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=20

1.3 创建初始化参数文件

vi init$ORACLE_SID.ora

db_name=testdb
compatible='11.2.0.4.0'
db_create_file_dest='/u01/oradata2'

注意:
CONTROL_FILES参数,如果未使用OMF,则需要指定。我这里使用OMF。指定 db_create_file_dest即可。
DB_BLOCK_SIZE参数,大小必须与源库一致,如果源库设置,则也需要指定。我这里不需要。

1.4 监听网络配置

因为后续辅助实例启动到nomount模式远程连接,需要配置静态监听。

cd $ORACLE_HOME/network/admin

配置监听listener.ora

sid_list_listener =(sid_list =(sid_desc =(global_dbname=testdb)(sid_name=testdb)(oracle_home=/opt/app/oracle/product/11.2.0/dbhome_1)))

配置tnsnames.ora

A =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.99.159)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = oradb)))B =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.99.191)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = testdb)))

2.启动辅助实例到nomount模式

登录到B机,

SQL> startup nomount

测试连接:sqlplus sys/oracle@B as sysdba

$ sqlplus sys/oracle@B as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Thu Nov 5 14:33:45 2015Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing optionsSQL> 

3.启动源数据库到mount或open

登录到A机,

SQL> startup SQL> select status, instance_name from v$instance;STATUS       INSTANCE_NAME
------------ ----------------
OPEN         oradbSQL> select dbid, open_mode from v$database;DBID OPEN_MODE
---------- --------------------
2647366668 READ WRITE

4.运行RMAN DUPLICATE命令

登录到A机:

$ rman target sys/oracle@A auxiliary sys/oracle@B
RMAN> duplicate target database to testdb from active database;

具体过程如下:

[oracle@JY-DB01 admin]$ rman target sys/oracle@A auxiliary sys/oracle@BRecovery Manager: Release 11.2.0.4.0 - Production on Thu Nov 5 15:44:57 2015Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.connected to target database: ORADB (DBID=2647366668)
connected to auxiliary database: TESTDB (not mounted)RMAN> duplicate target database to testdb from active database;Starting Duplicate Db at 2015-11-05 15:46:44
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=1 device type=DISKcontents of Memory Script:
{sql clone "create spfile from memory";
}
executing Memory Scriptsql statement: create spfile from memorycontents of Memory Script:
{shutdown clone immediate;startup clone nomount;
}
executing Memory ScriptOracle instance shut downconnected to auxiliary database (not started)
Oracle instance startedTotal System Global Area     238034944 bytesFixed Size                     2252016 bytes
Variable Size                180355856 bytes
Database Buffers              50331648 bytes
Redo Buffers                   5095424 bytescontents of Memory Script:
{sql clone "alter system set  control_files = ''/u01/oradata2/TESTDB/controlfile/o1_mf_c3p2gqj2_.ctl'' comment=''Set by RMAN'' scope=spfile";sql clone "alter system set  db_name = ''ORADB'' comment=''Modified by RMAN duplicate'' scope=spfile";sql clone "alter system set  db_unique_name = ''TESTDB'' comment=''Modified by RMAN duplicate'' scope=spfile";shutdown clone immediate;startup clone force nomountbackup as copy current controlfile auxiliary format  '/u01/oradata2/TESTDB/controlfile/o1_mf_c3p2gqjc_.ctl';sql clone "alter system set  control_files = ''/u01/oradata2/TESTDB/controlfile/o1_mf_c3p2gqjc_.ctl'' comment=''Set by RMAN'' scope=spfile";shutdown clone immediate;startup clone nomount;alter clone database mount;
}
executing Memory Scriptsql statement: alter system set  control_files =   ''/u01/oradata2/TESTDB/controlfile/o1_mf_c3p2gqj2_.ctl'' comment= ''Set by RMAN'' scope=spfilesql statement: alter system set  db_name =  ''ORADB'' comment= ''Modified by RMAN duplicate'' scope=spfilesql statement: alter system set  db_unique_name =  ''TESTDB'' comment= ''Modified by RMAN duplicate'' scope=spfileOracle instance shut downOracle instance startedTotal System Global Area     238034944 bytesFixed Size                     2252016 bytes
Variable Size                180355856 bytes
Database Buffers              50331648 bytes
Redo Buffers                   5095424 bytesStarting backup at 2015-11-05 15:47:29
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=46 device type=DISK
channel ORA_DISK_1: starting datafile copy
copying current control file
output file name=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_oradb.f tag=TAG20151105T154729 RECID=27 STAMP=894988050
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2015-11-05 15:47:31sql statement: alter system set  control_files =   ''/u01/oradata2/TESTDB/controlfile/o1_mf_c3p2gqjc_.ctl'' comment= ''Set by RMAN'' scope=spfileOracle instance shut downconnected to auxiliary database (not started)
Oracle instance startedTotal System Global Area     238034944 bytesFixed Size                     2252016 bytes
Variable Size                180355856 bytes
Database Buffers              50331648 bytes
Redo Buffers                   5095424 bytesdatabase mountedcontents of Memory Script:
{set newname for clone datafile  1 to new;set newname for clone datafile  2 to new;set newname for clone datafile  3 to new;set newname for clone datafile  4 to new;backup as copy reusedatafile  1 auxiliary format newdatafile  2 auxiliary format newdatafile  3 auxiliary format newdatafile  4 auxiliary format new;sql 'alter system archive log current';
}
executing Memory Scriptexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting backup at 2015-11-05 15:47:57
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/u01/oradata/ORADB/datafile/o1_mf_system_c2v0xxm5_.dbf
output file name=/u01/oradata2/TESTDB/datafile/o1_mf_system_4uqlgrpe_.dbf tag=TAG20151105T154757
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/u01/oradata/ORADB/datafile/o1_mf_sysaux_c2v0xxp1_.dbf
output file name=/u01/oradata2/TESTDB/datafile/o1_mf_sysaux_4vqlgrq7_.dbf tag=TAG20151105T154757
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/u01/oradata/ORADB/datafile/o1_mf_undotbs1_c2v0xxpb_.dbf
output file name=/u01/oradata2/TESTDB/datafile/o1_mf_undotbs1_50qlgrqm_.dbf tag=TAG20151105T154757
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u01/oradata/ORADB/datafile/users01.dbf
output file name=/u01/oradata2/TESTDB/datafile/o1_mf_users_51qlgrqp_.dbf tag=TAG20151105T154757
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2015-11-05 15:48:43sql statement: alter system archive log currentcontents of Memory Script:
{backup as copy reusearchivelog like  "/u01/oradb_arch1/1_146_894101903.dbf" auxiliary format "/opt/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_146_894101903.dbf"   ;catalog clone archivelog  "/opt/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_146_894101903.dbf";switch clone datafile all;
}
executing Memory ScriptStarting backup at 2015-11-05 15:48:44
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=146 RECID=252 STAMP=894988123
output file name=/opt/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_146_894101903.dbf RECID=0 STAMP=0
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
Finished backup at 2015-11-05 15:48:45cataloged archived log
archived log file name=/opt/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_146_894101903.dbf RECID=252 STAMP=894988217datafile 1 switched to datafile copy
input datafile copy RECID=27 STAMP=894988217 file name=/u01/oradata2/TESTDB/datafile/o1_mf_system_4uqlgrpe_.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=28 STAMP=894988217 file name=/u01/oradata2/TESTDB/datafile/o1_mf_sysaux_4vqlgrq7_.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=29 STAMP=894988217 file name=/u01/oradata2/TESTDB/datafile/o1_mf_undotbs1_50qlgrqm_.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=30 STAMP=894988217 file name=/u01/oradata2/TESTDB/datafile/o1_mf_users_51qlgrqp_.dbfcontents of Memory Script:
{set until scn  2237265;recoverclone databasedelete archivelog;
}
executing Memory Scriptexecuting command: SET until clauseStarting recover at 2015-11-05 15:48:46
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=24 device type=DISKstarting media recoveryarchived log for thread 1 with sequence 146 is already on disk as file /opt/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_146_894101903.dbf
archived log file name=/opt/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_146_894101903.dbf thread=1 sequence=146
media recovery complete, elapsed time: 00:00:00
Finished recover at 2015-11-05 15:48:49
Oracle instance startedTotal System Global Area     238034944 bytesFixed Size                     2252016 bytes
Variable Size                180355856 bytes
Database Buffers              50331648 bytes
Redo Buffers                   5095424 bytescontents of Memory Script:
{sql clone "alter system set  db_name = ''TESTDB'' comment=''Reset to original value by RMAN'' scope=spfile";sql clone "alter system reset  db_unique_name scope=spfile";shutdown clone immediate;startup clone nomount;
}
executing Memory Scriptsql statement: alter system set  db_name =  ''TESTDB'' comment= ''Reset to original value by RMAN'' scope=spfilesql statement: alter system reset  db_unique_name scope=spfileOracle instance shut downconnected to auxiliary database (not started)
Oracle instance startedTotal System Global Area     238034944 bytesFixed Size                     2252016 bytes
Variable Size                180355856 bytes
Database Buffers              50331648 bytes
Redo Buffers                   5095424 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "TESTDB" RESETLOGS ARCHIVELOG MAXLOGFILES     16MAXLOGMEMBERS      3MAXDATAFILES      100MAXINSTANCES     8MAXLOGHISTORY      292LOGFILEGROUP   1  SIZE 50 M ,GROUP   2  SIZE 50 M ,GROUP   3  SIZE 50 M DATAFILE'/u01/oradata2/TESTDB/datafile/o1_mf_system_4uqlgrpe_.dbf'CHARACTER SET ZHS16GBKcontents of Memory Script:
{set newname for clone tempfile  1 to new;switch clone tempfile all;catalog clone datafilecopy  "/u01/oradata2/TESTDB/datafile/o1_mf_sysaux_4vqlgrq7_.dbf", "/u01/oradata2/TESTDB/datafile/o1_mf_undotbs1_50qlgrqm_.dbf", "/u01/oradata2/TESTDB/datafile/o1_mf_users_51qlgrqp_.dbf";switch clone datafile all;
}
executing Memory Scriptexecuting command: SET NEWNAMErenamed tempfile 1 to /u01/oradata2/TESTDB/datafile/o1_mf_temp_%u_.tmp in control filecataloged datafile copy
datafile copy file name=/u01/oradata2/TESTDB/datafile/o1_mf_sysaux_4vqlgrq7_.dbf RECID=1 STAMP=894988259
cataloged datafile copy
datafile copy file name=/u01/oradata2/TESTDB/datafile/o1_mf_undotbs1_50qlgrqm_.dbf RECID=2 STAMP=894988259
cataloged datafile copy
datafile copy file name=/u01/oradata2/TESTDB/datafile/o1_mf_users_51qlgrqp_.dbf RECID=3 STAMP=894988259datafile 2 switched to datafile copy
input datafile copy RECID=1 STAMP=894988259 file name=/u01/oradata2/TESTDB/datafile/o1_mf_sysaux_4vqlgrq7_.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=894988259 file name=/u01/oradata2/TESTDB/datafile/o1_mf_undotbs1_50qlgrqm_.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=894988259 file name=/u01/oradata2/TESTDB/datafile/o1_mf_users_51qlgrqp_.dbf
Reenabling controlfile options for auxiliary database
Executing: alter database enable block change trackingcontents of Memory Script:
{Alter clone database open resetlogs;
}
executing Memory Scriptdatabase opened
Finished Duplicate Db at 2015-11-05 15:49:38RMAN> 

5.打开辅助实例

登录到B机,

$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Thu Nov 5 16:06:29 2015Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing optionsSQL>  select status, instance_name from v$instance;STATUS       INSTANCE_NAME
------------ ----------------
OPEN         testdbSQL> select dbid, open_mode from v$database;DBID OPEN_MODE
---------- --------------------
2678316385 READ WRITE

至此,成功duplicate数据库TESTDB。可以发现使用RMAN DUPLICATE复制的数据库DBID是不同的。

使用RMAN创建复制数据库相关推荐

  1. Oracle 11gR2 使用RMAN Duplicate复制数据库

    Oracle 11gR2 使用RMAN Duplicate复制数据库 整体步骤 构建辅助数据库目录结构配置辅助数据库相关参数 安装软件并创建数据库 开启归档 配置静态监听 启动数据库到nomount状 ...

  2. 使用RMAN传输数据_复制数据库

    本章介绍如何使用DUPLICATE命令创建独立运行的数据库副本. 1.RMAN数据库复制概述 数据库复制使用DUPLICATE命令拷贝源数据库中的所有数据或数据子集.复制数据库(拷贝的数据库)完全独立 ...

  3. [转]Oracle DB 复制数据库

    • 列出创建副本数据库的目的 • 选择用于复制数据库的方法 • 使用RMAN 复制数据库 • 使用RMAN 备份复制数据库 • 基于正在运行的实例复制数据库 使用副本数据库 • 使用副本数据库可执行以 ...

  4. oracle10g数据库复制,oracle -10g 中Duplicate 复制数据库

    oracle --10g 中Duplicate 复制数据库 本次实验通过duplicate命令,在本机环境中创建一个复制数据库.目标数据库为hongye.复制数据库为catdb. 环境别名设置: al ...

  5. Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库

    在Oracle10g下,我们可以使用RMANduplicate命令创建一个具有不同DBID的复制库.到了Oracle11gR2,RMAN的duplicate有2种方法实现: 1.Activedatab ...

  6. Duplicate复制数据库并创建物理StandBy(spfile+不同实例名+不同路径)

    过程和Duplicate复制数据库并创建物理StandBy类似,只是不需要重启数据库. 目的:创建standby,不重启源数据库 1设定环境如下: Primary数据库 IP 172.17.22.16 ...

  7. oracle 11g rman catalog,Oracle 11g RMAN复制数据库的测试

    RMAN支持两种类型复制:活动数据库复制和基于备份的复制,主要用来建立测试库.分别进行测试 我们把要复制的数据库称为源数据库(SOURCE DB=orcl),复制后的数据库成为目标数据库(TARGET ...

  8. rman本机复制数据库

    1.启动监听 [oracle@odd201 ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-JA ...

  9. rman的duplicate复制数据库

    duplicate 最近公司准备迁移数据库,迁移的办法有很多,由于考虑到生产系统的安全性和停机时间等其他因素,选择的方案有很多,这里我们谈一下rman的duplicate: 11g的rman dupl ...

最新文章

  1. c++ Qt向PHP接口POST文件流
  2. apk反编译看包名什么的
  3. 人工神经网络之激活函数总结
  4. SQL join中on与where区别
  5. 云图说|ModelArts Pro,为企业级AI应用打造的专业开发套件
  6. Tyche 2147 旅行
  7. 基于yaf+yar微服务解决方案教程
  8. Java Web servletConfig 对象
  9. Python爬虫实战, QQ空间自动点赞
  10. word文字铺满页面_word如何把行铺满页面 怎样使word文档铺满页面
  11. eda交通灯控制器波形输入_EDA 基于quartus平台制作的步行街自助式交通灯控制器(含vhdl程序、波形图、及电路原理图)+课程设计报告...
  12. CTF-实验吧-图片里的动漫
  13. 如何把计算机组成原理、操作系统、数据结构和计算机网络融会贯通,相互联系起来?
  14. BMP图片加马赛克C语言C++超简单
  15. 珠海 第十届亚洲机器人锦标赛_逾2000名选手云集珠海竞技第十届亚洲机器人锦标赛...
  16. 【计算机网络】(二)网络技术与应用
  17. jsp+ssm计算机毕业设计短视频文案创作平台系统【附源码】
  18. 获取一个对象或数组的所有属性及值
  19. Python实现逐步回归
  20. [项目] 网易云音乐项目总结

热门文章

  1. _LINUX下的软件包管理 - zjlk
  2. 文件实时上传至云服务器的方法,文件实时上传至云服务器的方法
  3. C语言循环设计结构,c语言---循环结构设计.ppt
  4. matlab 指定区域随机游走_了解随机游走模型和移动平均过程(Python)
  5. win7系统,virtualBox导入centos7.3报错
  6. Java学习笔记2.3.3 运算符与表达式 - 关系运算符
  7. Django讲课笔记01:Django简介
  8. Spring Boot基础学习笔记19:自定义RedisTemplate与RedisCacheManager
  9. 【codevs2144】砝码称重2,哈希什么的都去死吧
  10. mysql+after+commit_P8级面试难题,after_sync vs after_commit,哪个性能更好?