日期:2014-05-16  浏览次数:20501 次

转载三思哥的ORACLE RAC数据库配置Dataguard环境

ORACLE 中的RAC特性保护的是实例,RMAN特性保持的是数据,而Dataguard特性则是连实例带数据一块"保"了,三个特性相互配合能够在一定程度上构建一个安全可靠高可用的ORACLE数据库平台。

  之前三思笔记系列文章分别描述过RAC的创建、RMAN管理以及Dataguard特性应用等方面的内容,本文将通过实践,演示如何为RAC数据库创建Dataguard配置。

一、做足准备工作

  Dataguard 环境的配置就跟谈恋爱似的,不是一个人说了算,必须要两个人(Primary?db+Standby?db)相互配合。不过在这两个真正搭上线之前,临出门拾掇拾掇还是非常有必要的,最起码得照照镜子,看看眼神够不够犀利,腰肢够不够芙蓉,做好往前推三百年,往后推三百年,总共六百年无人超越的思想准备。

  我个人认为,DBA是个很严谨的岗位,因此同样要求从事这项工作的人也尽可能严谨,准备这个事儿呢,是为了让后续的操作更稳妥。对于Dataguard环境的创建,这个准备并不复杂,就当是环境初始化吧,如果看过之前的三思笔记--一步一步学Dataguard,那么本步准备工作就可以直接跳过了。

  设定环境如下:

    Primary :

    Db_unique_name :jssdb

    IP :192.168.10.11/12

    DB?Version :10.2.0.4

    Storage :ASM

    Standby :

    Db_unique_name :jssstd

    IP :192.168.10.101

    DB?Version :10.2.0.4

    Storage :local?disk

  准备工作如下:

  • Standby 端$ORACLE_BASE/admin/下创建相应trace目录;
  • Primary 和Standby端修改listener.ora和tnsnames.ora文件,配置监听和本地的网络服务名,要确保两端通过tnsping能够互通;
  • Primary 端置归档及force?logging状态;
  • 查询Primary端主要文件的路径并记录,一方面是为了后续路径转换,另外一方面省的复制文件时错过了什么,语句如下:

    SQL>?select?name?from?v$datafile;

    NAME

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

    +ASMDISK1/jssdb/datafile/system.260.703671683

    +ASMDISK1/jssdb/datafile/undotbs1.259.703671695

    +ASMDISK1/jssdb/datafile/sysaux.266.703671697

    +ASMDISK1/jssdb/datafile/undotbs2.258.703671705

    +ASMDISK1/jssdb/datafile/users.257.703671709

    +ASMDISK1/jssdb/datafile/jsstbs.269.703779631

    6?rows?selected.

    SQL>?select?name?from?v$tempfile;

    NAME

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

    +ASMDISK1/jssdb/tempfile/temp.265.703671701

    SQL>?select?member?from?v$Logfile;

    MEMBER

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

    +ASMDISK1/jssdb/onlinelog/group_1.263.703671679

    +ASMDISK1/jssdb/onlinelog/group_2.261.703671681

    +ASMDISK1/jssdb/onlinelog/group_3.256.703672257

    +ASMDISK1/jssdb/onlinelog/group_4.268.703672257

    二、开始执行创建

  •  通过Primary?db创建Standby?db的spfile

  •   要启动Standby端的实例,需要相应的初始化参数文件,这里我们可以通过Primary?spfile创建出Standby的pfile,操作方法不需要多说了吧,最后修改的standby端pfile内容如下(注意确保相关路径的正确哟):

      *.audit_file_dest=¨/data/ora10g/admin/jssstd/adump¨

      *.background_dump_dest=¨/data/ora10g/admin/jssstd/bdump¨

      *.compatible=¨10.2.0.1.0¨

      *.control_files=¨/data1/jssstd/control01.ctl¨,¨/data1/jssstd/control02.ctl¨,¨/data1/jssstd/control03.ctl¨

      *.core_dump_dest=¨/data/ora10g/admin/jssstd/cdump¨

      *.db_block_size=8192

      *.db_domain=¨¨

      *.db_file_multiblock_read_count=16

      *.db_name=¨jssdb¨

      *.db_unique_name=¨jssstd¨

      *.job_queue_processes=10

      *.log_archive_dest_1=¨location=/data1/jssstd/arclog?valid_for=(all_logfiles,all_roles)?db_unique_name=jssstd¨

      *.open_cursors=300

      *.pga_aggregate_target=94371840

      *.processes=150

      *.remote_login_passwordfile=¨exclusive¨

      *.sga_target=283115520

      *.undo_management=¨AUTO¨

      *.undo_tablespace=¨UNDOTBS1¨

      *.user_dump_dest=¨/data/ora10g/admin/jssstd/udump¨

      提示一点,此时尚未添加任何与dataguard相关的初始化参数,接下来就要对此进行处理,增加参数如下:

      *.log_archive_config=¨dg_config=(jssdb,jssstd)¨

      *.standby_file_management=¨AUTO¨

      *.db_file_name_convert=¨+ASMDISK1/jssdb/datafile¨,¨/data1/jssstd¨,¨+ASMDISK1/jssdb/tempfile¨,¨/data1/jssstd¨

      *.log_file_name_convert=¨+ASMDISK1/jssdb/onlinelog¨,¨/data1/jssstd¨

      *.fal_server=jssdb

      *.fal_client=jssstd

      由于asm存储文件时自动进行了分目录处理,因此这里在设置db_file_name_convert参数时,也要注意设置相应的转换,否则可能导致文件创建时出错的,切记切记。

      客户端初