ORACLE 10G DATA GUARD 配置

本文详细介绍了在CentOS 4.8环境下,如何配置Oracle 10G Data Guard,包括主库和备库的监听配置、数据库参数修改、数据文件传输以及主备库的启动和数据同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORACLE 10G DATA GUARD

ORACLE  10G DATA GUARD

 

 

 

准备环境vmwareworkstation 8.0+centos 4.8+oracle 10g10.2.0.5

两台服务器系统都是CentOS4.8,虚拟机网络方式NAT

IP(primary)  192.168.10.2

IP(standby)  192.168.10.3

主库有oracle软件和oracle数据库

备库有oracle软件

 

一、配置两台服务器的监听。

下面写出主库的监听及服务名的配置。

[oracle@primaryadmin]$ more listener.ora

# listener.ora Network Configuration File:/opt/oracle/network/admin/listener.or

a

# Generated by Oracle configuration tools.

 

SID_LIST_LISTENER =

 (SID_LIST =

   (SID_DESC =

     (SID_NAME = PLSExtProc)

     (ORACLE_HOME = /opt/oracle)

     (PROGRAM = extproc)

    )

   (SID_DESC =

     (GLOBAL_DBNAME = primary)

     (ORACLE_HOME = /opt/oracle)

     (SID_NAME = ora10g)

    )

  )

 

LISTENER =

 (DESCRIPTION_LIST =

   (DESCRIPTION =

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

    )

   (DESCRIPTION =

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

    )

  )

 

[oracle@primaryadmin]$ more tnsnames.ora

# tnsnames.ora Network Configuration File:/opt/oracle/network/admin/tnsnames.or

a

# Generated by Oracle configuration tools.

 

PRIMARY =        ------------TNS名称,指向主库。

 (DESCRIPTION =

   (ADDRESS_LIST =

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

    )

   (CONNECT_DATA =

     (SERVICE_NAME = primary) ---与监听里面的GLOBAL_DBNAME一致。

    )

  )

 

STANDBY =      --------------TNS名称,指向备库。

 (DESCRIPTION =

   (ADDRESS_LIST =

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

    )

   (CONNECT_DATA =

     (SERVICE_NAME = standby)

    )

  )

 

EXTPROC_CONNECTION_DATA =

 (DESCRIPTION =

   (ADDRESS_LIST =

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

    )

   (CONNECT_DATA =

     (SID = PLSExtProc)

     (PRESENTATION = RO)

    )

  )

 

 

 

二、主库相关操作

SQL>show parameter service_name

 

NAME                                 TYPE        VALUE

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

service_names                        string      primary

 

SQL>alter database force logging;

 

SQL>shtudown immediate

 

SQL>startup mount

 

SQL>alter database create standby controlfile as '$ORACLE_HOME/dbs/standby01.ctl';

 

Databasealtered.------创建standby控制文件。

 

SQL>shutdown immediate

 

SQL>create pfile from spfile; ----创建pfile文件,并修改。

 

 

三、修改参数及传输数据。

[oracle@primary~]$ cd $ORACLE_HOME/dbs

[oracle@primarydbs]$ vi initora10g.ora   添加参数

#DGCONFIG

log_archive_dest_2='SERVICE=standby VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)'  ----这个参数至关重要,SERVICE写上备库的TNS别名。

log_archive_dest_state_1=enable

log_archive_dest_state_2=enable

log_archive_format='%t_%s_%r.arc'

log_archive_max_processes=2

fal_server=standby   -----备库的TNS别名

fal_client=primary   -----主库的TNS别名

db_unique_name=primary

传输主库的数据文件,归档日志文件,pfile文件,密码文件,standby控制文件到备库

Scp –r/opt/oradata/ora10g/*   192.168.10.3:/opt/oradata/ora10g ---传输数据文件

Scp –r/opt/arch/*  192.168.10.3:/opt/arch                    ---传输归档日志文件

 Scp –r/opt/oracle/dbs/standb.ctl  192.168.10.3:/opt/oracle/dbs   ---传输standby控制文件

 

 

四、备库相关设置

修改备库的pfile文件。

DG CONFIG的部分修改如下

#DGCONFIG

log_archive_dest_state_1=enable

log_archive_dest_2='SERVICE=primaryVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)'

log_archive_dest_state_2=enable

log_archive_format='%t_%s_%r.arc'

log_archive_max_processes=2

fal_server=primary

fal_client=standby

db_unique_name=standby

 

生成备库的控制文件

[oracle@standbydbs]$ cp standby.ctl /opt/oradata/ora10g/

[oracle@standbydbs]$ cd /opt/oradata/ora10g/

standby控制文件作为备库的控制文件

[oracle@standbyora10g]$ mv standby.ctl   control01.ctl

 

五、启动主备库

主备库两边都创建spfile

Createspfile from pfile;

主库到open

备库到nomount

在备库执行:alter database mount standby database; //改变数据库模式

           alter database recover managed standby database disconnect fromsession;//开始接收redo数据

在备库执行archive log list;查看归档序列号。

到主库执行日志切换。

再到备库查看归档日志序列号。


 


 

 

从切换日志得出的效果是日志可以传送过来。

六、主库插入一些测试数据,备库查看。

Create table dg (idint,name varchar2(10));

Insert into dgvalues(0,’hell dg’);

Insert into dgvalues(1,’oracle’);

Insert into dgvalues(2,’shit dg’);

Commit;

Alter system switchlogfile;

/

/

到备库执行:select sequence#,first_time,next_time from v$archived_log order bysequence#;

执行:selectsequence#,applied from v$archived_log order by sequence#;

其中appled值为YES表示接收完毕。

执行:alter database recover managed standby database cancel;//10g中必须这样做

执行:alter database open read only;

查看数据

 

 

GLOBAL_DBNAME

 

Purpose:Identifies the global database name of the database, a name comprised of thedatabase name and database domain. You can obtain the GLOBAL_DBNAME value fromthe SERVICE_NAMES parameter in the initialization parameter file. Thisparameter must be embedded under SID_DESC and should match the value of theSERVICE_NAMES parameter.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值