这里我并不想写一篇安装手册,而是对data guard相关的一些常用参数做简单的注解。

  1. db_name
    Primary Database 和 Standby Database名称必须相同。否则在启动时会提示控制文件中的数据库名不对。
    Asktom上面有一个活生生的例子
  2. db_unique_name
    这是一个推荐的参数,不管是primary还是standby都尽量设置这个值。
  3. fal_client和fal_server
    FAL是Fetch Archived Log的简写,意思是从主库中抓取日志。这两个参数只在standby role的时候起作用。建议在Primary数据库中也设置这两个参数,这样在role transition后(Primary转为Standby)也能正常运行。
  4. log_archive_dest_1
    用于设置本地归档路径,primary和standby都应该设置这个参数。例子:

    log_archive_dest_1='location=D:\xzb\oradata\arch
    valid_for=(all_logfiles,all_roles)
    db_unique_name=orcl'
  5. log_archive_dest_2
    设置standby对象和运行模式,该参数只在primary中有效。如:

    log_archive_dest_2='service=stdby LGWR SYNC AFFIRM
    valid_for=(online_logfiles,primary_role)
    db_unique_name=stdby'

    LGWR SYNC AFFIRM表示MAXIMUM PROTECTION模式。推荐设置net_timeout参数。

  6. log_archive_dest_3
    作用跟log_archive_dest_2相同,只是在primary转换为standby时使用。如果需要switchover或failover,则建议设置这个参数。
  7. log_archive_dest_state_(n)
    应该设置为ENABLE。
  8. log_archive_max_processes
    设置ARCn个数,默认是4个。
  9. standby_file_management
    在Physical standby下面,如果主数据库有修改数据文件(如新建,重命名等)则自动在standby中做相应修改。
    设为AUTO表示自动管理。设为MANUAL表示需要手工管理。

Oracle使用SYS帐号与standby进行通信,因为两个数据库的SYS帐号密码必须一致。并且,remote_login_passwordfile应该为EXCLUSIVE。