oracle10g DataGuard配置手册

本文介绍如何在Oracle 10g环境下搭建灾备系统,包括操作系统及数据库软件安装、归档模式设置、网络配置、数据文件同步等步骤,并详细解释了关键参数的设置。

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

OS: REDHAT EL4
DB: oracle 10.2.0.1

前提准备工作:
灾备环境中的所有节点必须安装相同的操作系统,但是操作系统的版本可以不相同。
灾备环境中的所有节点必须安装完全相同版本的Oracle数据库软件,包括版本号和发布号。
主库必须处于归档(ARCHIVELOG)模式。
灾备环境中所有节点的硬件和操作系统架构必须相同,比如主节点是Sparc 64-bit SunOS,那么备用节点也必须是Sparc 64-bit SunOS。
主库可以是单实例,也可以是RAC。
主节点和备用节点之间的硬件配置可以不同,比如CPU数量,内存数量,存储的配置等等。
配置灾备环境的数据库用户必须具有SYSDBA权限。
cluster环境中两个节点的tnsnames.ora, listener.ora, sqlnet.ora, spfile, pfile必须保证相同

 

 

############# 第1步 ###################################################
Master装OS,装oracle10g,建库,导入数据;
Slave装OS,装oracle10g,不建库;

 

Master:

  alter system force logging;
  #查看状态
  select FORCE_LOGGING from v$database;

  #修改数据库为归档模式:
  archive log list;
  shutdown immediate;
  startup mount;
  alter database archivelog;   # alter database noarchivelog;关掉归档模式
  archive log list;

 

############# 第2步 ###################################################
Master:
 修改tnsnames.ora:
 primary=自己
 standby=备机
 如下:

 

Slave:
 primary=自己
 standby=备机
 修改tnsnames.ora
  

############# 第3步 ###################################################
Slave:
 lsnrctl; stop;


############# 第4步 ###################################################
Master:
 ALTER DATABASE FORCE LOGGING;
 shutdown immediate;
 startup  mount;
 alter database create standby controlfile as '/home/oracle/stdctrl.ctl';   # 为备机创建控制文件
 create pfile from spfile;
 shutdown immediate;
 lsnrctl: stop;
 备份 数据文件,控制文件,redo文件

 
############# 第5步 ###################################################
Master:
 复制Master的文件到Slave的同样的位置。
 例如:Master的数据文件在/data/oracle/10.2.0.1/SID/下,Slave必须有相同的目录;
 具体为:
  复制数据文件到Slave;
  复制redo文件到Slave;
  复制第4步中创建的备机控制文件到Slave;
  复制第4步中创建的pfile到Slave;     # 即$ORACLE_HOME/dbs/initSID.ora
  复制Master的口令文件到备机;       # 即$ORACLE_HOME/dbs/orapwSID
 
############# 第6步 ###################################################
Slave:
 备机控制文件的数量,名字,和所在位置必须和主机一致;内容是第4步创建的控制文件。
 例如:
 cp /data/oracle/stdctrl.ctl /data/oracle/SID/control01.ctl
 cp /data/oracle/stdctrl.ctl /data/oracle/SID/control02.ctl
 cp /data/oracle/stdctrl.ctl /data/oracle/SID/control03.ctl

 

############# 第7步 ###################################################
修改pfile,添加一些参数,具体如下:
Slave:
 *.standby_archive_dest='/data/oracle/archivelogDG'
 
 # switchover后,这两个参数需要反转 
 *.fal_server='primary'
 *.fal_client='standby'
 
 *.standby_file_management=auto
 *.log_archive_dest_1='LOCATION=/data/oracle/archivelog'     # 注意,这个参数也许在上面已经设置过了
 
 # 注意,备机这里要填primary
 # 注意,如果不想强制同步,则可以把MANDATORY改成OPTIONAL
 # MANDATORY:如果无法同步时,主机也无法写入数据,这样的好处是一旦同步机制失效,则可以保护主备机一致;
 # OPTIONAL: 如果无法同步时,主机可以写入数据,这样一旦同步机制失效,主备机的数据不会统一。
 *.log_archive_dest_2='SERVICE=primary MANDATORY REOPEN=60'  
 
 
 *.archive_lag_target=1800    # 通常大于7200和小于1800不被推荐,低于30分钟的切换时间可能导致性能问题。

 

Master:
 *.standby_archive_dest='/data/oracle/archivelogDG'
 
 # switchover后,这两个参数需要反转
 *.fal_server='standby'
 *.fal_client='primary'
 
 *.standby_file_management=auto
 *.log_archive_dest_1='LOCATION=/data/oracle/archivelog'      # 注意,这个参数也许在上面已经设置过了
 
 # 注意,主机这里要填standby
 # 注意,如果不想强制同步,则可以把MANDATORY改成OPTIONAL
 # MANDATORY:如果无法同步时,主机也无法写入数据,这样的好处是一旦同步机制失效,则可以保护主备机一致;
 # OPTIONAL: 如果无法同步时,主机可以写入数据,这样一旦同步机制失效,主备机的数据不会统一。
 *.log_archive_dest_2='SERVICE=standby MANDATORY REOPEN=60'
 
 *.archive_lag_target=1800   # 通常大于7200和小于1800不被推荐,低于30分钟的切换时间可能导致性能问题。

 

############# 第8步 ###################################################
启动备机:
 lsnrctl ; start
 tnsping primary; #测试是否可以连通主机,如果不行,检查主机listener
 
 startup nomount pfile='第4步生成的pfile'
 ALTER DATABASE MOUNT STANDBY DATABASE;
 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

 

############# 第9步 ###################################################
启动主机:
 $lsnrctl ; start
 $tnsping standby;   #测试是否可以连通备机,如果不行,检查备机listener

 startup pfile='第4步生成的pfile'

 

############# 第10步 ###################################################
测试主备是否能够同步:
Master强制归档:
 可选操作:alter database clear unarchived logfile group 1;    #丢弃没有归档的操作;
 alter system archive log current;    #强制归档
 select max(sequence#) from v$archived_log;   #查看当前归档数字;

 
Slave:
 select max(sequence#) from v$archived_log;   #查看当前归档数字;

如果两个机器归档数字一样,就说明已经同步了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值