ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle8i,9i, 10g Standby配置及相关参数, 操作说明

Oracle8i,9i, 10g Standby配置及相关参数, 操作说明

原创 Linux操作系统 作者:tolywang 时间:2009-01-05 14:08:02 0 删除 编辑

 

======================================================================
8i Standby init parameter configuration .
====================================================================== 

## The following parameters are the HA parameters needed for Standby Database on primary side

LOG_ARCHIVE_START=TRUE
LOG_ARCHIVE_FORMAT = "%t_%s.arc"
LOG_ARCHIVE_DEST_1='LOCATION=/data/umlaut/arch'

LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE 

LOG_ARCHIVE_DEST_2='SERVICE=standby  OPTIONAL REOPEN=60' 
LOG_ARCHIVE_MIN_SUCCEED_DEST=1 

 

## The following parameter are the HA parameters needed for Standby Database on standby side

LOG_ARCHIVE_START=TRUE
LOG_ARCHIVE_FORMAT = "%t_%s.arc"
LOG_ARCHIVE_DEST_1='LOCATION=/stby/umlaut/arch'

LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE

STANDBY_ARCHIVE_DEST='/stby/umlaut/arch'
LOG_ARCHIVE_MIN_SUCCEED_DEST=1

 

 

 


======================================================================
9i/10g Standby init parameter configuration .
====================================================================== 

9i/10g Primary DB:

# for oracle9i standby .
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.log_archive_dest_2="service=standby optional reopen=60" 
*.log_archive_min_succeed_dest=1


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


9i/10g Standby DB:

# for oracle9i standby .
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.standby_archive_dest="/data/acer/arch"
*.db_file_name_convert=("/data/acer","/data/acer")
*.log_file_name_convert=("/u01/product/oradata/acer","/u01/product/oradata/acer")
*.log_archive_trace=0
*.log_archive_min_succeed_dest=1
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
*.fal_server='acer'
*.fal_client='standby' 

 

 

 

======================================================================
8i Standby Windows 下的sqlnet设置问题 .
====================================================================== 


8i Standby Server操作系统应该是Windows系统,那么使用arch自动传输模式(以上
参数),需要在standby上sqlnet.ora中注释掉

# SQLNET.AUTHENTICATION_SERVICES= (NTS)

因为这个设置会导致需要primary db通过standby的OS认证才能以sysdba的身份登入
到standby中,而primary db不知道standby windowsServer的管理员密码(除非两台
机器administrator密码一样)。

9i/10g 没有这些问题。

 

 


======================================================================
9i/10g Standby parameter 说明1 :fal_server,fal_client  
====================================================================== 

fal_server与fal_client
这两个参数是9i的新参数,指明了自动日志同步,在以前的环境中(如8i),只有手工解
决日志差异,但是9i的这两个参数可以自动检测并解决日志差异。Oracle8i 没有这些参数,
由于一些问题导致的arch gap 需要手工拷贝然后恢复,由于8i Standby设置了
# SQLNET.AUTHENTICATION_SERVICES= (NTS) 【注释掉了】,
所以不能以 sqlplus internal登入执行恢复动作 。请注意。

例如:
fal_server='primary'
fal_client='standby'
其中primary与standby必须是连接到主数据库与备用数据库的连接

standby_file_management
这个参数也是9i的新参数,可以自动同步数据文件。
例如:  standby_file_management=auto

 

 


======================================================================
9i/10g Standby parameter 说明2:   
====================================================================== 

Standby上的 LOG_ARCHIVE_DEST_1和 standby_archive_dest

如果创建了standby redo log那么online redo log将不需要转化为archived文件就可以传输到备机(LGWR),
这样的话(LGWR方式),这些standby redo log在Standby上需要归档,用到standby上设置的参数log_archive_dest。
所以Standby上的 log_archive_dest 或 log_archive_dest_1 是standby 以lgwr方式传输的时候standby上的
online redo log 生成的archived log 文件存放点。一般Oracle建议这两个参数设置同样的值。 

Standby默认的arch传输方式,primary会远程将archived log传输到standby_archive_dest下 。


LOG_ARCHIVE_DEST_1和 standby_archive_dest

STANDBY_ARCHIVE_DEST is used when logs are transmitted automatically from the
primary database.  We use this parameter to determine where these logs should
be placed.

LOG_ARCHIVE_DEST is the location where we look for logfiles by default when
recovering the standby database.  It is recommended to set the values of
STANDBY_ARCHIVE_DEST and LOG_ARCHIVE_DEST to the same values in most cases.

 

 

 

======================================================================
Standby上的开启关闭注意点 .
======================================================================  

关闭开启Primary 以及 Standby一般步骤:
     关闭:  先关闭Primary DB , 然后Standby DB.
     开启:  先开启Standby DB , 然后Primary DB.

不过有时候出现问题点,生产期间只能关闭Standby DB ,那么就只能直接关闭Standby
, 而不能先关闭正在使用的Primary DB . 这个时候产生两个问题: 

8i 情况: 如果关闭期间primary db上产生了归档,那么需要手工拷贝,恢复。
9i/10g 情况: 一般设置了fal_server ,fal_client 不需要手工拷贝,standby启动后自动传输应用。
              但是偶尔也有一些问题点,需要手工拷贝,并register,详细参考后面的standby问题
              点处理。

 


對于設定了自動傳輸歸檔模式的standby,其standby開啟步驟為:
     1.  開啟standby監聽;
     2.  sqlplus '/as sysdba'登陸并執行
         startup nomount;
         alter databae mount standby database;
         recover managed standby database disconnect ;


需要重啟standby機器,則步驟為:
     1. sqlplus '/as sysdba'登陸并執行
        alter database recover managed standby database cancel ;
        shutdown immediate;
     2. 關閉監聽。

 

 


======================================================================
Standby上的各种特殊后台进程 .
======================================================================

工作原理参考: http://space.itpub.net/35489/viewspace-405012 


SQL> select process,status from v$managed_standby;  【Standby上】

PROCESS   STATUS
--------- ------------
ARCH      CONNECTED
ARCH      CONNECTED
RFS       RECEIVING
MRP0      WAIT_FOR_LOG
RFS       ATTACHED

 

说明:

ARCn
当standby使用online redo的时候,也就是maximum protection或maximum availability模式下,ARCn用于归档。

MRP (Managed Recovery Process)就是管理恢复进程, 如果没有MRP进程,说明你的备库没有处于恢复状态, 没有开启为
recover managed standby database状态 ; 可以使用  alter database recover managed
standby database disconnect from session ;开启为自动恢复应用归档模式。 Physical Standby DB Only .


RFS (Remote File Server)  接受由primary数据库的lgwr或arch通过oracle net传来的redo 数据,
写入standby redo logs或standby archived redo logs


FAL(fetch archive log): 在primary和standby数据库的两端同时配置。Primary端是fetch archive log server,standby
端是fetch archive log client. FAL是自动探测primary/standby数据库之间archived logs是否有有间隔(gap)的一个进程。
Physical Standby Database Only .


LSP (Logical standby process)(For logical standby databases only):  用SQL接口把归档应用到logical database


DMON (Data Guard broker monitor) :用于监控数据库的状态,管理log transport services and log apply services
On the primary and standby locations, the Data Guard broker使用DMON进程 .


On primary database:
Data Guard除了以上传统的Arch日志传送过程外,还可以采用联机日志(LGWR)的传送,在备用端(Standby)建议
创建一组备用日志,并保持与主数据库备用日志相同大小,而且最好比主数据库的联机日志多一组以上。如果LGWR
传送日志,但是不在备用端创建备用日志的话,联机日志将自动写到备用端的归档日志中。即使是用LGWR进行日志
的传输,备用库的online redo log的内容是不能马上被应用的,必须当归档完成后才由MRPn进程应用到备用数据库
,所以说,恢复不是连续的,但是,传送过程可以是连续的。即使备用数据库不是在归档的模式,所有的在线日志
还是会进行归档的操作,前提是ARCn进程必须打开。

 

 


======================================================================
常用的几个Standby View :
======================================================================
v$managed_standby和日志传输,接收,应用有关 .
v$archive_gap 主要可以用来查看备库丢失了那些日志.
v$archive_dest 如果日志无法传送,可以查看v$archive_dest; 
v$archive_dest_status视图可以查看备库的状态,保护模式,归档日志路径状态
v$archived_log可以查看日志的一些信息 ,包括日志名字,应用时间,是否应用

 

 

 

======================================================================
Standby问题处理 :
====================================================================== 

是否被应用应该在STANDBY查询最准确(错误会在standby alert log中出现)

SQL> select dest_name,status,error from v$archive_dest;

DEST_NAME
--------------------------------------------------------------------------------
STATUS    ERROR
--------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_1    VALID
LOG_ARCHIVE_DEST_2    ERROR     ORA-12540: TNS:internal limit restriction exceeded

 

 


======================================================================

如果Oracle9i,10g  Standby上因为某些问题导致出现gap 而又不能在问题恢复之后正常传输到
Standby上,那么需要手动拷贝归档到Standby上,然后
ALTER DATABASE REGISTER [OR REPLACE] [PHYSICAL | LOGICAL] LOGFILE filespec;
    对于每一个手工拷的日志都需要注册一下, 如果是Physical Standby, 命令为:
ALTER DATABASE REGISTER OR REPLACE PHYSICAL LOGFILE '文件路径';  写Standby控制文件。


======================================================================

 

 

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

实例操作: 

归档日志之间经常产生 gap,

1、Standby 确认归档日志之间有无遗漏
SQL>SELECT  THREAD#, LOW_SEQUENCE#,  HIGH_SEQUENCE#  FROM  V$ARCHIVE_GAP;

THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
1 90 92

2、将遗漏的归档日志 copy 到备库的 standby_archive_dest 下然后对其分别注册
ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

3、恢复归档日志
SQL> ALTER DATABASE RECOVER AUTOMATIC STANDBY DATABASE ;

4、如果有关闭Standby,那么需要重新开启为managed 恢复模式。
SQL> startup nomount;
SQL> alter databae mount standby database;
SQL> recover managed standby database disconnect;

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-526739/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13473343