通过RMAN duplicate迁移数据库(单机到单机)

客户要求搭建一套测试库,现在环境是window下oracle RAC,使用能使用导入导出最好,但是目前是归档模式,使用导入导出风险太大,使用RMAN备份服务器上没有足够的空间。好吧,最好的方法就是RMAN duplicate的方法了。先在单机环境测试一下!

Oracle 11g的RMAN duplicate 可以通过Activedatabase duplicate和Backup-based duplicate两种方法实现。本案例使用的是Active database duplicate,对于Active databaseduplicate来说,在克隆数据库时不用对Source备份,这对于大数据特别是T级别的数据库来说优点非常明显,复制前不需要进行备份,减少了备份和传送备份的时间,同时节省备份空间。

本次测试将PROD2数据库复制到另外一台服务器上,名称为PROD5

查看源库信息

源库必须为归档模式,并启用快速恢复区;确认数据文件和日志文件路径!

[[email protected] ~]$ sqlplus / as sysdba

SQL*Plus:Release 11.2.0.3.0 Production on Tue Sep 5 14:56:01 2017

Copyright (c)1982, 2011, Oracle.  All rights reserved.

Connected to:

Oracle Database11g Enterprise Edition Release 11.2.0.3.0 - Production

With thePartitioning, OLAP, Data Mining and Real Application Testing options

[email protected]>selectstatus from v$instance;

STATUS

------------

OPEN

[email protected]>selectname from v$datafile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/PROD2/system01.dbf

/u01/app/oracle/oradata/PROD2/sysaux01.dbf

/u01/app/oracle/oradata/PROD2/undotbs01.dbf

/u01/app/oracle/oradata/PROD2/users01.dbf

/u01/app/oracle/oradata/PROD2/example01.dbf

[email protected]>selectmember from v$logfile;

MEMBER

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/PROD2/redo03.log

/u01/app/oracle/oradata/PROD2/redo02.log

/u01/app/oracle/oradata/PROD2/redo01.log

[email protected]>showparameter name

NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

db_file_name_convert                 string

db_name                              string      PROD2

db_unique_name                       string      PROD2

global_names                         boolean     FALSE

instance_name                        string      PROD2

lock_name_space                      string

log_file_name_convert                string

processor_group_name                 string

service_names                        string      PROD2.us.oracle.com

构建测试库PROD5:

1)生成测试库pfile

可以将源库的pfile拷贝过来,将名称替换,也可以重新生成pfile,下面是重新生成的!

[[email protected]]$ cat init.ora | grep -v ^#| grep -v ^$ >initPROD5.ora

[[email protected]]$ vi initPROD5.ora

db_name=‘PROD5‘

memory_target=1G

processes = 150

audit_file_dest=‘$ORACLE_BASE/admin/PROD5/adump‘

audit_trail=‘db‘

db_block_size=8192

db_domain=‘us.oracle.com‘

db_recovery_file_dest=‘$ORACLE_BASE/fast_recovery_area‘

db_recovery_file_dest_size=2G

diagnostic_dest=‘$ORACLE_BASE‘

dispatchers=‘(PROTOCOL=TCP)(SERVICE=PROD5XDB)‘

open_cursors=300

remote_login_passwordfile=‘EXCLUSIVE‘

undo_tablespace=‘UNDOTBS1‘    此处必须和源库名称一样!

control_files =‘/u01/app/oracle/oradata/PROD5/ora_control01.ctl‘,‘/u01/app/oracle/fast_recovery_area/PROD5/ora_control02.ctl‘

compatible=‘11.2.0‘

db_file_name_convert=‘/u01/app/oracle/oradata/PROD2/‘,‘/u01/app/oracle/oradata/PROD5/‘

log_file_name_convert=‘/u01/app/oracle/oradata/PROD2/‘,‘/u01/app/oracle/oradata/PROD5/‘,‘/u01/app/oracle/fast_recovery_area/PROD2/onlinelog/‘,‘/u01/app/oracle/fast_recovery_area/PROD5/‘(日志文件的对应关系必须确认好,否则会报错)

2)创建测试库相关目录(根据pfile信息创建相关目录)

[[email protected]]$ mkdir PROD5

[[email protected]]$ cd ../admin

[[email protected]]$ mkdir -p PROD5/adump

3)生成口令文件  可以直接将源库的密码文件拷贝过来,或者重新生成,但是两边的密码必须一致!

[email protected]]$ orapwd file=orapwPROD5 password=oracle entries=30

传输参数文件scp initPROD2.ora [email protected]:/u01/app/oracle/product/11.2.0/db_1/dbs

传输密码文件scp orapwPROD2 [email protected]:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwPROD5

测试库启动到nomout状态

[[email protected]]$ export ORACLE_SID=PROD5

[[email protected]]$ sqlplus / as sysdba

SQL*Plus:Release 11.2.0.3.0 Production on Tue Sep 5 08:35:48 2017

Copyright (c)1982, 2011, Oracle.  All rights reserved.

Connected to anidle instance.

[email protected]>startupnomount

配置监听

两端都要配置源库和目标库的监听和tnsname.ora

源库静态监听信息

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=PROD2.us.oracle.com)

(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)

(SID_NAME=PROD2))

)

源库tnsnames.ora配置信息

PROD2 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = orar2p1.example.com)(PORT= 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = PROD2.us.oracle.com)

)

)

PROD5 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = orar2p2.example.com)(PORT= 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = PROD5.us.oracle.com)

)

)

目标库静态监听信息

SID_LIST_LISTENER=

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME =PROD5.us.oracle.com)

(ORACLE_HOME =/u01/app/oracle/product/11.2.0/db_1)

(SID_NAME =PROD5)

)

)

目标库tnsnames.ora配置信息

PROD2 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = orar2p1.example.com)(PORT= 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = PROD2.us.oracle.com)

)

)

PROD5 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = orar2p2.example.com)(PORT= 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = PROD5.us.oracle.com)

)

)

在源库PROD2启动rman,复制数据库

开始数据库复制

[[email protected]]$ rman target sys/[email protected] auxiliary sys/[email protected]

RecoveryManager: Release 11.2.0.3.0 - Production on Tue Sep 5 08:26:17 2017

Copyright (c)1982, 2011, Oracle and/or its affiliates. All rights reserved.

connected totarget database: PROD2 (DBID=1512727797)

connected toauxiliary database: PROD5 (not mounted)

RMAN> duplicate target database to prod5 from active database nofilenamecheck;

duplicate targetdatabase to prod from active database nofilenamecheck;

--如果主备库文件路径不变,要加nofilenamecheck(否则会报错)

验证克隆

[[email protected]]$ sql

SQL*Plus:Release 11.2.0.3.0 Production on Tue Sep 5 08:41:35 2017

Copyright (c)1982, 2011, Oracle.  All rights reserved.

Connected to:

Oracle Database11g Enterprise Edition Release 11.2.0.3.0 - Production

With thePartitioning, OLAP, Data Mining and Real Application Testing options

[email protected]>selectstatus from v$instance;

STATUS

------------

OPEN

[email protected]>selectname from v$datafile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/PROD5/system01.dbf

/u01/app/oracle/oradata/PROD5/sysaux01.dbf

/u01/app/oracle/oradata/PROD5/undotbs01.dbf

/u01/app/oracle/oradata/PROD5/users01.dbf

/u01/app/oracle/oradata/PROD5/example01.dbf

[email protected]>selectmember from v$logfile;

MEMBER

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/PROD5/redo03.log

/u01/app/oracle/oradata/PROD5/redo02.log

/u01/app/oracle/oradata/PROD5/redo01.log

[email protected]>showparameter control

NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

_optimizer_extended_stats_usage_continteger     192

rol

_optimizer_join_order_control        integer     3

control_file_record_keep_time        integer     7

control_files                        string      /u01/app/oracle/oradata/PROD5/

ora_control01.ctl,/u01/app/or

acle/fast_recovery_area/PROD5/

ora_control02.ctl

control_management_pack_access       string      DIAGNOSTIC+TUNING

[email protected]>

时间: 2024-10-06 03:53:30

通过RMAN duplicate迁移数据库(单机到单机)的相关文章

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

Oracle 11gR2 使用RMAN Duplicate复制数据库  作者:吴伟龙 PrudentWoo QQ:286507175    前言:     上周刚做完一个项目,用户要求RAC的数据库能够自动备份到另外一个单节点上,单节点能够正常拿起来就能用.当时跟他们讨论的是用ADG来做,但通过描述后,用户觉得如果要人工干预的话太麻烦,它不想做任何的人工干预,实现数据自动到这台单机上来,那只是一台备用的数据库,没事的时候可以登录上去看看历史的数据情况. 这个时候我提出了11g的RMAN Dupl

11g 使用rman duplicate复制数据库,创建辅助实例

一,创建所需目录 1)创建审计文件目录 [email protected] /dsg/oracle11$ cd $ORACLE_BASE/admin [email protected] /u01/app/oracle/admin$ mkdir -p PROD1/adump 2)创建数据文件目录 mkdir -p /dsg/oracle11/PROD1 二,创建参数文件和密码文件 这里,复制主库的参数文件和密码文件,参数文件稍作修改 [email protected] /dsg$ export O

Oracle 11gR2使用RMAN duplicate复制数据库

11g的RMAN duplicate 个人感觉比10g的先进了很多,10g需在rman备份的基础上进行复制,使用RMAN duplicate创建一个数据完全相同但DBID不同的数据库.而11g的RMAN duplicate 可通过Active database duplicate和Backup-based duplicate两种方法实现.Active database duplicate方式不需要先把目标数据库进行rman备份,只要目标数据库处于归档模式下即可直接通过网络对数据库进行copy,且

Oracle11gR2使用RMAN duplicate复制数据库——active database duplicate

11gR2的RMAN duplicate 个人感觉比10g的先进了很多,10G需要在rman备份的基础上进行复制,使用 RMAN duplicate 创建一个数据完全相同但DBID不同的数据库.而11g的RMAN duplicate 可以通过Active database duplicate和Backup-based duplicate两种方法实现.这里的测试使用的是Active database duplicate,因为Active database duplicate 功能强大,不需要先把目

Oracle11gR2使用RMAN duplicate复制数据库——Backup-based database duplicate

本实例测试ORACLE 11g使用rman复制数据库.11g的RMAN duplicate 可以通过Active database duplicate和Backup-based duplicate两种方法实现.这里的测试使用的是Backup-based duplicate. 应用场景.基于Active database duplicate参考http://hbxztc.blog.51cto.com/1587495/1872754 1.旧库或网络不可用,但是有备份 实验环境: target db:

使用rman迁移数据库到异机

迁移数据库的方法有多种,较为常用的则是使用RMAN来迁移.使用RMAN迁移数据库属于数据库的物理备份与恢复范畴,整个过程中数据库的相关信息是完整地镜像.因此,基于此种方式还原恢复的数据库用于测试会使得与真实的生产环境差异相对较小. 一.主要步骤     1.备份数据库     2.拷贝备份到目的服务器     3.为目标数据库创建项目目录     4.为目标数据库创建pfile或spfile(使用RMAN还原或复制原pfile到目的服务器)     5.还原控制文件     6.还原数据文件  

MySQL 5.6对已有Mysql单实例的机器,再添加mysql数据库,实现单机多实例

一.需求: 对已有Mysql单实例的机器,再添加两个mysql数据库,实现单机多实例. 一个绑定在端口3306,另外两个绑定在端口3307,3308: 数据分别存放在/data/mysqldata./data/mysqldata2./data/mysqldata3 三个实例均采用InnoDB作为默认的存储引擎,字符编码采用UTF-8: 三个实例均采用相同的性能优化配置参数: MySQL的源码安装请看我的另一篇博客http://yylinux.blog.51cto.com/8831641/1677

RMAN duplicate数据库

使用RMAN的duplicate命令来创建一个辅助数据库,该辅助数据库一但创建成功就和源数据库脱离了关系,可以使用辅助数据库做一些实验. 本文利用源数据库在本机的其他目录中创建一个辅助数据库. 源数据库: SID = ORCL 辅助数据库: SID = DUP 源数据库和辅助数据库的物理文件目录见下面initDUP.ora. 步骤一. 创建辅助数据库的秘钥文件. 执行orapwd命令来创建秘钥文件,远程登录数据库时就需要秘钥文件中所保存的密码. 命令: $: orapwd file=orapwD

基于RMAN的异机数据库克隆(rman duplicate)

对于基于生产环境下的数据库的版本升级或者测试新的应用程序的性能及其影响,备份恢复等等,我们可以采取从生产环境以克隆的方式将其克隆到本地而不影响生产数据库的正常使用.实现这个功能我们可以借助rman duplicate方式以及其简单的方式来完成.duplicate方式不同于OS级别的备份,它会为辅助数据库(克隆出来的数据库)生成一个新的dbid,而能够同时将目标数据库(原数据库)与辅助数据库注册到同一个恢复目录.本文描述了使用rman duplicate实现异机数据库克隆. 1.RMAN支持的du