一、摘要
Oracle DataGuard是Oracle中包含的数据同步功能。 基本原理是通过将日志文件从原始数据库传输到目标数据库并应用于目标数据库,使目标数据库与源数据库同步。 这是一种数据库级的高可用性方案。
DataGuard为Oracle数据库提供冗馀灾难、数据保护、回切等,以实现数据库快速切换和灾难性恢复。
在保证生产数据库的“事务一致性”的情况下,将使用生产数据库的物理完整备份创建登台库,然后登台库将使用从生产库发送的归档日志或重做条目自动创建
数据保全数据同步技术具有以下优点:
1. Oracle数据库本身的内置功能与每个Oracle新版本的新功能完全兼容,不需要额外费用。
2 .配置管理简单,不需要熟悉其他第三方软件产品。
3 .物理Standby数据库支持所有类型的数据对象和数据类型。
4 .逻辑Standby数据库已打开,可以在保持数据同步的同时执行查询等操作。
5 .最大保护模式可以确保零数据丢失。
二、架构
Oracle DataGuard由一个主数据库生产数据库)和一个或多个标准by数据库最多9个)组成。 构成Data Guard的数据库通过Oracle Net连接,可能可以分布在不同的地区。
只要可以在库之间进行通信,则物理位置没有限制,操作系统没有限制。
1 .主数据库
DataGuard包含大多数APP应用程序都可以访问的主数据库。 此数据库可以是单实例数据库或RAC。
2 .标准by数据库
标准by数据库是主数据库的复制。 最多可以在同一Data Guard上创建9个标准by数据库。 创建完成后,Data Guard将应用重做主数据库以自动维护每个standby数据库。
Standby数据库可以是单实例数据库或RAC结构。
3 .结构图
三、Standby数据库类型
标准by数据库通常分为两类:逻辑标准by和物理标准by。
1 .逻辑标准
答:逻辑standby接收主数据库的重做日志,将其转换为sql语句,然后在standby数据库上执行sql语句以实现同步。
b .与主库共享相同的模式定义
c .通过应用c.SQLSQLapply )保持与主库的一致性
d .从主库接收日志后,逻辑备用数据库通过logmnr将日志转换为sql。 在逻辑备用库中的表中,表可以同时用于恢复和报告查询功能。
2 .物理标准
A .物理standby通过接收并应用primary数据库的重做日志以媒体恢复方式实现同步,不仅文件的物理结构相同,磁盘上的块的存储位置也相同
b .基于块级别和主数据库匹配
c .在APP应用程序日志redo apply )中与主库保持同步
还可以在装载基础阶段恢复APP应用程序日志,并提供只读报告查询;
四、备份库状态
1 .物理备用库
1) .管理恢复状态
在此模式下,log transport service会将日志归档到资料档案库,而log apply service会自动应用这些日志。 未装载数据库,不允许进行任何读取。
2) .只读状态
如果要创建备用磁盘作为报告功能,请在备用环境中以只读格式打开数据库。 在备用库log app上
ly service将不能够应用归档日志到备库,但是主库的log transport service可以继续传递归档日志到备库。
我们可以非产轻松的在上述两种运行下进程切换,一般情况下我们会在如下的场景下进程切换:
a. 物理备库用于报表模式
b. 为了灾难的保护,检查数据是否正常的传递到了备库
2. 逻辑备库
Open read write mode
该种模式,备库仍然可以不断的应用归档日志,但是该备库同时可以提供报表查询功能。
当log apply service正在更新一张表时,该表仍然可以查询,但是在该表上无法做任何的DML操作。如果其他模式下的对象没有被log apply service所维护,那么我们可以更新该模式下的那些对象。
五、服务
1. 重做传输服务Redo Transport Services)
控制redo数据的传输到一个或多个归档目的地。
2. 日志应用服务Log Apply Services)
应用redo数据到standby数据库,以保持与primary数据库的事务一致。redo数据即可以从standby数据库的归档文件读取,也可直接应用备用日志文件读取。
3. 角色转换服务Role Transitions)
DataGuard中有两种角色:primary和standby。角色转换就是让数据库在这两个角色中切换,
4. 切换分两种:switchover和failover
1). switchover:
a. 转换primary数据库与standby数据库。
b. switchover可以确保不会丢失数据。
c. 计划中角色转换,主要用于操作系统和硬件的维护,备库切换成主库,而主库切换成备库,在切换完成后,这个过程没有任何的数据丢失和损失。
2). failover:
a. 当primary数据库出现故障并且不能被及时恢复时,会调用failover将一个standby数据库转换为新的primary数据库。
b. 在最大保护模式或最高可用性模式下,failover可以保证不会丢失数据。
c. 非计划中的角色转换,在紧急情况下使用,根据数据的保护模式的不同,只有少量的或者是很少的数据损失
六、保护模式
1. 最大保护
这种模式是默认的数据保护模式,在不影响源数据库性能的条件下提供尽可能高的数据保护等级。
在该种模式下,一旦日志数据写到源数据库的联机日志文件,事务即可提交,不必等待日志写到目标数据库,如果网络带宽充足,该种模式可提供类似于最大可用模式的数据保护等级。
2. 最大可用性
这种模式和”最大保护”基本上差不多。正常情况下,主备库之间是同步的。
当网络或者备库出现问题时,不会影响到主库的当机,主库会自动转换库”最大性能”模式,等待备库可用时,将归档传输到备库做恢复。
3. 最大性能
这种模式保证主库性能最大化,主备库之间数据是异步传输的。
即,主备日志归档以后才会传输到备用库,在备库上使用归档日志文件做恢复操作。
七、安装条件
运行DataGuard需要具备以下几个条件:
1. 在主库和从库的所有机器上必须安装同一个版本的Oracle企业版。
2. 主库必须运行在归档模式下。
3. 主库和从库的操作系统必须一样(允许版本不同),从库可以使用与主库不同的目录结构。
4. 主从库硬件系统的体系结构必须相同。比如:主库运行在64位的Sun Sparc系统上,如果从库是32位的Linux Intel系统就不允许。主从库硬件的配置可以不同,比如:CPU数量、内存大小、存储配置等。
Thanks and Regards