Oracle实现高可用性的设计 (2)

使用 SQL 应用的滚动版本升级

从 Oracle Database 10.1.0.3 开始以及在其后的更高版本中,在使用 SQL 应用来执行滚动数据库升级时,逻辑备用数据库可以在比主数据库更高的 Oracle 发行版中运行。例如,使用 SQL 应用和逻辑备用数据库,可以将 Oracle DB 软件从补丁程序集版本 10.2.0 n 升级到下一个数据库补丁程序集版本 10.2.0 (n+1)。本幻灯片中的第一个步骤显示了开始升级前的 Data Guard 配置,此时主数据库和逻辑备用数据库都运行相同的 Oracle 软件版本。在第二步中,您停止了 SQL 应用并在逻辑备用数据库上将 Oracle DB 软件升级为版本 n+1。在升级过程中,重做数据将在主系统上进行累积。在第三步中,您重新启动了 SQL 应用,在主系统上累积的重做数据会自动进行传送,并应用到新升级的逻辑备用数据库。Data Guard 配置可以在任意期间运行混合版本。在第四步骤中,您执行了切换。接下来在新的主数据库上激活用户应用程序和服务。在再次启用 SQL 应用之前,需要升级新的备用站点。这是因为新的备用站点不能理解新的重做信息。最后,提高每个数据库的兼容性级别。

注:SQL 应用并不支持所有数据类型。可能会禁止您使用此方法。在此情况下,使用 Oracle Streams 是一种可能的替代方法。

 

数据库高可用性:最佳方法

使用 SPFILE 创建两个或多个控制文件。 设置足够长的 CONTROL_FILE_
RECORD_KEEP_TIME
多路复用生产和备用重做日志
将检查点记录到预警日志中。 使用自动优化
检查点。
启用 ARCHIVELOG 模式并使用快速恢复区。 启用闪回数据库。
启用块检查。 使用自动还原管理。 使用本地管理的表空间。 使用自动段空间管理。
使用可恢复的空间分配。 使用数据库资源管理器。 向远程监听程序注册所有实例。 使用临时表空间。

 

本幻灯片中的表格简要总结了适用于单实例数据库、RAC 数据库和 Data Guard 备用数据库的建议方案。

这些方案会影响系统的性能、可用性和平均恢复时间 (MTTR)。其中某些方案可能会降低性能,但是为了减少或避免中断,这些方案是必不可少的。损坏风险的降低或恢复性能的提高足以抵消微小的性能影响。

注:有关如何设置本幻灯片中所列功能的详细信息,请参阅以下文档:

  • 《Administrator’s Guide》
  • 《Data Guard Concepts and Administration》
  • 《Net Services Administrator’s Guide》

 

每个数据库包含的 ASM 磁盘组数

  • 建议使用两个磁盘组。

利用最多的 LUN。 

备份可以存储在一个
FRA 磁盘组上。

可以对 FRA(或内轨)使用
较低的性能。

  • 例外:

不同的容量或性能特性需要更多
的磁盘组

ILM 存储层不同

 

 

大多数情况下,对于在多个数据库之间共享存储而言,两个磁盘组就足够了。

这样可以最大化用作 ASM 磁盘的逻辑单元数 (LUN),这些逻辑单元可以提供最佳的性能,特别是当这些 LUN 是在磁盘外边缘创建的时。

通过将另一个磁盘组用作公共快速恢复区 (FRA),可以在其中包含数据备份。可以将相应的 LUN 放在磁盘的内边缘,因为这样对性能的要求较低。

此规则有两个值得注意的例外情况:使用具有不同容量或性能特性的磁盘时,以及希望在较低端的磁盘上归档数据以用于 Information Lifecycle Management (ILM) 时。

 

合并数据库存储

  • 跨多个数据库共享存储:

RAC 和单实例数据库可以使用同一个 ASM 实例。

  • 好处:

简化了管理并使其更加集中

提高了存储使用率

改善了性能

 

 

在 Oracle Database 10g 发行版 2 中,Oracle Clusterware 不要求安装 Oracle Real Application Clusters 许可证。ASM 和单实例 Oracle Database 10g 中包含了 Oracle Clusterware,以对 RAC 和单实例 Oracle DB 使用共享集群存储池提供支持。

这样,您可以通过消除浪费的、过度预配的存储来优化存储使用率。本幻灯片已对此功能进行了说明,即不必对不同的数据库使用不同的磁盘池,可以将所有磁盘池合并在单个池中供所有数据库共享。

通过上述操作,可以增加 LUN 的大小、提供更高的存储使用率以及更好的性能,从而减少了要管理的 LUN 数。

注:不能通过 Oracle Database 10g 发行版 1 中的同一 ASM 实例管理 RAC 和单实例数据库。

 

可以获得最佳可用性的 RAID 配置


  1. ASM
    镜像
    B. 硬件 RAID 1(镜像)
    C. 硬件 RAID 5(奇偶校验保护)
    D. ASM 镜像和硬件 RAID   X

 

    答: 

根据业务需求和预算(成本、可用性、性能和使用率)而定

ASM 利用硬件 RAID。

 

如幻灯片中所示,可以通过多种方式提高可用性。

可以使用 ASM 镜像功能、硬件 RAID 1(廉价磁盘冗余阵列,一种硬件镜像技术)或硬件 RAID 5。可能性最低的答案是同时使用 ASM 镜像和硬件镜像,但是毫无疑问不建议这样做。建议在使用硬件镜像技术避免不必要的开销时,使用外部冗余磁盘组。

因此,根据业务需求和预算,在 A、B 和 C 中做出选择。

RAID 1 的性能最好,但是需要两倍的存储容量。RAID 5 是一种更为经济的解决方案,但是对于写入操作比较集中的工作量而言,性能实质上会有所下降。

 

是使用 RAID 1 还是 RAID 5

RAID 1(镜像)

  • Oracle 推荐使用
  • 要求最为苛刻的应用程序

优点:

  • 最佳的冗余性
  • 最佳的性能
  • 恢复开销很低

缺点:

  • 要求的容量较大

 

 

RAID 5(奇偶校验)

  • DSS 和适中的 OLTP

优点:

  • 要求的容量较小

缺点:

  • 冗余性较差
  • 性能较差
  • 恢复开销很高

 

 

RAID 1 是一种镜像技术。镜像需要使用所有发布到给定磁盘的写入操作,并将写入操作复制到另一个磁盘。通过这种方式,如果第一个磁盘发生故障,则第二个磁盘(即镜像)可以接管过来,而不会丢失任何数据。

RAID-5 的设计目标是用最少的冗余硬件量提供可靠的高性能磁盘阵列。RAID 5 的基础是跨多个驱动器使用奇偶校验保护,目的是为磁盘故障提供保护。RAID-5 配置其实是一种条带化配置(类似于 RAID 0),添加了一个附加磁盘以满足奇偶校验信息所需的附加存储。数据以这种方式跨多个驱动器进行条带化后,RAID 5 的读取性能就与 RAID 0 的性能差不多了。另一方面,RAID-5 写入操作由于性能太差,所以几乎不可能使用。

本幻灯片中列出了使用两种技术的优缺点,虽然 Oracle 建议使用 RAID 1,但需要考虑到必须使用加倍的磁盘数才能存储相同的数据量这一因素。一般来说,如果存储成本非常重要,性能并不是主要目标,并且应用程序主要进行读取操作(如数据仓库应用程序),则应部署 RAID 5。快速恢复区磁盘组就适合使用 RAID 5,因为它对存储容量的要求最高,并且主要用于处理连续 I/O。

注:可以使用 ORION 工具 (http://www.oracle.com/technology/software/index.html#util) 来测试并确定存储阵列对于您的应用程序的优缺点。

 

是否应使用 ASM 镜像保护

  • 是低成本存储的最佳选择
  • 启用了扩展的集群解决方案
  • 无硬件镜像

大致说来,应尽可能利用存储阵列硬件 RAID-1 镜像保护来消除服务器的镜像开销。请使用没有硬件 RAID 功能的 ASM 镜像。

但是,大多数高级技术附件 (ATA) 存储技术中的硬件 RAID 1 效率都很低,因而更加降低了阵列的性能。事实证明,在 ATA 阵列中使用 ASM 冗余时,性能要好得多。

因为只要希望实现扩展的集群解决方案,存储成本就会非常迅速地增加,所以对于低成本存储解决方案,ASM 镜像应作为硬件镜像的一种备选方案。

注:有关 Oracle 弹性低成本存储计划的详细信息,请访问以下网站:http://www.oracle.com/technology/deploy/availability/htdocs/lowcoststorage.html。

 

最合适的条带类型


  1. ASM 条带(无 RAID 0)
    B. RAID 0
    ASM 条带
    X C. 使用 LVM
    X D.
    无条带

 

    答:  A B

ASM 条带和 RAID 条带是互补的。

 

如上所示,可以仅使用 ASM 条带,也可以将 ASM 条带与 RAID 0 组合使用。

通过 RAID 0,对多个磁盘进行配置以将其组合成一个磁盘集或一个磁盘库,并且来自任何一个数据文件的数据将跨库中的所有磁盘进行分布或条带化。

将 ASM 条带与 RAID 条带组合使用称为“条带上的条带”。这种组合也能提供较好的性能。

但是,不再需要将逻辑卷管理器 (LVM) 用于数据库文件,也不建议完全不使用任何条带。

 

ASM 条带

优点:

  • 针对数据和 FRA 均匀分配驱动器
  • 带宽更宽
  • 允许较小的增量增长 (73 GB)
  • 无驱动器争用

缺点:

不能在所有磁盘之间达到
很好的平衡

LUN 大小限制被为磁盘大小

在此上所示的示例中,您希望使用相应的 2 TB 快速恢复区存储 1 TB 的数据库,并使用 RAID 1 镜像每个磁盘。这样,您共拥有 8 个由 12 个磁盘组成的阵列,其中每个磁盘为 73 GB。不使用 ASM 镜像和硬件 RAID 0。

此外,每个 ASM 磁盘都由一个 73 GB 的完整 LUN 表示。这意味着将为数据磁盘组 (DG) 分配 16 个 LUN,其中每个 LUN 均为 73 GB。

另一方面,将为快速恢复区磁盘组分配 32 个 LUN,其中每个 LUN 均为 73 GB。

此配置使您可以为数据和备份均匀地分配磁盘,从而实现很好的性能并可以按较小的增量块管理存储。

但是,限制池中所用磁盘的数目并不能在所有磁盘之间很好地平衡数据。此外,在存储级别要管理许多 LUN。

 

硬件 RAID 的条带化 LUN

优点:

  • 对于数据 DG 是速度最快的区域
  • 数据分配达到平衡
  • 要管理的 LUN 较少,同时最大化了主轴数

缺点:

较大的增量增长

数据和 FRA“争用”

 

 

在上所示的示例中,您希望使用相应的 2 TB 快速恢复区存储 1 TB 的数据库,并使用 RAID 0+1(硬件条带和镜像的组合)为每个磁盘创建镜像并进行条带化。这样,您共拥有 8 个由 12 个磁盘组成的阵列,其中每个磁盘为 73 GB。不使用 ASM 镜像。

这里可以定义更大的 LUN,并且没有将其限制为某个磁盘的大小。这样一来,就可以将数据 LUN 放在磁盘中速度最快的区域,将备份 LUN 放在速度较慢的部分。通过上述操作,可以更好地将数据分布到所有磁盘上,并会显著降低要管理的 LUN 数。

但是,与以前的配置相比,必须在大得多的块中处理存储。

注:所选的硬件条带大小也非常重要,因为应尽可能使用 1 MB 的调整量,以便与 ASM AU 保持同步。因此,选择是 2 的幂的条带大小(128 KB 或 256 KB)要好于选择奇数的条带大小。存储供应商一般不会提供很多灵活的选项,这取决于其存储阵列 RAID 技术,如果不进行周密的考虑,则可能会出现不必要的 I/O 瓶颈。

 

硬件 RAID 的条带化 LUN HA

优点:

  • 对于数据 DG 是速度最快的区域
  • 数据分配达到平衡
  • 要管理的 LUN 更少
  • 可用性更高

缺点:

较大的增量增长

可能会浪费空间

 

 

在此上所示的示例中,您希望使用相应的 1.6 TB 快速恢复区存储 1 TB 的数据库,并使用 RAID 0+1(硬件条带和镜像的组合)为每个磁盘创建镜像并进行条带化。这样,您共拥有 8 个由 12 个磁盘组成的阵列,其中每个磁盘为 73 GB。不使用 ASM 镜像。

与前一个幻灯片相比,这次为数据磁盘组和快速恢复区磁盘组使用了更大的 LUN。但是,提供的解决方案比前面的体系结构具有更高的可用性,因为已将备份中的数据分成不同的阵列和控制器,以降低在一个阵列出现故障时发生停机的风险。

通过上述操作,虽然可以很好地将数据分布到各磁盘上,但不如前面的配置好。与第一种情况相比,要管理的 LUN 数也显著减少。

但是,浪费的空间可能会多于前一种配置。这里使用的阵列大小和数目与前面示例中的相同。

 

简单的准则和最佳方案

  • 尽可能使用外部 RAID 保护。
  • 创建 LUN 时应使用:

磁盘驱动器的外半区,以实现最佳性能

较小的磁盘,较高的 rpm(如 73 GB/15k rpm)

  • 使用具有相同性能特性的 LUN。
  • 使用具有相同容量的 LUN。
  • 最大化磁盘组中的主轴数。

Oracle Database 10g ASM 将完成的其余工作!

 

请使用 Oracle Database 10g ASM 来管理卷和文件,以在磁盘之间均衡工作量,从而消除热点。在配置 ASM 磁盘组时,请使用下列简单的准则和最佳方法:

  • 尽可能使用外部 RAID 保护。
  • 创建 LUN 时应使用:

-磁盘驱动器的外半区,以实现最佳性能

-较小的磁盘,较高的 rpm(如 73 GB/15k rpm)。主轴(盘片)速度直接影响定位时间和数据传输,因此非常重要。这意味着主轴速度较快的驱动器会具有较好的性能,而与驱动器是用于处理许多小型的随机访问,还是用于从磁盘中流式传输大型连续的块无关。磁盘中盘片的堆栈始终以同样速度旋转。驱动器磁头位于磁盘中心附近,但是从表面读取数据,此处表面的传输速度比外边缘的表面慢很多。

  • 最大化磁盘组中的主轴数。
  • 为 ASM 磁盘组预配的 LUN 应具有相同的存储性能和可用性特性。配置混合速度的驱动器时,默认情况下将采用最低的共同标准。
  • ASM 数据分配策略是基于容量制定的。因此,为 ASM 提供的 LUN 应对每个磁盘组使用相同的容量,以避免不平衡并消除热点。

 

扩展的 RAC:概览

  • 充分利用资源,而与其位置无关

 

  • 从站点故障中快速进行恢复

 

通常,各 RAC 数据库共享一组存储,并位于同一数据中心内的服务器上。

通过扩展的 RAC,可以使用磁盘镜像和密集波长多路分复用 (DWDM) 设备扩展集群的应用范围。此配置允许相距最远达 100 公里的两个数据中心共享同一个 RAC 数据库,此数据库包含多个跨两个站点分布的 RAC 实例。

如该幻灯片所示,此 RAC 拓扑结构很有趣,因为客户机的工作跨所有节点自动进行分配(与其位置无关)。如果一个站点出现故障,则客户机的工作将继续在其余的站点上得以执行。扩展的 RAC 可能会遇到的故障类型主要是一些由于有限的地理性灾难而导致的整个数据中心故障。火灾、洪水和站点电源故障仅是可以导致整个数据中心故障的有限地理性灾难的几个示例。

注:扩展的 RAC 不使用常规 RAC 安装之外的特殊软件。

 

扩展的 RAC 连接性

  • 如果距离超过十公里,则需要使用黑光纤。
  • 如果距离较远,则需要设置缓存信用点。

要将 RAC 集群扩展到另一个与数据中心相距超过十公里的站点,则要通过黑光纤使用 DWDM 才能获得较好的性能。

DWDM 技术将使用多种激光,并通过一根光纤同时传输多种波长的光。DWDM 显著增加了一根光缆的现有基础结构。DWDM 系统可以支持 150 多种波长,每种最多可以传输
10 Gbps 的数据。这类系统可以使用比人发还细的一股光纤提供大于每秒 1 TB 的数据传输。

如该幻灯片所示,各个站点应使用黑光纤将自己的 DWDM 设备连接在一起。两个站点之间的所有通信量都使用 DWDM 在黑光纤上进行发送。其中包括镜像的磁盘写入、网络和脉动通信量以及内存到内存的数据转移。图中还列出了每个站点上的磁盘集。每个站点都维护 RAC 数据库的一个副本。

注意,应根据站点的距离调整并确定缓存信用点的最小值,以维持最大链接带宽,这一点很重要。缓存信用点机制由光纤通道标准进行定义,此标准还确定可以一次性发送的最大数据量。

注:黑光纤是光纤电缆或电线,主要由电信提供商出售。

 

扩展的 RAC 磁盘镜像

  • 每个位置都需要使用数据的副本
  • 有两个选项:

基于主机的镜像

基于远程阵列的镜像

 

 

虽然只有一个 RAC 数据库,但每个数据中心都有自己的、经过同步镜像的存储集,镜像时或者使用可识别集群的、基于主机的逻辑卷管理器 (LVM) 解决方案(如 SLVM with MirrorDiskUX),或者使用基于阵列的镜像解决方案(如 EMC SRDF)。

通过基于主机的镜像(如幻灯片左侧所示),各磁盘显示为一个组,而且所有 I/O 都被发送到两组磁盘。此解决方案需要紧密集成的集群件和 LVM,ASM 是建议的解决方案。

通过基于阵列的镜像(如幻灯片右侧所示),所有 I/O 都被发送到一个站点,然后再镜像到另一个站点。事实上,此解决方案类似于主站点/辅助站点设置。如果主站点发生故障,则所有对主磁盘的访问都将丢失。在切换到辅助站点之前,可能会发生中断。

注:使用扩展的 RAC,设计集群的方式很关键,必须确保在站点出现故障后集群能够获得仲裁。有关详细信息,请参阅 Oracle 技术网站点。

 

使用扩展的 RAC 获得仲裁

 

在任何时候,节点必须能访问一半以上的表决磁盘;否则,该节点会被从集群中逐出。扩展集群一般只通过两个存储系统实施,每个站点一个。也就是说,对整个集群而言,包含大部分表决磁盘的站点是潜在的单点故障。为阻止这种潜在的中断,Oracle Clusterware 支持第三个表决磁盘,该磁盘位于网络某处一个装载了廉价低端的标准 NFS 的设备上。因此,建议将此第三个 NFS 表决盘置于对两个站点都可见的专用服务器上。本幻灯片已对此情况进行了说明。其目标是,在发生站点故障时,每个站点都能彼此独立运行。

注:有关第三个表决磁盘的 NFS 配置的更多信息,请参阅 Oracle 技术网站点。

 

ASM 首选镜像读取:概览

 

在 Oracle Database 10g 中配置 ASM 故障组时,ASM 将始终读取镜像区的主副本。让节点从最靠近该节点的故障组区(即使是辅助区)读取数据效率可能更高些。在扩展的集群配置(节点跨多个站点分布)中,这种情况尤其明显;在这种情况下,从区的本地副本读取数据可以提高性能。

使用 Oracle Database 11g 时,通过使用新的 ASM_PREFERRED_READ_FAILURE_GROUPS 初始化参数指定首选镜像读取名称列表来配置首选镜像读取,可以做到这一点。这些故障组中的磁盘将成为首选读取磁盘。这样一来,每个节点都可以从其本地磁盘读取数据了。这样不但可以提高效率和性能,还可以降低网络通信量。该参数的设置取决于具体的实例。

 

ASM 首选镜像读取:设置

设置

ASM_PREFERRED_READ_FAILURE_GROUPS=DATA.SITEA 

在第一个实例上

ASM_PREFERRED_READ_FAILURE_GROUPS=DATA.SITEB

在第二个实例上

监视

SELECT preferred_read FROM v$asm_disk;

SELECT * FROM v$asm_disk_iostat;

 

要配置此功能,请设置新的 ASM_PREFERRED_READ_FAILURE_GROUPS 初始化参数。此参数是一个多值参数,应包含一个带有逗号分隔的故障组名称列表的字符串。指定的每个故障组名称应以其磁盘组名称和一个“.”字符为前缀。此参数是动态参数,可以随时使用 ALTER SYSTEM 命令进行修改。幻灯片中显示了一个示例。但是,该初始化参数仅对 ASM 实例有效。使用扩展集群时,该参数中指定的故障组只应包含对应实例的本地磁盘。

新的列 PREFERRED_READ 已添加到 V$ASM_DISK 视图中。使用单字符格式。如果磁盘所属的磁盘组属于首选读取故障组,则此列的值为 Y。

要确定 ASM 首选读取故障组的特定性能问题,请使用 V$ASM_DISK_IOSTAT 视图。此视图将显示每台 ASM 客户机的磁盘输入/输出 (I/O) 统计信息。如果从一个数据库实例中查询此视图,则仅显示此实例的行。

 

Oracle Enterprise Manager ASM 配置页

可以使用 Oracle Enterprise Manager 来指定一组磁盘作为每个 ASM 实例的首选磁盘。首选读取属性取决于具体的实例。在 Oracle Database 11g 中,配置页上增加了“Preferred Read Failure Groups(首选读取故障组)”字段 (asm_preferred_read_failure_group)。

此参数仅在装载磁盘组之前或者创建磁盘组时才有效,并且仅适用于新打开的文件或新加载的文件区映射。

 

ASM 首选镜像读取:最佳方法

 

在实践中,扩展集群中只有数量有限的有效磁盘组配置。有效磁盘组配置会同时考虑磁盘组在扩展集群中的性能和可用性。下面是一些可能的示例:

对于一个包含两个站点的扩展集群,正常的冗余磁盘组应只有两个故障组;一个站点的所有本地磁盘都应属于相同的故障组。此外,每个实例只能指定一个故障组作为首选读取故障组。如果有两个以上的故障组,则 ASM 不会对一个跨两个站点的虚拟区进行镜像。而且,如果具有两个以上故障组的站点关闭,则也会使磁盘组关闭。如果要创建的磁盘组是一个高冗余磁盘组,则应在每个站点及其本地磁盘上最多创建两个故障组,并将两个本地故障组都指定为本地实例的首选读取故障组。

对于包含三个站点的扩展集群,应使用含三个故障组的高冗余磁盘组。通过这种方式,ASM 可以保证每个虚拟区对于每个站点都有一个本地镜像副本,并且三个站点上的磁盘组都受到保护以避免重大灾难。

 

其它 Data Guard 优点

  • 更强的灾难保护

更远的距离

更多的保护以防止损坏 

  • 更适合于计划维护

完全滚动升级

  • 对于远距离,性能更稳定

进行异步操作的选项 

  • 如果无法承担 DWDM 网络的成本,Data Guard 在廉价的标准网络上也能工作。

Data Guard 提供更强的灾难保护:

  • 距离可以超过 100 公里,而且对性能无影响
  • 因为使用了单独的数据库,所以提供了更多的保护以防止损坏
  • 可选的延迟,以防止用户错误

因为支持完全滚动升级,Data Guard 还提供了更好的计划维护功能。

此外,如果无法承担 DWDM 网络的成本,Data Guard 在廉价的标准网络上也能工作。

 

使用测试环境

  • 更改是造成停机的最常见原因。
  • 在更改生产环境之前,请在单独的测试集群上对更改进行测试。

 

在生产环境中更改是导致停机的最可能的原因。使用适当的测试环境,可以发现可导致生产环境停机的 90% 的更改,这对于快速测试和解决生产中的问题非常重要。

如果生产环境是 RAC,则测试环境应是一个包含所有相同软件组件和版本的单独 RAC 集群。

如果没有测试集群,生产环境就不会具有较高的可用性。

注:不使用测试环境是 Oracle 技术支持服务发现的最常见错误之一。

 

小结

 

在本课中,您应该已经学会:

  • 在环境中设计一个可用性最高的体系结构
  • 确定环境的最佳 RAC Data Guard 拓扑结构
  • RAC 环境中配置 Data Guard 代理配置文件
  • 确定要使用的最佳 ASM 配置
  • 以滚动方式修补您的 RAC 系统


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *