极光下载站 - 打造齐全的绿色软件家园

极光下载站

当前位置: 首页 数据 库 ORACLE 虚拟机上Oracle 10g DataGuard的配置

虚拟机上Oracle 10g DataGuard的配置

时间:2011/7/13 15:36:09 作者:佚名 人气:177

  

在Oracle数据库中,DataGuard最主要的功能就是容灾。它可以分为物理STANDBY和逻辑STANDBY两种。物理STANDBY主要用在主库的归档日志方面;逻辑STANDBY主要应用的是主库的归档日志提取的SQL语句。本文主要论述的是DataGuard在虚拟机上的配置,包括STANDBY参数的文件的相关配置等。

1.环境准备

虚拟机版本:VMware GSX

操作系统 :redhat linux 4

Primary主机

ip:192.168.111.131

db_name:wellcomm

db_unique_name:wellcomm

ip:192.168.111.131

db_name:wellcomm

db_unique_name:wellcommb

2.设置Primary主机为force logging模式

alter database force logging; 
 

3.在Primary 上面创建备用日志(为切换而用)

alter database add standby logfile group 4 ('/u01/oracle/oradata/wellcomm/stdredo01.log') size 50m;   
alter database add standby logfile group 5 ('/u01/oracle/oradata/wellcomm/stdredo02.log') size 50m;   
alter database add standby logfile group 6 ('/u01/oracle/oradata/wellcomm/stdredo03.log') size 50m; 
 

4.修改primary库的参数

alter system set db_unique_name='wellcomm' scope=spfile;   
alter system set log_archive_config='DG_CONFIG=(wellcomm,wellcommb)';   
alter system set log_archive_dest_1='LOCATION=/u01/oracle/oradata/wellcomm/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=wellcomm';   
alter system set log_archive_dest_2='SERVICE=wellcommb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=wellcommb';   
alter system set log_archive_dest_state_1=enable;   
alter system set log_archive_dest_state_2=enable;   
alter system set log_archive_max_processes=10; 
 

5.克隆Primary数据库

shutdown immediate   
startup mount   
backup database; 
创建standby的控制文件

alter database create standby controlfile as '/u01/oracle/controlbak.ctl'; 
创建standby的参数文件并按standby主机的配置修改

create pfile='/u01/oracle/initwellcommb.ora' from spfile; 
 

6.在standby主机上恢复数据库(rman方式);

将5步的文件拷备到对应位置(ftp)

startup mount pfile='';

修改参数文件


db_name='ora10g1'  
db_unique_name='ora10g3'  
log_archive_config='DG_CONFIG=(wellcomm,wellcommb)'  
log_archive_dest_1='LOCATION=/u01/oracle/oradata/wellcommb/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=wellcommb'  log_archive_dest_2='SERVICE=wellcomm LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=wellcomm'  
log_archive_dest_state_1=enable  
log_archive_dest_state_2=enable  
remote_login_passwordfile='EXCLUSIVE'  
log_archive_max_processes=10  
restore database;

7.监听配置和tns服务配置

(1)primary 主机上配置

listener.ora文件内容如下:

SID_LIST_LISTENER =   
(SID_LIST =   
(SID_DESC =   
(GLOBAL_DBNAME = wellcomm )   
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)   
(SID_NAME = wellcomm )   
)   
)   
LISTENER =   
(DESCRIPTION_LIST =   
(DESCRIPTION =   
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.131)(PORT = 1521))   
)   

tnsnames.ora文件内容如下:

WELLCOMM =   
(DESCRIPTION =   
(ADDRESS = (PROTOCOL = TCP)(HOST = wangwang)(PORT = 1521))   
(CONNECT_DATA =   (SERVER = DEDICATED)   (SERVICE_NAME = wellcomm)   )   )   WELLCOMMB =   (DESCRIPTION =   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.132)(PORT = 1521))   
(CONNECT_DATA =   
(SERVER = DEDICATED)   
(SERVICE_NAME = wellcommb)   
)   

 

(2)在standby主机上配置

listener.ora文件内容如下:

SID_LIST_LISTENER =   
(SID_LIST =   
(SID_DESC =   
(GLOBAL_DBNAME = wellcommb)   
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)   
(SID_NAME = wellcommb)   
)   
)   
LISTENER =   
(DESCRIPTION_LIST =   
(DESCRIPTION =   
(ADDRESS = (PROTOCOL = TCP)(HOST = wangkang)(PORT = 1521))   
)   

tnsnames.ora文件内容如下:

WELLCOMM =   
(DESCRIPTION =   
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.131)(PORT = 1521))   
(CONNECT_DATA =   
(SERVICE = DEDICATED)   
(SERVICE_NAME = wellcomm)   
)   
)   
WELLCOMMB =   
(DESCRIPTION =   
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.132)(PORT = 1521))   
(CONNECT_DATA =   
(SERVER = DEDICATED )   
(SERVICE_NAME = wellcommb)   
)   

重启监听

lsnrctl stop

lsnrctl start

8.在standby主机上启动应用redo

alter database recover managed standby database disconnect from session;

(取消:alter database recover managed standby database cancel;)

9.确认从Primary到Standby的Redo传输及应用

(1)在Primary主机上执行日志文件切换(最好多次)

alter system switch logfile;

(2)查询Primary的归档日志

select sequence#,applied,first_time,next_time from v$archived_log order by sequence#;

(3)查询Standby的归档日志及其应用

select sequence#,applied,first_time,next_time from v$archived_log order by sequence#;

注意applied字段显示YES则表明该归档日志已被standby数据库应用了。

标签
分享到:

公众号