当前位置:  数据库>oracle

使用RMAN Duplicate方法搭建异名数据库实验

    来源: 互联网  发布时间:2017-06-04

    本文导语: Oracle RMAN工具工作环境一共有三个数据库源对象:target、catalog和auxiliary。 target就是进行备份操作的源数据库,我们进行备份还原的对象都是在这个库上进行。默认情况下,备份集合信息是保存在controlfile,catalog是一个可选数据...

Oracle RMAN工具工作环境一共有三个数据库源对象:target、catalog和auxiliary。

target就是进行备份操作的源数据库,我们进行备份还原的对象都是在这个库上进行。默认情况下,备份集合信息是保存在controlfile,catalog是一个可选数据库,备份元数据可以单独放在catalog数据库中保存。auxiliary是作为辅助操作进行的,一些与备份还原相关的操作,都可以利用auxiliary上完成。
 
本篇从10g数据库入手,实验在相同host上构建不同名clone数据库。注意:在其他主机上进行clone操作完全相同。

推荐阅读:

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密  

1、环境介绍

 

我们选择Oracle 10gR2进行测试,Linux环境主机。

 

SQL> select * from v$version;

BANNER

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

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 – Production

 

2、Target数据库备份

 

当前数据库没有选择catalog,采用controlfile进行备份文件。数据库实例名称为oratest,作为数据源。此时备份信息如下:

 

RMAN> list backup;

 

List of Backup Sets

===================

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

13      Full    595.90M    DISK        00:00:30    05-MAR-14     

        BP Key: 13  Status: AVAILABLE  Compressed: NO  Tag: TAG20140305T111526

        Piece Name: /u01/app/oracle/flash_recovery_area/ORATEST/backupset/2014_03_05/o1_mf_nnndf_TAG20140305T111526_9kf5pgf2_.bkp
 
 

(篇幅原因,有省略……)

BS Key  Size      Device Type Elapsed Time Completion Time

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

15      15.07M    DISK        00:00:02    05-MAR-14     

        BP Key: 15  Status: AVAILABLE  Compressed: NO  Tag: TAG20140305T112405

        Piece Name: /u01/app/oracle/flash_recovery_area/ORATEST/backupset/2014_03_05/o1_mf_annnn_TAG20140305T112405_9kf66ppv_.bkp
 
 

  List of Archived Logs in backup set 15

  Thrd Seq    Low SCN    Low Time  Next SCN  Next Time

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

  1    2      576174    04-MAR-14 578638    05-MAR-14

  1    3      578638    05-MAR-14 578643    05-MAR-14

  1    4      578643    05-MAR-14 578677    05-MAR-14

 

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

16      Full    6.80M      DISK        00:00:01    05-MAR-14     

        BP Key: 16  Status: AVAILABLE  Compressed: NO  Tag: TAG20140305T112407

        Piece Name: /u01/app/oracle/flash_recovery_area/ORATEST/autobackup/2014_03_05/o1_mf_s_841404247_9kf66qvs_.bkp
 
  Control File Included: Ckp SCN: 578684      Ckp time: 05-MAR-14

  SPFILE Included: Modification time: 05-MAR-14

 

注意:在备份过程中,一定要有一个单独的backup archivelog all的过程,将归档日志作为单独备份集合保存。如果不进行这个操作,在进行duplicate过程中会出现错误。
 
 

RMAN> backup archivelog all;

 

Starting backup at 05-MAR-14

(篇幅原因,有省略……)

Starting Control File and SPFILE Autobackup at 05-MAR-14

piece handle=/u01/app/oracle/flash_recovery_area/ORATEST/autobackup/2014_03_05/o1_mf_s_841404247_9kf66qvs_.bkp comment=NONE
 
Finished Control File and SPFILE Autobackup at 05-MAR-14

 

在进行duplicate操作过程中,target数据库最好维持mount状态!

 

3、网络配置

 

无论是在本机还是异地进行duplicate构建,保证target和auxiliary互联是重要的。所以在TNS连接方面,要进行配置过程。

Oracle Net配置三个文件,listener.ora、tnsnames.ora和sqlnet.ora。起码要保证tnsnames.ora的互联配置。

 

[oracle@SimpleLinuxUp admin]$ cat tnsnames.ora

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
 
# Generated by Oracle configuration tools.

 

ORATEST = --target

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = oratest)

    )

  )

 

ORAAUX = --目标auxiliary

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = oraaux)

    )

  )

 

一些文献(包括官方MOS文章)都推荐额外进行listener.ora的配置,将两个服务作为静态注册注册进监听程序listener。这样做的基础是这样的:在进行duplicate过程中,如果我们是从target端进行操作,就需要通过auxiliary端的监听器访问auxiliary。而此时auxiliary只有一个实例对象,虽然可以动态注册,但是注册状态是blocked。
 
 

Service "oraaux" has 1 instance(s).

  Instance "oraaux", status BLOCKED, has 1 handler(s) for this service...

 

从9i到11g,Blocked状态是不允许进行远程连入的。当我们试图通过监听器连入的时候,是会报错。

 

MAN> connect auxiliary sys/oracle@oraaux

 

RMAN-00571: =============================

RMAN-00569: ========= ERROR MESSAGE STACK FOLLOWS =====

RMAN-00571: ============================

RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections
 
 

解决方法有两个:一个就是放弃使用动态注册方法,就需要手工修改listener.ora文件。也就是为什么很多网络同仁文章中推荐这个步骤。另一种方法就是从auxiliary端进行duplicate操作,这样使用/匿名登录是没有问题的。第二种方法的缺点是一些时候需要将备份集合传递到auxiliary所在服务器目录中。
 
笔者本次就选取第二种方法进行实验。

 

更多详情见请继续阅读下一页的精彩内容:


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 使用了QWidget的程序,如何使用后台程序启动它?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 共享内存一般是怎么使用的,是同消息队列配合使用么
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • Jsp可否使用带有GUI的JavaBean,如何使用?
  • c/c++预处理命令预#,##使用介绍
  • asp程序使用的access在Linux下如何使用!
  • 在div中使用css让文字底部对齐的方法
  • 新装的Linux使用root用户不能使用FTP?
  • Python namedtuple(命名元组)使用实例
  • LINUX下使用Eclipse,如何使用交叉编译器?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,