Oracle Data+Guard+Administration D17316GC20_L05_Phys_SQL
oracle dataguard原理(一)

oracle dataguard原理(一)Oracle DataGuard原理详解介绍Oracle DataGuard是Oracle数据库提供的一种数据冗余和灾难恢复解决方案。
它通过实时数据复制和自动故障转移来提供数据保护和高可用性。
本文将从浅入深,逐步解释Oracle DataGuard的相关原理。
数据冗余•数据冗余是指将数据库中的数据复制到另一个位置,以保护数据免受硬件故障、自然灾害和人为错误的影响。
•在Oracle DataGuard中,数据冗余是通过将主数据库中的数据异步或同步复制到一个或多个备用数据库实现的。
•备用数据库是主数据库的精确副本,它可以提供故障转移和灾难恢复的能力。
主备同步•主备同步是指主数据库和备用数据库之间的数据复制是实时的并保持同步。
•在Oracle DataGuard中,主备同步有两种模式,即同步模式和异步模式。
•同步模式要求主数据库将数据写入本地磁盘后,等待至少一个备用数据库确认接收并写入数据,确保数据一致性和可靠性。
•异步模式允许主数据库立即提交事务,并异步地将数据发送给备用数据库。
这种模式下,主备数据库之间可能存在一定的数据延迟。
数据传输•数据传输是指主数据库将数据发送给备用数据库的过程。
•在Oracle DataGuard中,数据传输可以通过物理复制或逻辑复制来实现。
•物理复制是将主数据库的物理数据文件复制到备用数据库。
这种复制方式效率高,适用于大型数据库。
•逻辑复制是将主数据库的逻辑数据写入备用数据库。
这种复制方式可以跨不同操作系统平台和数据库版本。
自动故障转移•自动故障转移是指在主数据库发生故障时,备用数据库可以自动接管主数据库的功能。
•Oracle DataGuard提供了故障切换的功能,可以迅速将备用数据库切换为主数据库,实现连续的应用程序可用性。
•故障切换是基于Oracle Grid Infrastructure和Fast-Start Failover技术实现的,它能够在故障发生时自动检测和处理。
OracleDataguard原理

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参数介绍
![[DataGuard全解析]2.OracleDataGuard参数介绍](https://img.taocdn.com/s3/m/c3be847b49d7c1c708a1284ac850ad02de8007a6.png)
[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 是如何工作的。
Oracle 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 Data+Guard+Administration D17316GC20_L02_Architecture

Redo stream
Backup Primary database
——ACE GENE学习俱乐部
10
Physical standby database
——ACE GENE学习俱乐部
2
——自由IT技术支持中心
Data Guard Operational Requirements: Hardware and Operating System
• The hardware can be different for the primary and standby databases. • The operating system and platform architecture for the primary and standby databases must be the same. • The operating system releases for the primary and standby databases can be different. • If all databases are on the same system, verify that the OS allows you to mount more than one database with the same name.
Log Mining Apply processing Applier
Transaction groups
Coordinator
Analyzer
Data files
Transactions to be applied
Oracle Dataguard 配置介绍

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原理

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)。
Oracle Data+Guard+Administration D17316GC20_L03_Broker_EM

Instances
Instances
——ACE GENE学习俱乐部
6
——自由IT技术支持中心
Data Guard Broker: Architecture
Graphical user interface or command-line interface
Make state or role changes
Update database properties
Monitor and tune configuration
——ACE GENE学习俱乐部
8
——自由IT技术支持中心
Oracle Net
——ACE GENE学习俱乐部
7
——自由IT技术支持中心
Life Cycle of a Broker Configuration
Create configuration
Enable configuration
Using Data Guard Broker and Enterprise Manager
——ACE GENE学习俱乐部
1
——自由IT技术支持中心
Objectives
After completing this lesson, you should be able to do the following: • Describe the Data Guard broker architecture • Describe the Data Guard broker components • Explain the benefits of the Data Guard broker • Explain Data Guard broker configurations • Use Enterprise Manager to manage your Data Guard configuration • Invoke DGMGRL to manage your Data Guard configuration
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
——ACE GENE学习俱乐部
10
——自由IT技术支持中心
Specifying Values for DB_FILE_NAME_CONVERT
• Must be defined on standby databases that have different disk or directory structures from the primary • Allows multiple pairs of file names • Applies to a database when in physical standby mode
LOG_FILE_NAME_CONVERT = ('/oracle1/logs/', '/ora1/stby_logs/')
——ACE GENE学习俱乐部
12
——自由IT技术支持中心
Specifying a Value for LOG_ARCHIVE_FORMAT
Specifying Values for LOG_FILE_NAME_CONVERT
• Similar to DB_FILE_NAME_CONVERT • Must be defined on standby databases that have different disk or directory structures from the primary • Online redo log files are used only when the standby becomes a primary. • Applies to a database when in physical standby mode
——ACE GENE学习俱乐部
8
——自由IT技术支持中心
LOCATION and SERVICE Attributes
Each archive log destination includes one of the following attributes: • LOCATION: specifies a valid path name. • SERVICE: specifies a valid Oracle Net Services name referencing a standby database.
——ACE GENE学习俱乐部
3
——自由IT技术支持中心
Preparing the Primary Database
• Enable FORCE LOGGING at the database level.
• Indicates the format for redo log file names • Format directives:
– – – – – – – – – %t: Thread number %T: Zero-filled thread number %s: Sequence number %S: Zero-filled sequence number %d: Database ID %D: Zero-filled database ID %a: Current activation ID %A: Zero-filled activation ID %r: Resetlogs ID
DB_FILE_NAME_CONVERT =('/oracle1/dba/', '/ora1/stby_dba/', '/oracle2/dba/', '/ora2/stby_dba/')
——ACE GENE学习俱乐部
11
——自由IT技术支持中心
LOG_ARCHIVE_DEST_1= 'LOCATION=/arch1/chicago/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=chicago' LOG_ARCHIVE_DEST_2= 'SERVICE=boston VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=boston'
– SEND: enables a database to send redo data to remote destinations. – RECEIVE: enables the standby database to receive redo from another database. – Use the NOSEND and NORECEIVE keywords to disable these settings. DB_NAME=chicago DB_UNIQUE_NAME=chicago LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
Traces redo data transmission
5
——自由IT技术支持中心
LOG_ARCHIVE_CONFIG
• Specify the DG_CONFIG attribute to list the DB_UNIQUE_NAME for the primary database and each standby database in the Data Guard configuration. • Additional LOG_ARCHIVE_CONFIG parameter values:
——ACE GENE学习俱乐部
4
——自由IT技术支持中心
Setting Initialization Parameters on the Primary Database
Parameter Name
ARCHIVE_LAG_TARGET
Controls automatic standby file management
Forces a log switch after the specified number ofACE
——ACE GENE学习俱乐部
SQL> ALTER DATABASE FORCE LOGGING;
• Create a password file. • Set initialization parameters. • Enable archiving.
SQL> SQL> SQL> SQL> SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
——ACE GENE学习俱乐部
6
——自由IT技术支持中心
LOG_ARCHIVE_DEST_n
• Specify at least two LOG_ARCHIVE_DEST_n parameters. • Must contain (at a minimum) one of the following:
– LOCATION – SERVICE
• LOG_ARCHIVE_DEST_STATE_n parameter for each defined destination
LOG_ARCHIVE_DEST_2= 'SERVICE=boston VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=boston' LOG_ARCHIVE_DEST_STATE_2=ENABLE
– ENABLE (default) – DEFER – RESET
• Applies to the primary and standby database
log_archive_dest_3='SERVICE=stby1_path1 ALTERNATE=LOG_ARCHIVE_DEST_4' log_archive_dest_4='SERVICE=stby1_path2' log_archive_dest_state_3=ENABLE
• Default value is operating-system dependent.
LOG_ARCHIVE_FORMAT = %d_%t_%s_%r.arc
——ACE GENE学习俱乐部
LOG_ARCHIVE_CONFIG
LOG_ARCHIVE_DEST_n LOG_ARCHIVE_DEST_STATE_n DB_FILE_NAME_CONVERT LOG_FILE_NAME_CONVERT
Description
Specifies the unique database name for each database in the configuration
——ACE GENE学习俱乐部
2
——自由IT技术支持中心
Steps to Create a Physical Standby Database
1. 2. 3. 4. 5. 6. 7. 8. Prepare the primary database. Back up the primary database. Copy files to the standby system. Set parameters on the physical standby database. Start the standby database. Configure Oracle Net Services. Set parameters on the primary database. Start the transport of redo.
Creating a Physical Standby Database by Using SQL