度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1298|回复: 8
打印 上一主题 下一主题

[分享] oracle standby详解配置二

[复制链接]

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
跳转到指定楼层
楼主
发表于 2020-3-27 17:58:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.4.         跨平台Data Guard 配置条件
除了相同的操作系统平台,Data Guard支持跨操作系统。
Oracle版本必须是10g及以上,同时Primary和Standby的操作系统必须有相同的字节序(同为big endian或者little endian),可以通过查询视图V$TRANSPORTABLE_PLATFORM获取信息。
  
2.            Online Redo Logs,Archived Redo Logs, and Standby Redo Logs
2.1.         Online Redo Logs
Primary数据库和逻辑Standby数据库都会用到Online Redo Log,但是物理Standby数据库是不使用Online Redo Log的,因为物理Standby只能以只读方式打开,不会有写操作,所以不会有Redo Log产生。
2.2.         Archived Redo Logs
Primary数据库和Standby数据库(逻辑和物理)都需要用到Archived Redo Log,来保证Primary和Standby的事务一致性。
2.3.         Standby Redo Logs
Standby Redo Log是Standby数据库用来存放从Primary数据库接收到的Redo Log的,以下几种情况必须要使用Standby Redo Log:
? 最大保护和最高可用模式 见1.3 Data Guard保护模式。
? Real-time apply
? Cascaded destinations
Standby Redo Log组的数量必须不少于Primary数据库的Online Redo Log组的数量,建议比Online Redo Log多1组。可以通过观察RFS进程的trace文件或者alert.log,如果日志中记录了RFS进程频繁等待归档进程的话,就需要增加Standby Redo Log组。
SQL语句ALTER DATABASE ADD STANDBY LOGFILE GROUP 1(‘/disk1/stdlog1a.rdo’, ‘/disk2/stdlog1b.rdo’) size 20M; 用于添加一组Standby Redo Log。
SQL语句ALTER DATABASE ADD STANDBY LOGFILE MEMBER ‘/disk3/stdlog1c.rdo’TO GROUP 1; 用于在第1组Standby Redo Log中再增加一个member。
SQL语句ALTER DATABASE DROP STANDBY LOGFILE GROUP1; 用于删除一组Standby Redo Log。
  
3.            Redo传输服务Redo transport services
Redo传输服务是用来自动将Primary数据库产生的Redo Log传输到Standby数据库,并且能自动处理因为网络故障导致的归档日志gap。为了保障日志传输的安全性,Oracle是通过SYS密码来验证的,所以必须确保Primary数据库和所有的Standby数据库密码一致,并且参数REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE必须设置。


3.1.         Redo传输路径的类型
? Data Guard Standby数据库 逻辑或者物理Standby数据库
? 归档日志容器 类似于Data Guard,archive log repository也是使用Standby controlfile和pfile来启动实例到mount阶段,但是这个数据库没有数据文件,无法进行切换,仅仅是用于保存归档日志。
? Stream实时下游捕获数据库 Oracle流复制技术,此处不做深入讨论。
? Oracle Change Data Capture stagingdatabase
  
3.2.         使用LOG_ARCHIVE_DEST_n参数来设置Redo传输路径
LOG_ARCHIVE_DEST_n参数一共有10个(n从1到10),每一个参数都必须使用LOCATION或者SERVICE属性来指定传输路径。对应的LOG_ARCHIVE_DEST_STATE_n参数用来控制其状态,
LOG_ARCHIVE_DEST_STATE_n共有4种状态:
? ENABLE 这是默认状态,Redo传输服务会发送日志到参数指定的路径。
? DEFER   表示路径有效,但是未使用。Redo传输服务不会把日志发送到指定的路径。
? ALTERNATE  表示路径不可用,但是如果和该路径设置为关联的另外一个路径失效的话,会切换成可用状态。
? RESET    功能和DEFER一样, 但是如果之前失效的话,会清除相关的错误信息。
  
3.3.         LOG_ARCHIVE_DEST_n参数属性详解
3.1.1.   LOCATION和SERVICE属性
每一个归档路径必须设置LOCATION或SERVICE属性,并且没有默认值。
? LOCATION
LOCATION=local_disk_directory或者也可以设置成LOCATION=USE_DB_RECOVERY_FILE_DEST,表示使用DB_RECOVERY_FILE_DEST参数指定的路径。通常设置了DB_RECOVERY_FILE_DEST参数后,LOG_ARCHIVE_DEST_10会隐式的设置为USE_DB_RECOVERY_FILE_DEST,即归档到flash_recovery_area。
? SERVICE
SERVICE属性用于设置一个通过Oracle NET连接的远程归档路径,SERVICE=net_service_namenet_service_name必须在TNSNAMES.ORA中事先定义好,并且通过tnsping命令确保连接畅通。视图V$ARCHIVE_DEST可以用来查看相关的设置信息。

3.1.2.   ARCH和LGWR属性
该属性指定Redo传输服务使用ARCn进程或者LGWR进程来传输Redo Log。默认值是ARCH。
? ARCH
ARCH模式是通过ARCn进程,在数据库进行归档时将Redo Log写入指定路径。ARCH模式仅支持Data Guard中的最高性能模式。当Primary数据库触发了log switch事件,ARCn进程会开始本地归档,在归档成功之后,ARCn进程会将本地归档日志(非Online Redo Log)传输到Standby数据库。在Standby数据库上RFS进程(Remote File Server Process)会将日志依次写入归档日志,写完之后MRP进程(物理Standby)或者LSP进程(逻辑Standby)会将日志应用到Standby数据库。查看V$ARCHIVED_LOG视图可以检查归档日志是否成功写入。
? LGWR
LGWR模式在每一次commit之后,LGWR进程写本地Online Redo Log,同步或者异步(取决于SYNC和ASYNC)写入LOG_ARCHIVE_DEST_n参数指定的路径(Standby数据库必须存在Standby Redo Logs),如果该路径是远程的,LGWR进程会调用LNSn进程建立一个网络连接访问远端的实例并由该进程负责传输日志。在Standby数据库上RFS进程(Remote File Server Process)会将接收到的Redo Log写入Standby Redo Log中。Primary数据库发起的log switch会同步引起Standby数据库对Standby Redo Log进行归档,归档完成之后MRP进程(物理Standby)或者LSP进程(逻辑Standby)会在下一次归档完成之后将日志应用到Standby数据库。如果启用了LGWR模式,在归档的时候除了本地归档就不会再触发ARCH进程写远程归档路径了,但是如果LGWR在写目标路径时失败,则会自动转换成ARCH模式,直到错误排除。
? 使用注意点
a.    如果不指定是ARCH或LGWR,则默认是ARCH。
b.   ARCH模式使用的是ARCn进程,LGWR模式则是使用LGWR进程。同一个归档路径不能同时指定两种模式,但是一个数据库中的多个路径可以使用不同的模式,比如LOG_ARCHIVE_DEST_2是ARCH,LOG_ARCHIVE_DEST_3是LGWR。
c.    如果通过ALTER SYSTEM修改了一个归档路径的模式,比如从ARCH修改到LGWR,不是立刻生效的,必须等到下一次log switch才会生效。

3.1.3.   SYNC和ASYNC属性
控制LGWR或ARCH进程在写Redo Log时是同步还是异步写。
  
3.1.4.   AFFIRM和NOAFFIRM属性
该属性指定Redo传输服务在写Archived Redo Log和Standby Redo Log时,磁盘I/O是否同步。
? AFFIRM
表示Redo传输服务在写Archived Redo Log和Standby Redo Log时,Primary和Standby两边的磁盘I/O是同步的。并且只有在两边都成功写入后,Log写进程才会继续。
? NOAFFIRM
默认值,表示Redo传输服务在写Archived Redo Log和Standby Redo Log时是异步的,Primary端的日志写进程不会等待Standby端写Archived Redo Log和Standby Redo Log。
? 使用注意点
a.    当Data Guard为最大保护或最高可用模式,并且设置为LGWR和SYNC时,该参数自动设置为AFFIRM。
b.   如果指定了LGWR和AFFIRM,Primary和Standby两边日志写进程会同时写Redo,直到两边的磁盘I/O都完成了用户才能继续操作。
c.    如果指定了ARCH和AFFIRM,ARCn进程会同步将Redo写入本地归档目录和远程路径,所以归档操作会消耗更长的时间。
d.   如果指定了ASYNC和AFFIRM,那么Primary数据库性能将不受影响。
e.   AFFIRM和NOAFFIRM对于Primary数据库的Online Redo Log没有影响。
  
重点:SYNC/ASYNC,AFFIRM/NOAFFIRM 这2对属性单独理解比较困难,需要结合起来一起分析。这2对属性控制了Data Guard在做同步数据时的方式,同时也决定了Data Guard的保护模式。下面结合LGWR和ARCH来分别看这2对属性是如何控制数据同步的。
LGWR模式:
在Primary数据库产生commit事件之后,Primary数据库通过LGWR进程写Online Redo Log,此时LGWR进程会同步或者异步(SYNC/ASYNC)写入Standby Redo Log。如果该归档路径是远程的(归档路径设置为SERVICE),那么LGWR进程会调用LNSn进程,通过Oracle Net建立网络连接,然后往Standby数据库传输Redo Log。在Standby数据库,RFS进程(Remote File Server Process)在接收到LNSn进程传输来的Redo Log后,如果是AFFIRM,那么RFS进程会在成功写入Standby Redo Log之后返回给Primary数据库一个处理结果,Primary数据库的LGWR进程会进行等待直到Standby数据库返回处理结果。如果是NOAFFIRM,那么Standby数据库的RFS进程在接收到Redo Log后,在写入Standby Redo Log之前就返回给Primary数据库处理结果,此时Primary数据库的LGWR进程不会等待Standby数据库的RFS进程写Redo Log,因为已经提前收到了处理结果。
ARCH模式:
在Primary数据库发起log switch事件之后,Primary数据库会通过ARCn进程,将Online Redo Log进行归档,写入本地归档路径。并且会通过Oracle Net建立网络连接,同步或者异步(SYNC/ASYNC)向Standby数据库传输归档日志(Archived Redo Log)。Standby数据库的RFS进程在接收到ARCn进程传输来的Archived Redo Log后,如果是AFFIRM,那么RFS进程会在写完归档日志之后返回给Primary处理结果,在RFS进程写入期间,Primary数据库的ARCn进程会进行等待。如果是NOAFFIRM,则RFS在写归档日志之前先返回处理结果,此时Primary的ARCn进程在收到返回结果后就不会再等待RFS写归档日志了。
  
3.1.5.   ALTERNATE属性
该属性用来指定当一组路径失败时,启用替补归档路径。
? 使用方法
Example 1. 自动fail over到替补归档路径
LOG_ARCHIVE_DEST_1='LOCATION=/disk1MANDATORY  ALTERNATE=LOG_ARCHIVE_DEST_2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_2='LOCATION=/disk2MANDATORY'
LOG_ARCHIVE_DEST_STATE_2=ALTERNATE
  
Example 2. 使用不同的Oracle Net自动fail over到Standby数据库上
LOG_ARCHIVE_DEST_1='LOCATION=/disk1MANDATORY'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_2='SERVICE=stby1_path1 OPTIONALALTERNATE=LOG_ARCHIVE_DEST_3'
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_DEST_3='SERVICE=stby1_path2OPTIONAL'
LOG_ARCHIVE_DEST_STATE_3=ALTERNATE
  
? 使用注意点
a.    ALTERNATE属性是可选的,如果没有指定,那么在原始路径fail之后是无法自动切换到其他的归档路径上的。
b.   每一个LOG_ARCHIVE_DEST_n只能设置一个替补路径。
c.    当前可用的归档路径数量要符合LOG_ARCHIVE_MIN_SUCCEED_DEST参数的值(如果设置的话)。
d.   无法将自己设置为替补路径。
e.   至少要有一个本地强制归档路径。
f.     当一个路径失效时,替补路径会在下一次归档时才生效。
g.   如果设置了REOPEN属性,并且MAX_FAILURE属性为0,那么ALTERNATE将无效。如果同时设置了REOPEN和MAX_FAILURE,那么只有当失效的归档路径达到MAX_FAILURE指定的数量,ALTERNATE才会生效。
                                                                                                                                                                  
  
3.1.6.   LOG_ARCHIVE_MAX_PROCESSES参数
当LOG_ARCHIVE_DEST_n采用ARCH模式时该参数用于限制开启ARCH的进程数量,最大值是30,可以通过ALTER SYSTEM来动态修改。默认情况下会自动开启4个ARCH进程,并且自动进行负载均衡。
  
3.1.7.   VALID_FOR属性
语法为:VALID_FOR=(redo_log_type, database_ role)  
redo_log_type的有效值为:ONLINE_LOGFILE,STANDBY_LOGFILE和ALL_LOGFILES。该参数指明了归档路径log_archive_dest_n对哪种类型的日志有效。
database_role的有效值为:PRIMARY_ROLE,STANDBY_ROLE和ALL_ROLES。该参数指明了归档路径
log_archive_dest_n在哪个数据库角色下生效。
如果未设置VALID_FOR属性,默认相当于设置了VALID_FOR=(ALL_LOGFILES, ALL_ROLES)。
  
3.1.8.   DB_UNIQUE_NAME属性
此处的DB_UNIQUE_NAME是指设置在LOG_ARCHIVE_DEST_n参数里的,当LOG_ARCHIVE_DEST_n参数设置了SERVICE属性,则必须同时设置DB_UNIQUE_NAME。
例如:
LOG_ARCHIVE_DEST_2='SERVICE=boston LGWRASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=boston'
这个属性的值和参数LOG_ARCHIVE_CONFIG以及参数DB_UNIQUE_NAME的值都对应,如果上述例子中,Standby数据库(boston)的DB_UNIQUE_NAME不是boston,则LOG_ARCHIVE_DEST_2在归档到Standby数据库时连接会被拒绝。
  
3.1.9.   REOPEN和MAX_FAILURE属性
语法为:LOG_ARCHIVE_DEST_1='LOCATION=/arc_destREOPEN=60 MAX_FAILURE=3' ,REOPEN可以单独使用,但是MAX_FAILURE必须和REOPEN一起使用。
REOPEN属性用来设置该归档路径是否会自动重试,单位为秒,默认值300秒。比如上例中如果第一次Redo传输失败,那么在60秒后,ARCn或者LGWR进程会尝试重新传输日志。如果REOPEN=0表示关闭重试功能。
MAX_FAILURE属性用来设置连续失败的次数。比如上例中如果传输日志失败后每隔60秒会重试,重试失败3次后会关闭自动重试功能。
  
3.1.10.MANDATORY和OPTIONAL属性
语法为:LOG_ARCHIVE_DEST_3= 'LOCATION=/arc_dest MANDATORY | OPTIONAL'
该属性的含义是假如设置了MANDATORY,那么在log switch之后,如果该归档路径下的归档操作没有成功,那么对应的那一组Online Redo Log也不会被覆盖和重用,只有在错误排除后那一组Online Redo Log才变为可用状态。如果设置为OPTIONAL,那么即使发生归档错误,Online Redo Log也会再次被标记为可用状态。
默认值是OPTIONAL,但是即使所有的归档路径都设置了OPTIONAL,仍然有一个本地归档路径是MANDATORY以此来保证至少有一组归档日志是可用的。
  
3.1.11. DEPENDENCY属性
该属性主要用于共享归档路径,必须和SERVICE一起使用,并且不能设置NOREGISTER属性。具体用法如下:
LOG_ARCHIVE_DEST_1='LOCATION=DISK1MANDATORY'
LOG_ARCHIVE_DEST_2='SERVICE=stdby1OPTIONAL'
LOG_ARCHIVE_DEST_3='SERVICE=stdby2OPTIONAL DEPENDENCY=LOG_ARCHIVE_DEST_2'
以上示例是指Primary数据库将Redo Log传输到stdby1,但是不传输给stdby2,stdby2通过共享stdby1的Redo Log进行恢复。
  
3.1.12. DELAY属性
语法为:LOG_ARCHIVE_DEST_3='SERVICE=stbyC  DELAY=120' 必须和SERVICE一起使用。
该属性主要作用是设置Standby数据库从接收到Redo Log到应用Redo Log恢复数据库之间的时间间隔,单位是分钟,默认是没有延迟。从Standby数据库接收到Redo Log并且完成归档动作之后开始计时,计时结束后才会应用Redo Apply去恢复数据库。通过以下语句可以关闭DELAY:
物理Standby: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY;
逻辑Standby: ALTER DATABASE START LOGICAL STANDBY APPLY NODELAY;
  
3.1.13. MAX_CONNECTIONS属性
语法为:LOG_ARCHIVE_DEST_3='SERVICE=denverMAX_CONNECTIONS=3'
通常情况下Redo传输服务只会使用一个网络连接来执行远程归档,如果该属性的值设置大于1,Redo传输服务会使用多个网络连接。但是该属性同时受到LOG_ARCHIVE_MAX_PROCESSES和PARALLEL_MAX_SERVERS这两个参数影响。
  
3.1.14. NET_TIMEOUT
该属性必须在LGWR SYNC传输方式下使用,且仅对LNSn进程生效。单位是秒,默认是180秒。Primary数据库通过LNSn进程发送日志给Standby数据库,如果在NET_TIMEOUT参数指定时间内没得到Standby数据库的响应,则连接超时。如果是最大保护模式,那么数据库会在5分钟内重试连接,而不会立即shutdown Primary数据库。
  
3.1.15. NOREGISTER
如果SERVICE方式的归档路径不是Data Guard配置中的一部分,那么必须加上NOREGISTER。
  
3.1.16. TEMPLATE
设置归档日志文件的命名格式。仅对使用SERVICE的归档路径生效,不能命名LOCATION方式的归档日志。
  
3.1.17. VERIFY
指在完成归档操作后是否对归档日志进行验证。验证操作需要较长的时间来完成,并且可能对Primary数据库造成性能方面的影响。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
 楼主| 发表于 2020-3-27 17:58:46 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
板凳
发表于 2020-4-2 11:43:59 | 只看该作者
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
地板
 楼主| 发表于 2020-4-2 17:30:05 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
5#
发表于 2020-4-3 15:23:21 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
6#
 楼主| 发表于 2020-4-3 17:36:01 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
7#
发表于 2020-4-4 14:18:38 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
8#
 楼主| 发表于 2020-4-8 17:16:19 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
9#
发表于 2020-4-11 18:08:06 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-12-24 03:29 , Processed in 0.178415 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表