以下问题是基于 Oracle database 11gR2 设立的,请根据联机文档给出答案。
1.什么是 DG 的 Primary Database 和 Standby Database?
答:Primary Database 即主库,是为业务系统提供服务的生产数据库,能够产生修改性操作之后将所做的变更传送到一个或多个备库。每一个备库只能关联到唯一的主库,但是主库支持多个备库。DG broker 监视器进程 DMON 维护主库的二进制设置文件,并且确保 每次发生设置更改时,在每个备库上都保存有设置文件的最新副本。
Standby Database 即备库,是生产库的独立副本,在高可用环境下用于数据灾难保护。在同一个 Data Guard 配置中最多支持创建 30 个备库。所有的备库都是以来重做数据与主库保持同步,在 Oracle11gR2 版本中分为物理备库、逻辑备库和快照备库三种类型。
2. Physical 和 Logical 备库模式下,在实现主库与备库同步时在技术上的区别在哪?
答:物理备库和逻辑备库都是依赖主库的重做数据进行同步,区别在于:
物理备库始终处于 Mount 状态(在 Oracle11gR2 版本中允许以只读状态打开),在接收到主库生成的重做数据后,以介质恢复的方式实现同步,称之为重做应用;
逻辑备库则处于打开状态,在接收到主库生成的重做数据后,先将重做数据转换成 SQL 语句,然后在备库中执行转换好的 SQL 语句来实现与主库的同步,称之为 SQL 应用。
因此,物理备库在物理结构和逻辑结构上都与主库保持一致,而逻辑备库只需要在逻辑结构上与主库保持一致。
3.对于 DG 的 Maximum Protection, Maximum Performance, Maximum Availability
三种保护模式请给出详细的解释。
答:Maximum Protection 即最大保护模式,它能够保护数据绝对的安全,但是却不能保证用户事务的不间断。它要求事务在提交之前,不仅写入本地的联机重做日志组,同时也写入备库的备用重做日志组,
并且确保重做数据在至少一个备库中可用,之后才会提交该事务。所以当备库因为某些原因不可用时,主库将会被关闭;
Maximum Performance 即最大性能模式,是创建备库时默认的保护模式。它能够在不影响主库性能的前提下提供最大程度的数据保护,但是并不能保证数据的绝对安全。在这种模式下,事务可以随时提交,主库的重做数据至少需要写入到一个备库当中,但可以是不同步的。
Maximum Availability 即最大可用模式,它能够最大程度保证主库的可用性,同时提供最大程度的数据保护。在主库备库都正常的时候,数据库处于类似最大保护模式的工作状态;
当备库不可用的时候,则自动转为最大性能模式。一旦备库恢复,又重新转换到最初的工作状
态。
4.请说明物理备库的的完整创建过程。
启用强制日志 force_logging;
配置备用重做日志组,数目要比联机重做日志组多 1 组;
配置 log_archive_dest_n 参数,确定归档存放的目标位置;
配置 log_archive_config 参数,确定传送和接收重做数据的数据库名称;
开启主库的 archivelog 归档模式;
配置快速恢复区的大小 db_recovery_file_dest_size;
使用 RMAN 连接到主库,创建一个包含归档日志的完全备份;
在主库上创建备库的 tnsname;
在备库上创建静态监听,完成后重启监听程序;
将主库的口令文件复制到备库并重新命名,创建备库的 pfile;
在备库的/u01/app/admin 下创建备库目录,并且创建三个子目录 adump、dpdump和 pfile,用于数据导入;
使用 pfile 将备库实例启动到 nomount 阶段;
使用 RMAN 连接到目标数据库即主库,以及辅助数据库即备库;
使用预先创建的脚本复制数据库;
退出 RMAN,以 sysdba 权限连接到主库的 SQL*Plus 并执行日志切换;
在备库的/etc/oratab 文件中添加备库的 Oracle_Home 路径;
在备库上以 sysdba 权限连接到 SQL*Plus,启动重做应用。
5.什么是 Data Guard Broker?请对 Data Guard Broker 的配置过程加以详细说明。
答:DG Broker 是一个分布式管理框架,它能够将主库和备库按照一定的逻辑组织起来并进行集中管理,包括创建、维护和监控 Data Guard 等任务。管理 Broker 设置可以使用 EM 企业管理器或者 DGMGRL 命令行。配置 Broker 有以下几步:
一、在主库修改 dg_broker_start 参数为 true 启用 Broker;
二、在主库上创建 DGMGRL 专用的静态监听,完成之后重启监听程序;
三、在备库上重复步骤一和步骤二;
四、在备库上创建主库的 tnsname;
五、设置备库中的 local_listener 参数,指定备库的监听名;
六、使用 DGMGRL 连接到主库,创建新的 DG 配置,包括 Broker 配置名称,主库名称和主库的 tnsname;
七、添加备库信息到 Broker 配置中,包括备库名称和备库的 tnsname;
八、启用并验证配置。
6.在进行最大性能模式到最大可用模式、最大保护模式的转换时,都需要配置哪些参数?
在进行三种保护模式的转换时,需要配置日志传输模式参数 LogXptMode 和保护模式参数
Protection Mode 两个参数。分别如下:
最大性能模式:LogXptMode=ASYNC Protection Mode=MaxPerformance
最大可用模式:LogXptMode=SYNC Protection Mode=MaxAvailability
最大保护模式:LogXptMode=SYNC Protection Mode=MaxProtection
7.什么是 Snapshot Standby? 请对 Snapshot Standby 的转换过程进行解释?
Snapshot Standby 即快照备库,它是由物理备库转换而成的可更新的备库,通常用于测试任务。快照备库能够接收主库传送的重做数据,但是并不应用这些重做数据,因此在这个阶段,快照备库与主库是不一致的。
但是当快照备库重新转换回物理备库的时候,所有接收到的重做数据都会被应用,这时备库将与主库重新保持同步。物理备库与快照备库间的转换均可在 DG Broker 下完成。
物理备库转快照备库 convert database ‘db_name’ to snapshot standby;
快照备库转物理备库 convert database ‘db_name’ to physical standby;
8.什么是 Data Guard 的实时查询?
答:当 Oracle Active Data Guard 选项被启用的时候,物理备库在以只读权限打开的时候,也能够接收主库传送的重做数据并应用重做,
保持备库与主库的同步,并且接受来自非管理员用户的一般查询事务,这项功能称之为实时查询。
9.请对 Fast-Start Failover 的概念和用途给出解释,并说明它所适用的保护模式?
当 Fast-Start Failover 启用时,一旦主库发生故障,DG Broker 能够自动判断是否需要启动故障转移。如果需要,则快速可靠的将特定的备库切换成主库,而不需要任何人工干预。
它只适用于最大性能模式和最大可用模式,一旦启用该功能,则不可以中途切换保护模式。在最大可用模式下发生的切换可以保证数据不丢失,而在最大性能模式下的发生的切换有可能导致数据丢失。
10. 请说明配置 Fast-Start Failover 的完整过程。
一、分别设置 DG 中各个数据库的 FastStartFailoverTarget 参数,即在发生故障时需要转移到的目标数据库;
二、分别设置 DG 中各个数据库的网络传输模式参数 LogXptMode,最大可用模式下为 SYNC,最大性能模式下为 ASYNC;
三、设置触发 FastStartFailover 的阈值 FastStartFailoverThreshold,如果在最大性能模式,还应该设置延迟重做应用的值 FastStartFailoverLagLimit;
四、启动 FastStartFailover,此时还可以启动 Observer 观察运行状态。
11. 请说明 Logical Standby 的完整创建过程。
一、为主库创建物理备库,并暂停物理备库应用重做;
二、修改主库的 log_archive_dest_n 参数,添加主库的 DB_UNIQUE_NAME;
三、生成主库的重做数据字典 dbms_logstdby.build
四、执行命令转换物理备库为逻辑备库;
五、复制主库的口令文件到逻辑备库,并重新命名;
六、修改逻辑备库 log_archive_dest_n 参数中的 DB_UNIQUE_NAME;
七、以 resetlogs 方式打开逻辑备库,并启动重做应用;
八、更新逻辑备库在 Broker 中的设置,并启用逻辑备库。