ORACLE10G DATAGUARD配置笔记

主数据库: windows English XP; 版本 ora9i 9.2.0.1.0 ); IP 地址 192.168.1.38 ;主机名: CISCOSYS ;实例 SID PRIMARY

备用数据库: windows English XP; 版本 ora9i 9.2.0.1.0 ); IP 地址 192.168.1.111 ;主机名: CISCOROUTER ;实例 SID STANDBY

二:运行 Data Guard 的条件

1 在主数据库和备用数据库的所有机器上必须安装同一个版本的 Oracle 企业版。: SELECT * FROM V$VERSION

2 主数据库必须运行在归档模式下,推荐主和备用数据库都是 force Logging 模式,这样方便双向自由切换: ALTER DATABASE FORCE LOGGING;

3 主数据库和备用数据库的操作系统必须一样(允许版本不同),备用数据库可以使用与主数据库不同的目录结构, ORACLE 推荐使用相同的目录结构。

4 主备用数据库硬件系统的体系结构必须相同,但允许主备数据库硬件的配置可以不同如: CPU 数量、内存大小、存储 配置等。

5 主备数据库可以是单实例的数据库,也可以是多实例的 RAC 数据库。

6 每个主备数据库必须有它自己的控制文件, ORACLE NET 不同,必须分别修改。

三:运行 Data Guard 的具体步骤

1 、主数据库和备用数据库的 Oracle 安装的时候都选择相同的安装路径 D:/oracle/ora92 ;并且先不要安装数据库,即在安装过程中 数据库配置 一项下面选择 只安装软件

2 、在主数据库上使用 DBCA 命令建一个数据库, SID 设为 PRIMARY

  3 、设置主数据库归档路径为 D:/oracle/ora92/database/Archive SQL>alter system set log_archive_dest_1='LOCATION=d:/oracle/ora92/database/Archive MANDATORY' scope=both;

4 、将主数据库实例、数据库关闭,然后启动实例,但不打开数据库,只启动到数据库挂载模式 : SQL>shutdown immediate; SQL>startup mount;

5 、将主数据库设置成归档状态和自动归档模式: SQL>alter database archivelog; SQL>alter system set log_archive_start=true scope=spfile;

6 、在主数据库上面创建备用数据库的控制文件 standby.ctl SQL>alter database create standby controlfile as 'd:/oracle/oradata/standby.ctl';

7 、在主数据库上面创建备用数据库的初始化参数文件 standby.ora (将其拷贝回备用数据库后转换成备用数据库的 spfile ): SQL>create pfile='e:/oracle/oradata/standby.ora' from spfile;

8 、查看主数据库的数据文件及其的位置: SQL>select name from v$datafile; 记下查询结果中的数据文件的位置。

9 、关闭实例: SQL>shutdown immediate;

10 、将第 6 步中的 standby.ctl 、第 7 步中的 standby.ora 和第 8 步骤中的数据文件、还有 D:/oracle/oradata/PRIMARY 路径下面的联机日志文件( REDO.LOG )、 D:/oracle/ora92/database 里面的口令文件 PWDPRIMARY.ora 备份 出来,拷贝到备用数据库中;在备用数据库中创建路径 D:/oracle/oradata/PRIMARY ,存放 standby.ctl 、数据文件、联机日志文件;创建路径 D:/oracle/admin/PRIMARY ,在里面创建空文件夹 bdump cdump udump create pfile ;将 standby.ora 放到 D 盘根目录下面;将口令文件 PWDPRIMARY.ora 更名为 PWDSTANDBY.ora ,放到备用数据库的 D:/oracle/ora92/database 下面。

11 、回到主数据库,启动主数据库实例和数据库: SQL>startup

12 、转回到备用数据库,手动创建服务 OracleServiceSTANDBY oradim -new -sid STANDBY -startmode manual 设置环境变量:在环境变量的 “Administrator 的用户变量 一栏里面新建一个值,变量名为 ORACLE_SID ,变量值为 STANDBY (服务名)。

13 、创建备用数据库监听器 OracleOraHome92TNSListener :进入 Net Configuration Assistant ,使用 监听程序配置 来创建备用数据库的监听器,同时会在 D:/oracle/ora92/network/admin 下面生成 listener.ora 文件 , 并修改如下:

  # LISTENER.ORA Network Configuration File: d:/oracle/ora92/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

       (ADDRESS_LIST =

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

      )

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

      )

    )

  )

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PRIMARY)

      (ORACLE_HOME = d:/oracle/ora92)

      (GLOBAL_DBNAME=PRIMARY)

    )

  )

主数据库 listener.ora

# LISTENER.ORA Network Configuration File: d:/oracle/ora92/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS_LIST =

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

      )

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

      )

    )

  )

SID_LIST_LISTENER =

    (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = d:/oracle/ora92)

      (PROGRAM = extproc)

    )

  )

14 、配置本地 NET 服务名:进入 Net Configuration Assistant ,使用 本地 NET 服务名配置 来配置,同时会在 D:/oracle/ora92/network/admin 下面生成 tnsnames.ora 文件;

15 、配置主和备用数据库的 tnsnames.ora ,都将里面的内容设置成如下内容:

   # TNSNAMES.ORA Network Configuration File: d:/oracle/ora92/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

STANDBY =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = PRIMARY)

    )

  )

PRIMARY =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

     )

    (CONNECT_DATA =

      (SERVICE_NAME = PRIMARY)

    )

  )

备用数据库 tnsnames.ora

# TNSNAMES.ORA Network Configuration File: d:/oracle/ora92/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

STANDBY =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = PRIMARY)

    )

  )

 

PRIMARY =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = PRIMARY)

    )

  )

16 、修改 D 根目录下面的初始化参数文件 standby.ora ,里面的全部内容如下(删除了原来的 control_files 参数,将 instance_name 改成了 STANDBY ,添加的内容):

*.standby_file_management=AUTO

*.remote_archive_enable=TRUE

*.lock_name_space='standby'

*.fal_server='primary'

*.fal_client='standby'

*.standby_archive_dest=d:/oracle/ora92/database/Archive'

*.control_files='d:/oracle/oradata/primary/STANDBY.CTL'

17 、进入 SQLplus standby.ora 创建成备用数据库的 spfile SQL>create spfile from pfile='d:/standby.ora';

18 、启动备用数据库的实例,并且将备用数据库设置成 standby 模式: SQL>startup nomount; SQL>alter database mount standby database;

19 、在备用数据库启动日志应用服务: SQL>alter database recover managed standby database disconnect from session;

20 、转到主数据库,启动到物理备用数据库的归档:

alter system set log_archive_dest_2='service=standby mandatory reopen=60';

 

四: Data Guard 的校验

1.     主数据库,归档当前日志: SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

备用数据库,校验归档日志是否正常接收: SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

备用数据库,查看新的归档日志是否正常用于恢复:

  SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; SEQUENCE# APP

你可能感兴趣的:(oracle10g)