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

标题: oracle standby详解配置一 [打印本页]

作者: 张兴康    时间: 2020-3-26 20:05
标题: oracle standby详解配置一
1.1.         Primary数据库:
Data Guard配置中包含1台生产数据库,这台数据库可以是单实例也可以是RAC集群,负责对外提供大部分服务,在Data Guard中这台的角色就是Primary。
  
1.2.         Standby数据库:
在一套Data Guard中最多可以有9台Standby数据库,Primary数据库通过网络将日志传输到Standby数据库,然后Standby在接收完日志后进行应用,以实现主备库之间的数据同步和事务一致性。和Primary数据库一样,Standby数据库也可以是单实例或者RAC集群。根据Redo Log的应用方式不同,Standby数据库又可以分为物理Standby和逻辑Standby。另外Data Guard是通过控制文件来识别Primary和Standby数据库的,所以Standby数据库的控制文件一定不能用操作系统复制一定要通过命令ALTER DATABASE CREATE STANDBY CONTROLFILE AS来进行创建。
  
1.2.1.   物理Standby:
物理Standby使用的是Media Recovery技术,通过Redo Apply,使用从主库接收到的Redo Log进行恢复,是基于block级的恢复,所以主备库中所有的schema都是完全一样的。物理Standby必须在mount阶段才能进行恢复,但是能通过只读方式打开,在10g版本中如果以只读方式打开的话就无法进行恢复操作。所以在某些情况下,Standby可以分担一部分查询和备份的压力,但是Data Guard还不能作为性能优化的解决方案。
  
1.2.2.   逻辑Standby:
逻辑Standby使用的是Log Miner技术,把Redo Log中的内容还原成SQL语句,通过SQL Apply在备库执行SQL语句来实现数据同步。Log Miner不支持所有的数据类型,不支持的类型可以在DBA_LOGSTDBY_UNSUPPORTED视图中进行查看。逻辑Standby可以在恢复的同时进行写操作。
  
1.3.         Data Guard保护模式
1.3.1.   最大保护模式Maximum protection
在这种模式下,能够确保在Primary宕机时数据没有任何丢失。在事务提交之前,Primary数据库将Redo Log写入本地Online Redo Log,同时写入Standby数据库的Standby Redo Log,并且确保至少Redo Log在一个Standby数据库上可用,这样事务才会被提交,否则Primary会被shutdown。
  
1.3.2.   最高可用模式Maximum availability
最高可用和最大保护类似,也是确保Redo在写入本地Online Redo Log和至少一个Standby数据库的Standby Redo Log,事务才会被提交。但是和最大保护不同的是,如果发生故障(如网络中断)导致Redo Log无法被写入Standby数据库时,Data Guard会自动切换到最高性能模式,而不是shutdown Primary数据库。当故障排除,Redo Log的gap被解决之后,Data Guard会自动切换回最高可用模式。
  
1.3.3.   最高性能模式Maximum performance
Data Guard默认模式。在这种模式下,Primary数据库在写入本地Online Redo Log之后就提交事务,写入Standby Redo Log是异步的,所以对于Primary性能影响是最小的。
  
1.3.4.   设置Data Guard保护模式
  
Maximum protection
最大保护
Maximum availability
最高可用
Maximum performance
最高性能
Redo归档进程
LGWR
LGWR
LGWR或ARCH
网络传输模式
SYNC
SYNC
如使用LGWR: SYNC或ASYNC
如使用ARCH: SYNC
磁盘I/O模式
AFFIRM
AFFIRM
AFFIRM或NOAFFIRM
是否必需Standby Redo Log


否,但是建议创建
改变Data Guard保护模式可以在Primary数据库(mount阶段)执行SQL语句:ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE {PROTECTION | AVAILABILITY| PERFORMANCE},另外通过SQL语句:SELECT PROTECTION_MODE, PROTECTION_LEVEL FROM V$DATABASE 可以查看当前数据库的保护模式。

作者: 张兴康    时间: 2020-3-26 20:05

作者: Adam丶鱼    时间: 2020-3-26 20:22
张兴康 发表于 2017-4-26 20:05


作者: Adam丶鱼    时间: 2020-3-27 17:50
Adam丶鱼 发表于 2017-4-26 20:22


作者: 张兴康    时间: 2020-3-27 17:59
Adam丶鱼 发表于 2017-4-26 20:22


作者: fteair    时间: 2020-4-2 11:43

作者: 张兴康    时间: 2020-4-2 17:29
fteair 发表于 2017-5-2 11:43






欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2