Oracle Data+Guard+Administration D17316GC20_L05_Phys_SQL
- 格式:pptx
- 大小:248.86 KB
- 文档页数:29
oracle dataguard原理(一)Oracle DataGuard原理详解介绍Oracle DataGuard是Oracle数据库提供的一种数据冗余和灾难恢复解决方案。
它通过实时数据复制和自动故障转移来提供数据保护和高可用性。
本文将从浅入深,逐步解释Oracle DataGuard的相关原理。
数据冗余•数据冗余是指将数据库中的数据复制到另一个位置,以保护数据免受硬件故障、自然灾害和人为错误的影响。
•在Oracle DataGuard中,数据冗余是通过将主数据库中的数据异步或同步复制到一个或多个备用数据库实现的。
•备用数据库是主数据库的精确副本,它可以提供故障转移和灾难恢复的能力。
主备同步•主备同步是指主数据库和备用数据库之间的数据复制是实时的并保持同步。
•在Oracle DataGuard中,主备同步有两种模式,即同步模式和异步模式。
•同步模式要求主数据库将数据写入本地磁盘后,等待至少一个备用数据库确认接收并写入数据,确保数据一致性和可靠性。
•异步模式允许主数据库立即提交事务,并异步地将数据发送给备用数据库。
这种模式下,主备数据库之间可能存在一定的数据延迟。
数据传输•数据传输是指主数据库将数据发送给备用数据库的过程。
•在Oracle DataGuard中,数据传输可以通过物理复制或逻辑复制来实现。
•物理复制是将主数据库的物理数据文件复制到备用数据库。
这种复制方式效率高,适用于大型数据库。
•逻辑复制是将主数据库的逻辑数据写入备用数据库。
这种复制方式可以跨不同操作系统平台和数据库版本。
自动故障转移•自动故障转移是指在主数据库发生故障时,备用数据库可以自动接管主数据库的功能。
•Oracle DataGuard提供了故障切换的功能,可以迅速将备用数据库切换为主数据库,实现连续的应用程序可用性。
•故障切换是基于Oracle Grid Infrastructure和Fast-Start Failover技术实现的,它能够在故障发生时自动检测和处理。
OracleDataguard原理Oracle DataGuard是Oracle⾃带的数据同步功能,基本原理是将⽇志⽂件从原数据库传输到⽬标数据库,然后在⽬标数据库上应⽤这些⽇志⽂件,从⽽使⽬标数据库与源数据库保持同步,是⼀种数据库级别的⾼可⽤性⽅案。
DataGuard可以提供Oracle数据库的冗灾、数据保护、故障恢复等,实现数据库快速切换与灾难性恢复。
在⽣产数据库的保证"事务⼀致性"时,使⽤⽣产库的物理全备份创建备库,备库会通过⽣产库传输过来的归档⽇志或重做条⽬⾃动维护备⽤数据库。
DataGuard数据同步技术有以下优势:1) Oracle数据库⾃⾝内置的功能,与每个Oracle新版本的新特性都完全兼容,且不需要另外付费。
2)配置管理较简单,不需要熟悉其他第三⽅的软件产品。
3)物理Standby数据库⽀持任何类型的数据对象和数据类型;4)逻辑Standby数据库处于打开状态,可以在保持数据同步的同时执⾏查询等操作。
5)在最⼤保护模式下,可确保数据的零丢失。
⼀、架构Oracle DataGuard由⼀个primary数据库(⽣产数据库)及⼀个或多个standby数据库(最多9个)组成。
组成Data Guard的数据库通过Oracle Net 连接,并且有可以分布于不同地域。
只要各库之间可以相互通信,它们的物理位置并没有什么限制,不受操作系统的限制。
1.Primary 数据库DataGuard包含⼀个primary数据库即被⼤部分应⽤访问的⽣产数据库,该库既可以是单实例数据库,也可以是RAC。
2.Standby 数据库Standby数据库是primary数据库的复制(事务上⼀致)。
在同⼀个Data Guard中可以最多创建9个standby数据库。
⼀旦创建完成,Data Guard 通过应⽤primary数据库的redo⾃动维护每⼀个standby数据库。
Standby数据库同样即可以是单实例数据库,也可以是RAC结构。
[DataGuard全解析]2.OracleDataGuard参数介绍Data Guard作为Oracle提供的一个高可用及灾备解决方案,理解并可以实施它对于DBA来说是非常重要套的技能上节介绍了有关Data Guard的概念,这节将介绍相关的一些参数[Data Guard全解析]1.Oracle Data Guard 概念介绍有的参数是做为备库角色时才生效的,会单独说出来1. DB_NAME该参数指定Oracle数据库的名称Data Guard环境中所有数据库的DB_NAME需保持一致db_name= dg12. DB_UNIQUE_NAME该参数指定Oracle数据库的唯一名称Data Guard环境中所有数据库的DB_UNIQUE_NAME都不能一致DB_UNIQUE_NAME=dg13. LOG_ARCHIVE_CONFIG该参数主要用来指定Data Guard环境中哪些数据库可以传输日志文件该参数指定的数据库名称为DB_UNIQUE_NAME该参数主备库需设置一致LOG_ARCHIVE_CONFIG='DG_CONFIG=(dg1,dg2)'4. LOG_ARCHIVE_FORMAT该参数设置归档日志文件的命名格式LOG_ARCHIVE_FORMAT=%t_%s_%r.arc5. LOG_ARCHIVE_DEST_n该参数控制数据库归档文件的路径,其包含下面子参数n=1一般为本地归档路径log_archive_dest_1='LOCATION=/oralog/archVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=dg1'5.1 LOCATION指定本地归档路径,必须为第一个参数,不能和service同时出现5.2 VALID_FOR决定redo数据可以写入目标路径的条件VALID_FOR=(redo_log_type,database_role)redo_log_type 取值范围:•ONLINE_LOGFILE•STANDBY_LOGFILE•ALL_LOGFILESdatabase_role取值范围•PRIMARY_ROLE•STANDBY_ROLE•ALL_ROLES5.3 DB_UNIQUE_NAME指定该归档路径有效的db unique name总结:上面的配置的意思为满足下列条件时就会归档日志文件 :•当数据库unique名为dg1时•无论其是主库或者备库角色•无论是归档online redo log还是standby logn>1一般为归档至远程数据库log_archive_dest_2='SERVICE=dg2 LGWR SYNC AFFIRMVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dg2'5.4 SERVICE指定远程数据库的service name,必须为第一个参数,不能和location同时出现5.5 LGWR ARCH指定收集和传输redo数据的后台进程,包括:•ARCH:此为默认配置,但是只能用于最大性能模式•LGWR:使用LGWR进程,可用于所有保护模式无法同时使用2个进程用于发送redo数据到目标路径5.6 SYNC ASYNC默认值:ASYNC•SYNC(同步)时,redo data在传输到所有启用的路径前transaction不可以commit•ASYNC(异步)时,redo data在传输到所有启用的路径前transaction可以commit5.7 AFFIRM NOAFFIRM•AFFIRM时,在主库redo data写入所有备库standby redo log 后确认已收到redo log,当SYNC属性指定时该属性是默认值•NOAFFIRM时,AFFIRM时,在主库redo data 写入所有备库redo log前确认已收到redo log,当ASYNC属性指定时该属性是默认值总结:上面的配置的意思为满足下列条件时就会归档日志文件到远程路径 :•当数据库unique 名为dg2时•需要处于主库角色•需要归档的redo data是online log file•使用LGWR进程•必须等所有redo data传输到目标路径才可以完成commit•在redo data完成传输到standby redo log后才确认完成主库保护模式相应的属性需求:上图表面了我们实际需求的保护模式相对应的一些参数设置6. LOG_ARCHIVE_DEST_STATE_n该参数控制LOG_ARCHIVE_DEST_n参数的有效性LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLE具体请查看如下连接Oracle基本参数(LOG_ARCHIVE_DEST_STATE_n)7. REMOTE_LOGIN_PASSWORDFILE该参数在使用密码文件验证时必须使用EXCLUSIVE具体请查看如下连接Oracle基本参数(REMOTE_LOGIN_PASSWORDFILE)8. DB_FILE_NAME_CONVERT该参数控制主库数据文件到备库时的路径转换规则如主备库目录结构一直可直接写服务名该参数只在备库(Standby)角色时有效,但Oracle建议主库也设置,方便以后的角色转换DB_FILE_NAME_CONVERT = 'string1' ,'string2' , 'string3' , 'string4' , ...•string1 是主库数据文件的路径•string2 是备库数据文件的路径•string3 是主库数据文件的路径•string4 是备库数据文件的路径以此类推,数量不限9. LOG_FILE_NAME_CONVERT该参数控制主库online log file到备库时的路径转换规则如主备库目录结构一直可直接写服务名该参数只在备库(Standby)角色时有效,但Oracle建议主库也设置,方便以后的角色转换LOG_FILE_NAME_CONVERT ='string1' , 'string2' , 'string3' , 'string4' , ...•string1 是主库数据文件的路径•string2 是备库数据文件的路径•string3 是主库数据文件的路径•string4 是备库数据文件的路径以此类推,数量不限10. STANDBY_FILE_MANAGEMENT该参数控制是否自动在备库中建立主库新建的数据文件注意下面两点:•不会自动创建日志文件•如果数据文件重名会覆盖现有文件该参数只在备库(Standby)角色时有效,但Oracle建议主库也设置,方便以后的角色转换STANDBY_FILE_MANAGEMENT=AUTO11. FAL_SERVERFAL=fetch archive log,这个参数设定备库从哪里获取归档日志,一般设定为主库的服务名(service name)该参数只在备库(Standby)角色时有效,但Oracle建议主库也设置,方便以后的角色转换FAL_SERVER=dg212. FAL_CLIENT设定FAL的客户端名称,一把为本地数据库的服务名该参数只在备库(Standby)角色时有效,但Oracle建议主库也设置,方便以后的角色转换FAL_CLIENT=dg1好了DataGuard需要用到的参数讲到这了,下节介绍Data Guard 是如何工作的。
DG 是 Oracle Data Guard 的简称。
也就是Oracle11g的数据卫士。
由于在工作中 Oracle 和 SQL SERVER2008 同时都需要维护管理。
给我的感觉这里的 DG 其实和 Sql Server 2008的镜像实现的功能是一样的(当然更强大一些)。
DG 中的物理备用库尤其和 Sql Server 2008 的镜像实现的功能是一样的。
但也有不同点:DG中的物理备用库可以在特定条件下以只读或读写方式打开。
而镜像则不可以(2012版本虽然可以读,但还是不能打开),当然 Sql Server 2008 的日志传送功能实现的热备份库,是可以只读的。
DG中的逻辑备用库既可以读又可以写(如果写的话需要闪回数据库后才能继续和主库保持同步)基于逻辑备用库的结构可以和主库的不一样,这点Sql Server 2008的复制订阅方式实现的从库有些类似。
具体有哪些不同点,这里就不累述了,大家自己看书自通吧。
DG使用3中服务来管理 REDO数据的传送、REDO数据的应用、更改数据库角色。
1、REDO传输服务:控制从主生产库将REDO数据自动传输到一个或多个归档目的地。
2、日志应用服务:即在备用库上应用REDO数据,保持与主库事务同步。
可以从归档redo日志文件和备用redo日志文件中应用。
3、角色转换服务:使用切换或故障转移操作,把备用库更改为主生产库。
有两种切换方式:a、switchover (无数据丢失)b、faileover (会有数据丢失情况)DG的3中保护模式:1、最大保护模式该模式下确保了一个全面的零数据丢失灾难恢复解决方案。
Redo记录由日志LGWR 进程从主库同步传输到备用数据库,并直到确认事务数据至少在一个备用服务器的磁盘上可用时,才在主库上提交事务。
如果最后一个备用库不可用时,主库将停止处理服务并紧接着挂起。
2、最高性能模式该模式下当主库处理事务时,Redo数据由日志LGWR进程异步方式传输到备用数据库中。
Oracle Dataguard 配置介绍编写人:殷小春1.Oracle Dataguard介绍和主要优点1.1Oracl e Dataguard介绍Dataguard最主要的功能是冗灾,备库通过生产库传输过来的归档日志(或重做条目)自动维护备用数据库,保持生产库和备库数据的一致,这样当生产库发生故障时,可以马上将原来的备库切换成生产库,使系统迅速恢复正常,并且切换后无实时数据损失。
故障生产库在恢复后,可以作为新的备库使用,将数据和当前生产库同步。
Oracle10G中,备库只能运行在恢复模式,恢复模式中无法进行数据查询,只有以只读模式打开后才能查询数据,但此时不能同步恢复操作。
Oracle11G可以在打开数据库的同时进行恢复操作,备库可以一边和主库同步数据,一边进行数据查询和备份,这样既解决了数据库的容灾,也能缓解主服务器的压力,比如历史查询、或者大型报表统计这些耗资源的操作,就能放到备库上进行,提高生产库的运行效率。
缺点:无法将数据库还原到某一个时间点,主库和备库都只能保持在最新的数据状态。
1.2主要工作模式DATA GUARD可以分为物理STANDBY和逻辑STANDBY两种。
二者的最大差别在于,物理STANDBY应用的是主库的归档日志,而逻辑STANDBY应用的是主库的归档日志中提取的SQL语句。
由于二者这一点的区别,决定了物理STANDBY无论从逻辑结构和物理结构都是和主库保持一致,而逻辑STANDBY则只需保证逻辑结构一致,且逻辑STANDBY在应用SQL语句的时候,数据库可以处于打开的状态。
如果从DATA GUARD的保护模式分,可以分为三种不同的保护模式:1. 最大保护模式1)这种模式提供了最高级别的数据保护能力;2)要求至少一个物理备库收到重做日志后,主库的事务才能够提交;3)主库找不到合适的备库写入时,主库会自动关闭,防止未受保护的数据出现;4)优点:该模式可以保证备库没有数据丢失;5)缺点:主库的自动关闭会影响到主库的可用性,同时需要备库恢复后才能提交,对网络等客观条件要求非常的高,主库的性能会因此受到非常大的冲击。
oracledataguard原理Oracle Data Guard是Oracle数据库提供的一种可靠的灾难恢复解决方案。
它基于数据库备份和恢复技术,并使用了物理和逻辑日志来确保数据的一致性和可用性。
本文将介绍Oracle Data Guard 的原理和工作机制。
我们需要了解Oracle数据库的基本概念。
Oracle数据库由多个数据文件组成,这些数据文件存储了表、索引和其他数据库对象的实际数据。
数据库还包含了控制文件、日志文件和参数文件等元数据文件。
控制文件记录了数据库的结构信息,日志文件记录了数据库操作的详细信息,参数文件包含了数据库的配置参数。
在Oracle Data Guard中,主数据库(Primary Database)是数据的源头,负责处理用户的请求并维护数据的完整性。
而备用数据库(Standby Database)则是主数据库的一个精确副本,负责保持与主数据库的同步。
Oracle Data Guard的工作原理如下:1. 数据传输:主数据库将数据更改记录在归档日志文件(Archive Log)中,并将这些日志文件传输到备用数据库。
备用数据库通过重做应用进程(Redo Apply)将这些日志文件应用到自己的数据库中,从而与主数据库保持同步。
2. 故障检测:Oracle Data Guard使用心跳(Heartbeat)机制来检测主数据库和备用数据库之间的连接状态。
如果主数据库发生故障,备用数据库会接收不到主数据库发送的心跳信号,从而判断主数据库是否可用。
3. 自动故障转移:当主数据库不可用时,备用数据库可以自动接管主数据库的角色,并成为新的主数据库。
这个过程称为自动故障转移(Automatic Failover)。
自动故障转移可以在几秒钟内完成,从而最大限度地减少系统停机时间。
4. 故障恢复:当主数据库恢复后,它会自动变为备用数据库,并与新的主数据库同步。
这个过程称为故障恢复(Failback)。
OracleDataguard介绍Oracle DataGuard介绍一、 DataGuard的基本原理当某次事务处理对生产数据库中的数据作出更改时,Oracle数据库将在一个联机重做日志文件中记录此次更改。
在DataGuard中可以配置写日志的这个过程,除了把日志记录到本地的联机日志文件和归档日志文件中,还可以通过网络,把日志信息发送到远程的从(standby)数据库服务器上。
这个备用日志文件写入过程可以是实时、同步的,以实现零数据丢失(最大保护模式maximum protection);也可以是异步的,以减少对网络带宽的压力(最大性能模式maximum performance);或者是异步和同步可以自动切换的模式(最大可用模式maximum availability)。
当备份数据库接收到日志信息后,Data Guard可以自动利用日志信息实现数据与主数据库的实时同步。
当主数据库打开并处于活动状态时,备用数据库可以执行恢复操作,如果主数据库出现了故障,备用数据库即可以被激活并接管生产数据库的工作。
二、 3种模式的特点的standby log才算有效。
1 最大保护模式最大保护模式为主数据库提供了最高水平的数据保护,从而确保了一个全面的零数据丢失灾难恢复解决方案。
当在最大保护模式下运行时,重做记录由日志写入器(LGWR) 进程从主数据库同步地传输到备用数据库,并且直到确认事务数据在至少一个备用服务器上的磁盘上可用时,才在主数据库上提交事务。
强烈建议,这种模式应至少配置两个备用数据库。
当最后参与的备用数据库不可用时,主数据库上的处理将停止。
这就确保了当主数据库与其所有备用数据库失去联系时,不会丢失事务。
由于重做传输的同步特性,这种最大保护模式可能潜在地影响主数据库响应时间。
可以通过配置一个低延迟网络,并为它分配足够应付高峰事务负载的带宽来将这种影响减到最小。
需要这种最大保护模式的企业有股票交易所、货币交易所、金融机构等。
[DataGuard全解析]1.OracleDataGuard概念介绍从这期开始讲Oracle Data Guard方面的内容,先将基本的概念,然后介绍如何搭建Data GuardData Guard作为Oracle提供的一个高可用及灾备解决方案,理解并可以实施它对于DBA来说是非常重要套的技能首先介绍一下有关Data Guard的概念一张思维导图1.Data Guard 相关类型1.1 主库(Primary Database)指的是我们的生产环境,我们需要新建Data Guard来保护主库的高可用性主库可以既可以是单节点实例或者RAC实例1.2 备库(Standby Databases)备库是主库的一个完整拷贝,在一个Data Guard环境中可以有最多30个备库备库建立后Data Guard 自动从主库传输日志文件并应用备库可以既可以是单节点实例或者RAC实例备库分为如下1.2.1 物理备库(Physical standby database)物理备库要求备库的物理结构和主库一致,包括数据文件,schema以及索引物理备库通过应用从主库传过来的redo数据进行同步11g开始物理备库提供 Active Data Guard 功能可以使物理备库可以在open read only的状态也可以应用日志1.2.2 逻辑备库(Logical standby database)只要求和主库保持逻辑信息一致物理备库通过应用从主库传过来的SQL语句进行同步1.2.3 快照备库(Snapshot Standby Database)快照备库是个可以更新的备库和其他备库一样它接收从主库来的日志,但是不会应用它除非被转换成物理备库,这时所做的操作会全部取消2. Data Guard 服务Data Guard提供以下三种服务确保功能的实现:2.1 Redo传输服务(Redo Transport Services)该服务有如下功能:•控制redo 数据(online 和archive)如何传输到一个或多个备库路径•检查损坏或者丢失的归档日志文件并自动从主库或者其他备库获取2.2 应用服务(Apply Services)该服务负责应用从主库传输过来的数据,物理备库应用的是redo 数据逻辑备库应用的是SQL语句2.3角色转换服务(Role Transitions)该服务负责将主库转换为备库或者从备库到主库其使用switchover和failover 方法•switchover为主动的做角色转换,首先将主库切换到备库,然后将原来的备库切换至主库角色•failover为当主库出现故障时将备库切换至主库3. Data Guard Broker其主要功能是监控Data Guard状态,当主库异常时自动切换角色4. Data Guard 保护模式Data Guard 保护模式指的是主库的保护模式,在主库上执行命令4.1 最大可用模式(Maximum Availability)该模式分为2个阶段:•当备库连接正常时,该模式首先确保主库的redo数据传输到备库•如备库无法连接,也不会影响主库的操作,待备库恢复后继续同步4.2 最大性能模式(Maximum Performance)该模式下主库不用等待redo数据传输到备库即可完成操作,此为默认模式4.3 最大保护模式(Maximum Protection)该模式下需要主库将redo数据传输到备库后才可完成操作如备库无法访问,则会导致主库无法使用该模式下备库无法正常关闭,应先关闭主库5. Data Guard 同步模式Data Guard 同步模式指的是备库的同步模式,在备库上执行命令5.1 实时同步该模式下备库实时应用主库的操作,要求建立standby redo log5.2 非实时同步该模式下备库不会实时应用主库的操作,应用时机分为以下两种:•如建立standby redo log ,应用发生在主库切换日志的时候,这时备库也会同步切换日志•如未建立standby redo log,应用发生在主库归档日志传输到备库时非实时同步也可设定延迟同步,如延迟2小时同步,这时主库传输过来的日志会先归档处理6.其他的一些概念redo 数据(redo Data)Data Guard 主库传输的的redo数据包括 online redo log 以及archive redo log如备库未建立standby redo log,则会传输archive redo log至备库standby redo logstandby redo log是备库用来接收主库传过来的online redo 数据的最大性能模式下是可选的但Oracle强烈建议无论什么模式都需要建立standby redo log,原来后面介绍ADGOracle 11g提供的新功能可以使物理备库在只读的状态下同时应用redo数据好了,关于Data Guard相关的概念就这么多了,下面的一节将介绍基本参数。
oracle dataguard原理Oracle Data Guard是Oracle数据库提供的一种灾难恢复解决方案,通过实时数据复制和自动故障转移,确保数据库在灾难事件发生时能够快速恢复并保持高可用性。
本文将介绍Oracle Data Guard的原理和工作机制。
Oracle Data Guard通过将主数据库的变更记录传输到一个或多个辅助数据库来实现数据复制。
主数据库是应用程序的主要操作数据库,而辅助数据库则是主数据库的备份。
主数据库将其变更记录写入日志文件中,并将日志文件传输到辅助数据库。
辅助数据库根据接收到的变更记录进行恢复,并保持与主数据库的同步。
在Oracle Data Guard中,主数据库和辅助数据库之间通过Redo 传输实现数据的复制和同步。
主数据库将其变更记录写入归档日志文件中,辅助数据库通过传输归档日志文件来接收变更记录。
辅助数据库将接收到的归档日志文件应用到自己的数据库中,从而实现与主数据库的同步。
Oracle Data Guard提供了多种数据保护模式,包括最大性能模式、最大可用性模式和最大保护模式。
最大性能模式下,主数据库不等待辅助数据库确认接收到的变更记录,可以最大程度地提高性能。
最大可用性模式下,主数据库等待辅助数据库确认接收到的变更记录,以确保数据的一致性和可用性。
最大保护模式下,主数据库等待所有辅助数据库确认接收到的变更记录,并将其保存到磁盘上的归档日志文件中,以提供最高级别的数据保护。
在Oracle Data Guard中,还可以配置自动故障转移,以提高数据库的可用性。
当主数据库发生故障或不可用时,自动故障转移会将辅助数据库自动切换为主数据库,使应用程序能够继续正常运行。
自动故障转移可以通过配置Fast-Start Failover来实现,当主数据库不可用时,Fast-Start Failover会自动切换到辅助数据库。
除了数据复制和自动故障转移外,Oracle Data Guard还提供了许多其他功能,如实时查询、备份和恢复、跨数据中心复制等。