Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
在Oracle10g下,我们可以使用RMANduplicate命令创建一个具有不同DBID的复制库。到了Oracle11gR2,RMAN的duplicate有2种方法实现:
1.Activedatabaseduplication
2.Backup-basedduplication
Activedatabaseduplication通过网络,直接copytarget库到auxiliary库,然后创建复制库。这种方法就不需要先用RMAN备份数据库,然后将备份文件发送到auxiliary端。
这个功能的作用是非常大的。尤其是对T级别的库。因为对这样的库进行备份,然后将备份集发送到备库,在进行duplicate的代价是非常大的。一备份要占用时间,二要占用备份空间,三在网络传送的时候,还需要占用带宽和时间。所以Activedatabaseduplicate很好的解决了以上的问题。它对大库的迁移非常有用。
如果是从RACduplicate到单实例,操作是一样的。如果是从单实例duplicate到RAC。那么先duplicate到单实例。然后将单实例转换成RAC。
下面我们看一下11gR2下,ActiveDatabaseDuplicate的步骤如下:
1.创建Auxiliary库的InitializationParameter:
如果使用spfile,那么在pfile文件里只需要设置一个DB_NAME参数,其他参数会在duplicate命令中自己设置。
如果使用pfile,那么需要设置如下参数:
DB_NAME
CONTROL_FILES
DB_BLOCK_SIZE
DB_FILE_NAME_CONVERT
LOG_FILE_NAME_CONVERT
DB_RECOVERY_FILE_DEST
2.在Auxiliary库创建PasswordFile文件
对于Backup-basedduplication,PasswordFile不是必须的,但是对于ActiveDatabaseDuplication,PasswordFile是必须的。因为ActiveDatabaseDuplication使用相同的SYSDBA密码直接连接到auxiliary库。所以,确保target和Auxiliary库的SYSDBA密码一样很重要。
当然,我们也可以在duplicate命令中加上PASSWORDFILE选项(也是默认值),这样RMAN在copy的时候也会从target库把密码文件copy过来,如果auxiliary库上已经存在了Passwordfile,那么该操作会重写那个文件。
如:
RMAN>DUPLICATETARGETDATABASETODave
2>FROMACTIVEDATABASE
3>NOFILENAMECHECK
4>PASSWORDFILE
5>SPFILE;
3.如果是windows平台,还需要创建Databaseservice:
%setORACLE_SID=DAVE
%setORACLE_HOME=E:/oracle/product/11.1.0/db_1
%oradim-NEW-SIDDAVE
4.配置oraclenet,修改listener.ora和thetnsnames.ora文件:
在Target库和Auxiliary都要修改。这个也可以使用netca和netmgr命令配置。
Listener.ora
[oracle@qs-dmm-rh1admin]$catlistener.ora
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost6.localdomain6)(PORT=1521))
)
)
ADR_BASE_LISTENER=/u01/app/oracle
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=orcl)
)
)
tnsname.ora
[oracle@qs-dmm-rh1admin]$cattnsnames.ora
ORCL_ST=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.43)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=orcl)
)
)
ORCL_PD=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.42)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=orcl)
)
)
5.用第一步创建的pfile文件,将Auxiliary启动到nomout状态。然后进行ActiveDatabaseduplicate。
我们看一个完整的复制示例:
TargetDB:
IP:192.168.2.42
SID:orcl
Auxiliary:
IP:192.168.2.43
SID:orcl
我这里复制的目录相同。如果不同的话需要在pfile里面加入db_file_name_convert和log_file_name_convert.
1.在Auxiliary创建pfile参数文件:
[oracle@qs-dmm-rh2dbs]$pwd
/u01/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@qs-dmm-rh2dbs]$catinitorcl.ora
DB_NAME=orcl
只有一个参数:DB_NAME
2.在Auxiliary库上创建口令文件
[oracle@qs-dmm-rh2admin]$orapwdfile=?/dbs/orapworclpassword=oracle
3.在Auxiliary库创建相关的目录结构:
[oracle@qs-dmm-rh2trace]$mkdir-p/u01/app/oracle/oradata/orcl
不然在duplicate时会报如下错误:
ORA-19505:failedtoidentifyfile"/u01/app/oracle/oradata/orcl/users01.dbf"
ORA-27040:filecreateerror,unabletocreatefile
4.启动Auxiliary到nomout状态:
[oracle@qs-dmm-rh2admin]$sqlplus/nolog
SQL*Plus:Release11.2.0.1.0ProductiononTueMar800:28:482011
Copyright(c)1982,2009,Oracle.Allrightsreserved.
SQL>conn/assysdba;
Connectedtoanidleinstance.
SQL>startupnomountpfile=?/dbs/initorcl.ora
ORACLEinstancestarted.
TotalSystemGlobalArea146472960bytes
FixedSize1335080bytes
VariableSize92274904bytes
DatabaseBuffers50331648bytes
RedoBuffers2531328bytes
SQL>
5.在Target和Auxiliary都配置OracleNet(Listener.oraandtnsnames.ora):
[oracle@qs-dmm-rh1admin]$catlistener.ora
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost6.localdomain6)(PORT=1521))
)
)
ADR_BASE_LISTENER=/u01/app/oracle
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=orcl)
)
)
[oracle@qs-dmm-rh1admin]$cattnsnames.ora
ORCL_ST=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.43)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=orcl)
)
)
ORCL_PD=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.42)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=orcl)
)
)
6.开始RMANduplicatefromactivedatabase:
注意:如果target和Auxiliary库的目录结构相同,记得加上nofilenamecheck参数,不然会报如下错误:
RMAN-05001:auxiliaryfilename/u01/app/oracle/oradata/orcl/users01.dbfconflictswithafileusedbythetargetdatabase
如果目录不同,在pfile里加如下2个参数进行转换:
db_file_name_convert
log_file_name_convert.
[oracle@qs-dmm-rh2dbs]$rmantargetsys/oracle@orcl_pdauxiliarysys/oracle@orcl_st
RecoveryManager:Release11.2.0.1.0-ProductiononTueMar801:01:422011
Copyright(c)1982,2009,Oracleand/oritsaffiliates.Allrightsreserved.
connectedtotargetdatabase:ORCL(DBID=1272955137)
connectedtoauxiliarydatabase:ORCL(notmounted)
RMAN>duplicatetargetdatabasetoorclfromactivedatabasenofilenamecheck;
StartingDuplicateDbat08-MAR-11
usingtargetdatabasecontrolfileinsteadofrecoverycatalog
allocatedchannel:ORA_AUX_DISK_1
channelORA_AUX_DISK_1:SID=20devicetype=DISK
contentsofMemoryScript:
{
sqlclone"createspfilefrommemory";
}
executingMemoryScript
sqlstatement:createspfilefrommemory
contentsofMemoryScript:
{
shutdowncloneimmediate;
startupclonenomount;
}
executingMemoryScript
Oracleinstanceshutdown
connectedtoauxiliarydatabase(notstarted)
Oracleinstancestarted
TotalSystemGlobalArea146472960bytes
FixedSize1335080bytes
VariableSize92274904bytes
DatabaseBuffers50331648bytes
RedoBuffers2531328bytes
contentsofMemoryScript:
{
sqlclone"altersystemsetdb_name=
''ORCL''comment=
''ModifiedbyRMANduplicate''scope=spfile";
sqlclone"altersystemsetdb_unique_name=
''ORCL''comment=
''ModifiedbyRMANduplicate''scope=spfile";
shutdowncloneimmediate;
startupcloneforcenomount
backupascopycurrentcontrolfileauxiliaryformat'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/cntrlorcl.dbf';
alterclonedatabasemount;
}
executingMemoryScript
sqlstatement:altersystemsetdb_name=''ORCL''comment=''ModifiedbyRMANduplicate''scope=spfile
sqlstatement:altersystemsetdb_unique_name=''ORCL''comment=''ModifiedbyRMANduplicate''scope=spfile
Oracleinstanceshutdown
Oracleinstancestarted
TotalSystemGlobalArea146472960bytes
FixedSize1335080bytes
VariableSize92274904bytes
DatabaseBuffers50331648bytes
RedoBuffers2531328bytes
Startingbackupat08-MAR-11
allocatedchannel:ORA_DISK_1
channelORA_DISK_1:SID=43devicetype=DISK
channelORA_DISK_1:startingdatafilecopy
copyingcurrentcontrolfile
outputfilename=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_orcl.ftag=TAG20110308T010214RECID=3STAMP=745203735
channelORA_DISK_1:datafilecopycomplete,elapsedtime:00:00:01
Finishedbackupat08-MAR-11
databasemounted
contentsofMemoryScript:
{
setnewnamefordatafile1to
"/u01/app/oracle/oradata/orcl/system01.dbf";
setnewnamefordatafile2to
"/u01/app/oracle/oradata/orcl/sysaux01.dbf";
setnewnamefordatafile3to
"/u01/app/oracle/oradata/orcl/undotbs01.dbf";
setnewnamefordatafile4to
"/u01/app/oracle/oradata/orcl/users01.dbf";
backupascopyreuse
datafile1auxiliaryformat
"/u01/app/oracle/oradata/orcl/system01.dbf"datafile
2auxiliaryformat
"/u01/app/oracle/oradata/orcl/sysaux01.dbf"datafile
3auxiliaryformat
"/u01/app/oracle/oradata/orcl/undotbs01.dbf"datafile
4auxiliaryformat
"/u01/app/oracle/oradata/orcl/users01.dbf";
sql'altersystemarchivelogcurrent';
}
executingMemoryScript
executingcommand:SETNEWNAME
executingcommand:SETNEWNAME
executingcommand:SETNEWNAME
executingcommand:SETNEWNAME
Startingbackupat08-MAR-11
usingchannelORA_DISK_1
channelORA_DISK_1:startingdatafilecopy
--在这里开始copy数据文件,比较慢。
inputdatafilefilenumber=00001name=/u01/app/oracle/oradata/orcl/system01.dbf
outputfilename=/u01/app/oracle/oradata/orcl/system01.dbftag=TAG20110308T010221
channelORA_DISK_1:datafilecopycomplete,elapsedtime:00:00:45
channelORA_DISK_1:startingdatafilecopy
inputdatafilefilenumber=00002name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
outputfilename=/u01/app/oracle/oradata/orcl/sysaux01.dbftag=TAG20110308T010221
channelORA_DISK_1:datafilecopycomplete,elapsedtime:00:00:35
channelORA_DISK_1:startingdatafilecopy
inputdatafilefilenumber=00003name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
outputfilename=/u01/app/oracle/oradata/orcl/undotbs01.dbftag=TAG20110308T010221
channelORA_DISK_1:datafilecopycomplete,elapsedtime:00:00:15
channelORA_DISK_1:startingdatafilecopy
inputdatafilefilenumber=00004name=/u01/app/oracle/oradata/orcl/users01.dbf
outputfilename=/u01/app/oracle/oradata/orcl/users01.dbftag=TAG20110308T010221
channelORA_DISK_1:datafilecopycomplete,elapsedtime:00:00:01
Finishedbackupat08-MAR-11
sqlstatement:altersystemarchivelogcurrent
contentsofMemoryScript:
{
backupascopyreuse
archiveloglike"/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_03_08/o1_mf_1_7_6qb3zyoo_.arc"auxiliaryformat
"/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_7_745174404.dbf";
catalogclonearchivelog"/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_7_745174404.dbf";
switchclonedatafileall;
}
executingMemoryScript
Startingbackupat08-MAR-11
usingchannelORA_DISK_1
channelORA_DISK_1:startingarchivedlogcopy
inputarchivedlogthread=1sequence=7RECID=3STAMP=745203841
outputfilename=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_7_745174404.dbfRECID=0STAMP=0
channelORA_DISK_1:archivedlogcopycomplete,elapsedtime:00:00:07
Finishedbackupat08-MAR-11
catalogedarchivedlog
archivedlogfilename=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_7_745174404.dbfRECID=3STAMP=745203848
datafile1switchedtodatafilecopy
inputdatafilecopyRECID=3STAMP=745203849filename=/u01/app/oracle/oradata/orcl/system01.dbf
datafile2switchedtodatafilecopy
inputdatafilecopyRECID=4STAMP=745203849filename=/u01/app/oracle/oradata/orcl/sysaux01.dbf
datafile3switchedtodatafilecopy
inputdatafilecopyRECID=5STAMP=745203849filename=/u01/app/oracle/oradata/orcl/undotbs01.dbf
datafile4switchedtodatafilecopy
inputdatafilecopyRECID=6STAMP=745203849filename=/u01/app/oracle/oradata/orcl/users01.dbf
contentsofMemoryScript:
{
setuntilscn844147;
recover
clonedatabase
deletearchivelog
;
}
executingMemoryScript
executingcommand:SETuntilclause
Startingrecoverat08-MAR-11
allocatedchannel:ORA_AUX_DISK_1
channelORA_AUX_DISK_1:SID=18devicetype=DISK
startingmediarecovery
archivedlogforthread1withsequence7isalreadyondiskasfile/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_7_745174404.dbf
archivedlogfilename=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_7_745174404.dbfthread=1sequence=7
mediarecoverycomplete,elapsedtime:00:00:01
Finishedrecoverat08-MAR-11
contentsofMemoryScript:
{
shutdowncloneimmediate;
startupclonenomount;
sqlclone"altersystemsetdb_name=
''ORCL''comment=
''ResettooriginalvaluebyRMAN''scope=spfile";
sqlclone"altersystemresetdb_unique_namescope=spfile";
shutdowncloneimmediate;
startupclonenomount;
}
executingMemoryScript
databasedismounted
Oracleinstanceshutdown
connectedtoauxiliarydatabase(notstarted)
Oracleinstancestarted
TotalSystemGlobalArea146472960bytes
FixedSize1335080bytes
VariableSize92274904bytes
DatabaseBuffers50331648bytes
RedoBuffers2531328bytes
sqlstatement:altersystemsetdb_name=''ORCL''comment=''ResettooriginalvaluebyRMAN''scope=spfile
sqlstatement:altersystemresetdb_unique_namescope=spfile
Oracleinstanceshutdown
connectedtoauxiliarydatabase(notstarted)
Oracleinstancestarted
TotalSystemGlobalArea146472960bytes
FixedSize1335080bytes
VariableSize92274904bytes
DatabaseBuffers50331648bytes
RedoBuffers2531328bytes
sqlstatement:CREATECONTROLFILEREUSESETDATABASE"ORCL"RESETLOGSARCHIVELOG
MAXLOGFILES16
MAXLOGMEMBERS3
MAXDATAFILES100
MAXINSTANCES8
MAXLOGHISTORY292
LOGFILE
GROUP1('/u01/app/oracle/oradata/orcl/redo01.log')SIZE50MREUSE,
GROUP2('/u01/app/oracle/oradata/orcl/redo02.log')SIZE50MREUSE,
GROUP3('/u01/app/oracle/oradata/orcl/redo03.log')SIZE50MREUSE
DATAFILE
'/u01/app/oracle/oradata/orcl/system01.dbf'
CHARACTERSETZHS16GBK
contentsofMemoryScript:
{
setnewnamefortempfile1to
"/u01/app/oracle/oradata/orcl/temp01.dbf";
switchclonetempfileall;
catalogclonedatafilecopy"/u01/app/oracle/oradata/orcl/sysaux01.dbf",
"/u01/app/oracle/oradata/orcl/undotbs01.dbf",
"/u01/app/oracle/oradata/orcl/users01.dbf";
switchclonedatafileall;
}
executingMemoryScript
executingcommand:SETNEWNAME
renamedtempfile1to/u01/app/oracle/oradata/orcl/temp01.dbfincontrolfile
catalogeddatafilecopy
datafilecopyfilename=/u01/app/oracle/oradata/orcl/sysaux01.dbfRECID=1STAMP=745203867
catalogeddatafilecopy
datafilecopyfilename=/u01/app/oracle/oradata/orcl/undotbs01.dbfRECID=2STAMP=745203867
catalogeddatafilecopy
datafilecopyfilename=/u01/app/oracle/oradata/orcl/users01.dbfRECID=3STAMP=745203867
datafile2switchedtodatafilecopy
inputdatafilecopyRECID=1STAMP=745203867filename=/u01/app/oracle/oradata/orcl/sysaux01.dbf
datafile3switchedtodatafilecopy
inputdatafilecopyRECID=2STAMP=745203867filename=/u01/app/oracle/oradata/orcl/undotbs01.dbf
datafile4switchedtodatafilecopy
inputdatafilecopyRECID=3STAMP=745203867filename=/u01/app/oracle/oradata/orcl/users01.dbf
contentsofMemoryScript:
{
Alterclonedatabaseopenresetlogs;
}
executingMemoryScript
databaseopened
FinishedDuplicateDbat08-MAR-11
RMAN>
复制结束。查询:
Target库:
SQL>selectname,dbidfromv$database;
NAMEDBID
-------------------
ORCL1272955137
Auxiliary库:
SQL>selectname,dbidfromv$database;
NAMEDBID
-------------------
ORCL1272984602
转载于:https://blog.51cto.com/ecloud/1323025
Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库相关推荐
- mysql2ora datacopy,Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
我们看一个完整的复制示例: Target DB: IP: 192.168.2.42 SID:orcl Auxiliary: IP:192.168.2.43 SID:orcl 我这里复制的目录相同. 如 ...
- oracle copy database,oracle 11g duplicate from active database 复制数据库(二)
下面介绍将数据库复制到远程主机相同目录结构的操作步骤 1.创建辅助实例的密码文件(这里辅助实例名为dup) ,在目的主机上为辅助实例创建密码文件可以有以下选项: .手动创建密码文件,对于duplica ...
- Oracle 11gR2 使用RMAN Duplicate复制数据库
Oracle 11gR2 使用RMAN Duplicate复制数据库 整体步骤 构建辅助数据库目录结构配置辅助数据库相关参数 安装软件并创建数据库 开启归档 配置静态监听 启动数据库到nomount状 ...
- Oracle Study之--Oracle 11gR2通过RMAN克隆数据库
Oracle Study之--Oracle 11gR2通过RMAN克隆数据库 Purpose of Database Duplication A duplicate database is usefu ...
- Oracle 11g Data Guard 使用duplicate from active database 创建 standby database
用这种方式来搭建DG ,主库的停机时间很少,只需要重启一下,使参数生效.也可以用这种方法进行DB迁移.DG搭建好,然后把备库激活就可以了. 这样整个迁移中宕机时间也比较短. Oracle 11g的py ...
- Oracle 11g 使用duplicate from active database 创建物理ADG
1.概述: 之前使用冷备的方式搭建了一个物理ADG环境,但是由于冷备需要停库.因此在一些大型库上使用这种技术就不怎么实用了,而使用duplicatefrom active database则必免了这种 ...
- Oracle 12C 利用Rman Duplicate搭建 Data Guard
环境(备库只需要安装数据库软件): 主库:192.168.1.100 OS: CentOS 7.3 X64 DB: ORACLE12.2.0.1 SID ...
- Oracle基础知识之synonym(同义词)、database link(数据库链接)、数据完整性
Oracle基础知识之同义词.数据库链接.数据完整性 一.同义词 (一)概念 (二)分类 1.私有同义词 2.公共同义词 3.远程同义词 (三)作用 二.数据库链接 (一)概念 (二)分类 1.私有数 ...
- Duplicate standby database from active database
11g Release1 中引入了新的RMAN duplicate命令,即duplicate from active database命令.利用该命令可以更加便捷地创建Data Guard环境,你甚至 ...
最新文章
- 数组--将两个有序数组a,b合并成新的有序数组c
- react native 的底部导航栏以及跳转页面带参数
- python建立空矩阵_SciPy创建稀疏矩阵
- jQuery EasyUI 选项卡面板tabs使用实例精讲
- mysql 上级组织参数值_MySQL参数group_replication_consistency说明
- 「Python」ubuntu使用make命令安装python(带详细解释和防坑指南)
- c语言序列化后只有四位小数,《C编程.高级C》4.序列化
- 【消息队列之rabbitmq】学习RabbitMQ必备品之一
- android+wear+游戏,技术帝:Android Wear手表运行一代PS游戏
- MySQL 8.0查找my.ini文件位于C:\ProgramData\MySQL\MySQL Server 8.0
- 安卓帧数监测软件_还在用游戏加加看帧数?驴哥教你怎么用微星小飞机的硬件监测功能...
- 单片机炫彩灯实训报告_单片机实验报告——流水灯
- 关于C++ 存储类型auto、register、static、extern、mutable
- 移动流量转赠给好友_中国移动怎样转赠手机流量?月结流量用不完怎办
- windows命令行下schtasks创建定期任务
- 贝壳找房app使用Glide替换Picasso
- ❤️保姆级!超详解!远程连接Linux虚拟机!❤️
- mysql DAYOFWEEK 和 WEEKDAY获取星期
- 数据库系统概论②——关系数据库基础
- 独角兽项目 4 - 失败的发布
热门文章
- qgridlayout 滚动时固定第一行_滚动直线导轨副的安装技术
- linux共享内存的定义,共享内存是什么意思 Linux系统如何共享内存
- 排序字段设计_「原创」第四章、模型设计
- 4gl 上传文件_文件管理密码相册工具app下载-文件管理密码相册工具app安卓版下载v1.8...
- python文件打开模式rb表示只读模式打开文件_一篇搞懂python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)...
- 农信计算机资料录入试题,农村信用社考试计算机测试题(一)
- c++17(17)-异常try catch,operator[],vector at
- Rust-Cargo(3)
- 【小白学PyTorch】13.EfficientNet详解及PyTorch实现
- 『PPYOLO tiny尝鲜』基于PaddleDetection的人脸疲劳检测