RMAN duplicate数据库

使用RMAN的duplicate命令来创建一个辅助数据库,该辅助数据库一但创建成功就和源数据库脱离了关系,可以使用辅助数据库做一些实验。

本文利用源数据库在本机的其他目录中创建一个辅助数据库。

源数据库:

SID = ORCL

辅助数据库:

SID = DUP

源数据库和辅助数据库的物理文件目录见下面initDUP.ora.

步骤一. 创建辅助数据库的秘钥文件。

执行orapwd命令来创建秘钥文件,远程登录数据库时就需要秘钥文件中所保存的密码。

命令:

$: orapwd file=orapwDUP password=oracle entries=30

秘钥文件的格式为orapwSID,我们的辅助数据库SID为DUP。

步骤二. 创建辅助数据库的参数文件initDUP.ora

DB_NAME='DUP'
shared_pool_size=163577856
control_files='/u01/app/oracle/oradata/DUP/controlfile/o1_mf_blt7js24_.ctl','/u01/app/oracle/oradata/DUP/controlfile/o1_mf_blt7js9b_.ctl'
db_block_size=8192
DB_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/ORCL/datafile','/u01/app/oracle/oradata/DUP/datafile')
LOG_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/ORCL/onlinelog','/u01/app/oracle/oradata/DUP/onlinelog')

我们的辅助数据库中只有这必要的6个参数。因为我们是在同一台机器上创建辅助数据库,所以辅助数据库和源数据库的数据文件目录和联机日志文件目录必然不同,所以需要对目录进行转换,最后后两个参数就是源数据库和辅助数据库数据文件和联机日志文件的目录转换。

然后sqlplus连接上辅助数据库上,注意转换环境变量$ORACLE_SID。(使用export ORACLE_SID=DUP命令进行转换)

使用initDUP.ora来创建spfile:

SQL>create spfile from pfile。

步骤三. 启动辅助数据库

由于此时辅助数据库并没有控制文件,所以只把数据库启动到nomount状态

SQL> startup nomount;

步骤四. 配置监听和网络服务名

为辅助数据库DUP创建监听,在已有的监听器LISTENER中将数据库DUP添加进来就可以了,可以在Linux使用netca和netmgr两个工具来完成,也可以在$ORACLE_HOME/netwaork/admin/listener.ora中创建如下文本:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = ORCL)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = DUP)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = DUP)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.155)(PORT = 1521))
  )

修改$ORACLE_HOME/network/admin/tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.155)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

DUP =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.155)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DUP)
    )
  )

配置完上述两个文件后,记得将监听进程LISTENER启动起来

$ lsnrctl start

步骤五.启动源数据库到mount或open状态

因为我们要使用rman连接源数据库,所以必须将源数据库启动到mount或open状态。

将ORACLE_SID切换为ORCL后

sql> startup

步骤六.验证源数据库的备份

需要使用源数据库的备份来创建辅助数据库,使用rman连接到ORCL数据库上,使用list backup查看是否有备份,保险起见,可以重新做个全备。

步骤七.执行复制

使用rman连接到源数据库和辅助数据库上

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

然后执行如下命令进行复制

run {

allocate channel c1 device type disk;

duplicate target database to dup;

}

命令执行完毕后就可以连接到辅助数据库进行操作了。

参考文献:

《涂抹Oracle》

时间: 2024-08-02 07:03:34

RMAN duplicate数据库的相关文章

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,且

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

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

客户要求搭建一套测试库,现在环境是window下oracle RAC,使用能使用导入导出最好,但是目前是归档模式,使用导入导出风险太大,使用RMAN备份服务器上没有足够的空间.好吧,最好的方法就是RMAN duplicate的方法了.先在单机环境测试一下! Oracle 11g的RMAN duplicate 可以通过Activedatabase duplicate和Backup-based duplicate两种方法实现.本案例使用的是Active database duplicate,对于Ac

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:

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 功能强大,不需要先把目

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

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

基于RMAN从活动数据库异机克隆(rman duplicate from active DB)

Oracle 11g RMAN能够实现基于活动数据库进行异机克隆,从而省去需要先备份再ftp到辅助服务器的过程.这一切可以全部交给Oracle来搞定.在克隆期间,Oracle会读取Target DB的所有数据结构,无须人为的干预(不同的磁盘系统,文件路径与文件名要指定转换方式).尽管如此,对于生产环境数据库在整个克隆期间性能会下降,其次在Target Server与Auxiliary Server中会产生较大的网络流量.如果这些可以接受的话,从活动数据库进行异机克隆是一个不错的选择.本文首先描述

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

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

利用rman duplicate重建oracle dataguard standby数据库

问题背景 适用情况: 操作系统: redhat 6.5 数据库: oracle 11g r2 问题描述: failover后原主库无法恢复和启动或者丢失主备关系 优点 不需要对primary数据库停机 执行简单 实施前准备工作 1.测试dumplicate 2.测试环境数据库利用dumplicate重建stanby数据库 实施步骤 备份新主库 注意备份脚本,应该备份到服务器的本地磁盘而不是带库. rman_backup.sh备份本地脚本: #!/bin/sh #oracle environmen