读书人

ORACLE10G DATAGUARD配备笔记

发布时间: 2012-08-29 08:40:14 作者: rapoo

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

读书人网 >其他数据库

热点推荐