OceanStor F面向Oracle数据库OLTP最佳实践_第1页
OceanStor F面向Oracle数据库OLTP最佳实践_第2页
OceanStor F面向Oracle数据库OLTP最佳实践_第3页
OceanStor F面向Oracle数据库OLTP最佳实践_第4页
OceanStor F面向Oracle数据库OLTP最佳实践_第5页
已阅读5页,还剩35页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华为 OceanStor F 面向 Oracle 数据库OLTP 场景的最佳实践此文档针对华为 OceanStor F V5 存储配套 Oracle 数据库进行阐述。聚焦如何高效利用 OceanStor F V5 存储进行 Oracle 数据库业务部署,并针对企业用户场景下的 Oracle 的在线联机事务处理(OLTP)业务, 进行了一系列的验证,通过参考该最佳实践,可以获得更好的业务部署效率和业务运营质量,有效保障Oracle 数据库的性能和可用性。目录 HYPERLINK l _bookmark0 概述4 HYPERLINK l _bookmark1 内容简介4 HYPERLINK l _

2、bookmark2 写作目的4 HYPERLINK l _bookmark3 面向读者4 HYPERLINK l _bookmark4 用户收益5 HYPERLINK l _bookmark5 关键组件5 HYPERLINK l _bookmark6 业务场景5 HYPERLINK l _bookmark7 负载模型5 HYPERLINK l _bookmark8 华为技术与产品6 HYPERLINK l _bookmark9 OceanStor F V5 产品介绍6 HYPERLINK l _bookmark10 OceanStor UltraPath 多路径软件7 HYPERLINK l

3、_bookmark11 Oracle 数据库介绍8 HYPERLINK l _bookmark12 Oracle RAC and ASM8 HYPERLINK l _bookmark13 Oracle 体系架构10 HYPERLINK l _bookmark14 OLTP 业务类型12 HYPERLINK l _bookmark15 Oracle 规划配置最佳实践13 HYPERLINK l _bookmark16 SAN 组网13 HYPERLINK l _bookmark17 4.1.2 划分 Zone 或 vLAN14 HYPERLINK l _bookmark18 存储配置14 HYP

4、ERLINK l _bookmark19 硬盘域14 HYPERLINK l _bookmark20 存储池15 HYPERLINK l _bookmark21 多租户15 HYPERLINK l _bookmark22 LUN16 HYPERLINK l _bookmark23 映射视图16 HYPERLINK l _bookmark24 主机配置17 HYPERLINK l _bookmark25 队列深度17 HYPERLINK l _bookmark26 I/O 对齐17 HYPERLINK l _bookmark27 块设备调度算法18 HYPERLINK l _bookmark28

5、 多路径设置18 HYPERLINK l _bookmark29 绑定盘符19 HYPERLINK l _bookmark30 配置 HugePage19 HYPERLINK l _bookmark31 数据库配置20 HYPERLINK l _bookmark32 数据库参数20 HYPERLINK l _bookmark33 ASM 磁盘组21 HYPERLINK l _bookmark34 在线日志21 HYPERLINK l _bookmark35 UNDO 表空间调整22 HYPERLINK l _bookmark36 临时表空间调整22 HYPERLINK l _bookmark3

6、7 归档和备份22 HYPERLINK l _bookmark38 Oracle 规划配置示例23 HYPERLINK l _bookmark39 方案架构23 HYPERLINK l _bookmark40 组网图23 HYPERLINK l _bookmark41 方案组件24 HYPERLINK l _bookmark42 存储配置25 HYPERLINK l _bookmark43 主机配置26 HYPERLINK l _bookmark44 数据库配置26 HYPERLINK l _bookmark45 Oracle 性能测试方案28 HYPERLINK l _bookmark46

7、测试策略28 HYPERLINK l _bookmark47 测试过程29 HYPERLINK l _bookmark48 加载测试数据29 HYPERLINK l _bookmark49 测试步骤29 HYPERLINK l _bookmark50 测试结果34 HYPERLINK l _bookmark51 Oracle 场景重删压缩特性35 HYPERLINK l _bookmark52 业务场景35 HYPERLINK l _bookmark53 特性描述35 HYPERLINK l _bookmark54 在线重删36 HYPERLINK l _bookmark55 数据压缩36 H

8、YPERLINK l _bookmark56 压缩比测试36 HYPERLINK l _bookmark57 开启压缩36 HYPERLINK l _bookmark58 测试过程37 HYPERLINK l _bookmark59 测试结果38 HYPERLINK l _bookmark60 8 总结39 HYPERLINK l _bookmark61 9 术 语表40 1 概 述内容简介华为 OceanStor F V5 全闪存存储(下文简称 F V5 存储)是华为根据存储产品应用现状和存储技术未来发展趋势,推出的新一代一体化融合存储产品,能够满足大中型企业用户对海量数据存储、高速数据存取

9、、高可用性、高利用率、绿色环保和易于使用的要求。本文档针对 F V5 配套 Oracle 数据库进行阐述。聚焦如何高效利用 F V5 存储进行 Oracle 数据库业务部署,并针对企业用户场景下的 Oracle 的在线联机事务处理(OLTP)业务,进行了一系列的验证,通过参考该最佳实践,可以获得更好的业务部署效率和业务运营质量,有效保障 Oracle 数据库的性能和可用性。写作目的本文档的写作目的在于描述 F V5 存储系统在 OLTP 类型的 Oracle 数据库业务下的规划和配置方案,旨在为华为合作伙伴和华为用户提供参考,以期降低 IT 系统规划部署的复杂度,并降低运维风险。面向读者本文档

10、面向华为员工、合作伙伴与客户,阅读本文档,需要熟悉如下技术:华为 OceanStor F V5 系列存储华为 OceanStor UltraPath、DeviceManager 等软件Linux 操作系统基础知识Oracle 12c 数据库架构和原理SLOB 测试软件用户收益本方案的设计目的在于加快用户事务数据库方案的设计、验证与交付流程,基于典型事务处理业务模型,提供 F V5 存储配套 Oracle 12c RAC 极致性能的证实解决方案,以典型配置与性能指标作为参考,降低安装配置的复杂度,并期望用户能够使用该证实解决方案,获取最高投资回报率。关键组件本文中描述的内容基于以下硬件和软件进行

11、描述:华为 OceanStor V500R007C00 版本存储系统华为 OceanStor UltraPath for Linux V100R008C50 多路径软件Red Hat Enterprise Linux 7.2 操作系统Oracle Database 数据库软件Oracle RAC 集群软件SLOB 测试软件业务场景Oracle 数据库在核心 IT 业务系统中应用广泛,存储子系统的规划配置至关重要,不合理的存储规划往往导致 IT 系统性能低下,甚至可用性和数据可靠性得不到保证。OLTP 类型的 Oracle 数据库往往承载着企业核心的业务支撑系统,如 ERP、CRM 等, 其性能

12、和可用性出现问题,会直接导致企业运营效率低下甚至中断。本文从 F V5 存储系统配置、组网、主机和数据库参数等方面,阐述了 F V5 存储系统应用于 OLTP 类型 Oracle 数据库时的规划和配置方案,以期降低用户 IT 系统的性能和可用性风险。负载模型本文使用业界通用的 SLOB 工具对推荐的规划和配置策略进行了验证。SLOB(Silly Little Oracle Benchmark)工具是一款数据库性能测试工具,当前只支持 Oracle 数据 库。该工具产生大量的物理 I/O,通过对默认的名为 IOPS 的表空间进行简单的数据库操作,测试在数据库场景下底层存储阵列的 IO 性能。本文

13、使用多种 SLOB 业务模型,包括 100%查询、50%更新、25%更新、100%更新,综合评估 OLTP 数据库性能。 2 华为技术与产品OceanStor F V5 产品介绍华为 OceanStor F V5 全闪存存储(下文简称 F V5 系列存储)是面向企业级应用的新一代融合存储产品。凭借面向云架构的存储操作系统、强劲的新一代硬件平台和丰富的智能管理软件,F V5 系列存储在功能、性能、效率、可靠性和易用性上都达到业界领先水平,很好的满足了大型数据库 OLTP/OLAP、文件共享、云计算等各种应用下的数据存储需求,广泛适用于政府、金融、电信、能源、媒资等行业。同时,F V5 系列存储能

14、够提供高效、灵活、丰富的备份、容灾解决方案,有效保证用户业务连续性和数据安全,为用户提供卓越的存储服务。图2-1 华为 OceanStore F V5 融合存储更多详细信息,请查看下面的链接: HYPERLINK /cn/products/cloud-computing-dc/storage/unified-storage/5300f-5500f-5600f-5800f-v5 OceanStor 5300F/5500F/5600F/5800F V5 全闪存存储系统 HYPERLINK /cn/products/cloud-computing-dc/storage/unified-storage

15、/6800f-v5 OceanStor 6800F V5 高端全闪存存储系统 HYPERLINK /cn/products/cloud-computing-dc/storage/unified-storage/18500f-18800f-v5 OceanStor 18500F/18800F V5 高端全闪存存储系统OceanStor UltraPath 多路径软件UltraPath for Linux 软件是基于 Linux 内核开发的多路径软件。它安装在应用服务器上,主要用于控制应用服务器对存储设备的访问,实现应用服务器到存储设备之间的路径选择以及路径管理。UltraPath 软件能提高数据

16、传输的可靠性,保障应用服务器与存储设备之间的路径安全性,为客户提供一个简单、快捷、高效的路径管理方案,确保应用服务器和存储系统的服务性能得以充分发挥,保护用户的投资。 3Oracle数据库介绍Oracle 数据库是应用最为广泛的关系型数据库之一,自 1986 年发布版本 5 到现在,Oracle 一直引领关系型数据库的潮流,Oracle 数据库是与存储系统关系最为密切的应用。本章节对 Oracle 12c 做简要介绍,聚焦与多租户相关的组件和特性:RAC(Real Application Cluster)、ASM(Automatic Storage Management)、多租户、数据文件、实

17、例架构、业务类型。Oracle RAC and ASM如下图所示,Oracle 12C RAC 包含若干个直接访问存储的服务器节点(称为 HubNodes)和若干个通过 Hub Nodes 间接访问存储的服务器节点(Leaf Nodes)。在 Oracle RAC 上部署数据库时,这些节点可以被分为多个 Server Pool,数据库部署于某一个 Server Pool 上,在 Server Pool 的每一个节点上均运行一个数据库实例。应用服务器通过访问节点的 VIP(Virtual IP)来存取数据,当某个节点故障时,Oracle RAC 在其他的节点上创建故障节点的 VIP 网络,应用服

18、务器通过重新连接机制重新访问数据库。在应用服务器上设置连接字符串,可以实现多种访问 Oracle RAC 节点的模式,包括负载均衡模式与故障切换模式,这样多节点的 Oracle 集群数据库对于应用服务器来说,就像是访问单一数据库。Oracle RAC Hub Nodes 的共享存储包含三部分:OCR(Oracle Cluster Registry)、Voting Disk、Database。其中 OCR 用于记录节点状态信息,Voting Disk 用于节点间同步,而 Database 部分是由一系列的数据文件组成的。图3-1 Orcale 12C Flex ClusterOracle ASM

19、(Automatic Storage Management)是随 Oracle 数据库 10g/11g 推出的,给数据库管理员提供了一个简单的存储管理界面用于跨平台管理服务器和存储。作为内置的文件系统和卷管理器,为 Oracle 数据库文件所专用。ASM 简化文件系统管理,提供异步 I/O 性能优化,节省 DBA 的管理时间,提供弹性高效的数据库环境。ASM 可以将多个 LUN(Logical Unit Number)组合为磁盘组,通过 AU(Allocation Unit)在 LUN 上分配存储空间,ASM 磁盘组有三种类型:External:LUN 之间不进行数据镜像,由存储系统提供数据保

20、护机制。Normal:由两个失效组组成,两个失效组之间进行数据镜像。High:由三个失效组组成,三个失效组之间的数据互为镜像。V5 存储系统上创建 ASM 磁盘组时,建议首先将磁盘组内的 LUN 平均分配到各引擎控制器,再创建 External 或 Normal 格式的磁盘组。Oracle 12C 引入了一个全新的 Oracle ASM 部署模型 Oracle Flex ASM,通过它可提高数据库实例的可用性并降低 Oracle ASM 相关资源的占用。Oracle Flex ASM 简化了基于集群的数据库整合,当特定服务器上的 Oracle Flex ASM 实例出现故障时,能够确保运行在该

21、服务器上的 Oracle Database 12c 实例继续运行。图3-2 Orcale 12C Flex ASMOracle RAC 主要有以下特点,这些特点对于高可用性数据管理来说极其重要:可靠性:Oracle 数据库以其可靠性而著称。Oracle RAC 消除了数据库服务器单点故障问题,从而使可靠性更上一层楼。如果一个实例发生故障,服务器池中的其余实例仍将保持正常运行状态。Oracle Clusterware 监视所有 Oracle 进程,并能立即重启任何发生故障的组件。错误检测:Oracle Clusterware 自动监视 Oracle RAC 数据库和其他 Oracle 进程(Or

22、acle ASM、实例、监听器等),并快速诊断环境中的问题。它还经常能在用户察觉到故障之前自动完成故障恢复。恢复能力:Oracle 数据库包含的许多特性有助于数据库轻松地从各类故障中恢复。如果 Oracle RAC 数据库中的一个实例出现故障,服务器池中的另外一个实例将察觉到这一故障,随后自动进行故障恢复。利用快速应用程序通知 (FAN)、快速连接故障切换 (FCF),尤其是利用 Oracle RAC 12c 应用程序连续性特性,可轻松地掩藏任何组件故障,使用户无法察觉。连续运行:Oracle RAC 可在计划和意外中断期间提供连续的服务。如果一个服务器(或实例)出现故障,数据库将保持运行,应

23、用程序仍能继续访问数据,从而让业务关键型负载得以完成运行,而且多数情况下服务交付无延迟。Oracle 体系架构图3-3 Oracle 系统架构如上图所示数据库使用的内存包含两部分,SGA(System Global Area)和 PGA(Program Global Area),其中 SGA 用于存放系统信息和页面缓存,而 PGA 用于存放会话信息。SGA 主要包含如下几部分。Buffer Cache:用于缓存数据块Redo Log Buffer:用于缓存日志记录,是一个循环数组Share Pool:用于缓存数据字典、共享 SQL 信息等Oracle 的数据文件包含如下几种类型。Control

24、 File:记录数据库的结构、参数和其他数据文件的位置。Data File:存放用户数据和临时数据。Online Log:存放数据块更改记录,由若干个日志组组成,日志组内的文件互为镜像,某个日志组写满之后切换到下一个日志组继续写入,最后一个日志组写满之后切换到第一个日志组。Archive Log:当数据库处于归档模式时,数据库将写满的日志组拷贝到归档区, 用于数据异常时恢复。Oracle 按照 LRU 算法对 Buffer Cache 中的旧数据进行淘汰,腾出空间供新的数据块使用。Buffer Cache 中被更改过得数据块称为脏数据,DBW(DB Writer)进程负责将脏数据写入数据文件。

25、为保证数据完整性与可靠性,关系型数据库使用事务来表示一次原子操作。在处理事务的过程中,Oracle Server 进程将被更改的数据和发生更改的时间记录到 Log Buffer 中,当事务提交时,由 LGWR(Log Writer)将 Log Buffer 中的日志记录数据同步到在线日志文件中。Log Buffer 是一个可被循环写入的内存区域,当 Log Buffer 空间占用超过 1/3 时,不管事务是否提交,LGWR 都会把日志记录同步到日志文件中。另外,Oracle 还会每 3 秒钟自动进行一次日志同步。默认情况下,Oracle 数据库每 30 分钟执行一次检查点,检查点发生时,CKP

26、T(Checkpoint)进程将同步控制文件,并触发 DBW 将脏数据写入数据文件。Oracle 的在线日志分为若干组,每个日志组包含一个或多个日志文件,如果有多个日志文件,则这些文件之间互为镜像。Oracle 将日志顺序写入日志组,当最后一个日志组写满时,将切回到第一个日志组写入。发生日志组切换时,Oracle 将判断下一个日志组中记录的脏数据是否完全被写入到数据文件,如果没有,Oracle 将等待 DBW 将这些脏数据写入到数据文件之后,才会进行日志组切换。Oracle 处于归档模式时,由 ARC(Archive)进程将写满的日志拷贝到归档区,数据异常时,归档日志用来进行精确的数据恢复。O

27、racle 12c 引入了多租户架构,可以在一个 CDB(Container Database)里面,运行多个 PDB(Pluggable Database)。下图显示了一个拥有 4 个容器的 CDB:root,种子PDB 以及两个 PDB(hrpdb 和 salespdb)。每个 PDB 拥有自己专有的应用,并且由它自己的 PDB 管理员进行管理。用户 SYS 可以管理 root 和每个 PDB。在物理层,CDB 拥有一个数据库实例和数据库文件。多租户特性为 Oracle 数据库带来了更好的可服务性。图3-4 Oracle 多租户架构OLTP 业务类型数据库业务大致上可以分为 OLTP(On

28、line Transaction Processing)和 OLAP(Online Analytical Processing)两种应用类型:OLTP:大量在线用户进行事务操作,例如在线购物网站OLAP:很少量的用户在线执行长时间复杂的统计查询OLTP 应用的负载特征如下:从数据库角度看每个事务的读、写、更改涉及的数据量非常小。数据库的数据必须是当前的,所以对数据库的可用性要求很高。同时有很多用户连接到数据库,使用数据库。要求数据库有很快的响应时间,通常一个事务在几秒内完成。从存储角度看:每个 I/O 非常小,通常为 2KB8KB。访问硬盘数据的位置非常随机。至少 30的数据是随机写操作。RE

29、DO 日志写入非常频繁。 4 Oracle 规划配置最佳实践本章介绍基于华为 OceanStor F V5 存储系统,部署 Oracle 12c RAC 数据库的推荐规划配置。包括组网、存储规划配置、主机设置、数据库设置等。SAN 组网Oracle 数据库往往承载着企业核心业务系统,为保证业务连续性,建议使用 OracleRAC 集群,组网应避免单点故障。如下图所示,SAN(Storage Area Network)组网中,使用两个物理上独立的交换平面(每个交换平面包括一个交换机或多个相互级联的交换机),每个数据库节点与两个交换平面相连,每个存储控制器和两个交换平面相连。图4-1 Oracle

30、 RAC 组网示意图划分 Zone 或 vLAN通过划分 Zone 或 vLAN,可以实现如下目的:在企业 IT 系统中,一台高端存储往往承载多个业务系统,通过划分 Zone 或vLAN,可以避免各业务系统相互影响。主机路径数过多,会增加系统管理的复杂度,也会增加运维过程中网络变更的难度,通过划分 Zone 或 vLAN,可以改善 IT 基础架构的灵活性。划分 Zone 或 vLAN 的总体策略是保证双交换组网,即在每个交换平面上,每个数据库节点与每个存储控制器均有逻辑通道。建议按照下图方式划分,保证每个 Zone 或VLAN 仅为一个主机端口和一个存储端口的对应。图4-2 Zone 或 vL

31、AN 的划分NODE1.P0 代表主机节点 1 上的第一个 FC 端口,以此类推。CTE0.L0.P0 代表存储第一个控制器第一张卡上的第一个端口,以此类推。存储配置在使用 F V5 存储之前,建议首先分析清楚业务性能和容量需求,做好存储系统的硬盘数规划,降低运维风险。在引入 RAID2.0+技术之后,根据业务性能和容量需求评估硬盘数变得非常困难,华为UniSTAR eDesigner 方案设计工具( HYPERLINK /unistar/edesigner /unistar/edesigner )中,包含两款针对存储系统的评估工具,建议客户使用这两款工具为 Oracle 数据库规划硬盘数。硬

32、盘域产品能力评估:根据特定的存储配置,评估存储系统可提供的性能和容量存储配置向导:根据特定的业务需求,评估存储型号和硬盘配置硬盘域(Disk Domain)即多个硬盘的组合,将硬盘整合并预留热备容量后统一向存储池提供存储资源。存储可以配置一个或多个硬盘域。一个硬盘域上可以创建多个存储池(Storage Pool)。不同硬盘域之间是完全隔离的,包括故障域、性能和存储资源等。建议一个硬盘域的硬盘都在一个硬盘框内。存储池多租户硬盘域的热备容量比例与热备策略和硬盘的类型和数量相关,该比例关系由存储系统根据可靠性工程方法自动维护。若需要规划存储容量和性能,建议使用华为 UniSTAReDesigner

33、工具进行配置。热备策略的选择跟上层应用系统的类型有关。OLTP 业务类型,大量用户在线处理业务,I/O 多为随机小 I/O(4K/8K),建议选择高热备策略。OLAP 业务类型,少量用户在线执行复杂的分析查询,I/O 为多路顺序大 I/O(上百 KB),写比例低,建议选择低热备策略。F V5 系列存储系统的硬盘域可以包含多达上千块硬盘,但基于性能和可靠性考虑,建议硬盘域每存储层的硬盘数不超过 100 个。存储池(Storage Pool),是存放存储空间资源的容器,创建于硬盘域内,可以从硬盘域上动态分配资源,并定义每个存储层级的“RAID 级别”。F V5 系列存储支持 RAID6、RAID1

34、0、RAID5、RAID3、RAID50、RAID1 六种 RAID级别,最常用的 RAID 级别为 RAID6、RAID10、RAID5。建议按如下策略为 OracleOLTP 数据库配置 RAID 级别。首选 RAID6,尤其是核心数据库业务等可靠性要求高的场景。性能的重要性高于可靠性时,建议选择 RAID10。容量的重要性高于可靠性时,建议选择 RAID5。创建存储池时,允许设置容量分配比的告警阈值,默认是 80(百分比)。在使用 ThinLUN、快照、远程复制、克隆等增值业务时,容量告警尤其重要,用户可以根据业务数据量增长的速度设置合理的告警阈值,避免业务因为存储池容量不足而造成服务中

35、断。分条是把连续的数据分割成相同大小的数据块,把每段数据分别写入到存储设备中的不同磁盘上,实现 I/O 在每块磁盘上负载均衡,提高读写能力。对于数据库类型的随机读写场景,建议使用 32KB 分条深度。多租户是存储系统的一种特性。使用多租户特性可以在一套物理存储系统中创建多个虚拟存储系统,让多个租户既能共享相同的存储硬件资源,又不影响相互的数据安全性和隐私。借助该租户特性,可以在多协议统一存储架构中实现更加灵活、更易于管理、部署成本更低的共享存储。建议启用多租户特性,在 Oracle 租户下创建 LUN。LUN为 Oracle OLTP 数据库创建 LUN 时,为了能使存储系统的性能达到最优状态

36、,需要根据实际的数据存储情况,为 LUN 选择合适的 LUN 策略。主要参数的推荐配置策略如下。归属控制器(owner_controller):在数据库负载较高时,建议将 LUN 平均分配到多个控制器上,以保证控制器的负载均衡。预取策略(prefetch_policy):提供 4 种预取策略(不预取、固定预取、可变预 取、智能预取)。对于 Oracle OLTP 数据库来说,其负载特征为随机小 I/O,开启预取并不能明显提升读 I/O 性能,反而加重存储系统的负担,所以建议设置预取策略为“不预取”。重删压缩(SmartDedupe and SmartCompression):使用 OceanS

37、tor F V5 存储时可以开启重删和压缩特性,通过删除重复数据并对数据进行压缩存储,减少数据的实际占用空间和数据写入次数。V5 默认的重删粒度为 8KB,Oracle 数据库的每个 8KB 页面都包含具有唯一字段的标头,所以开启重删并不会减少数据的存储空间。建议只开启压缩,关闭重删。LUN 类型(lun_type):提供“厚置备(Thick)”和“精简置备(Thin)”两种类型,建议用户根据性能和容量的重要性进行权衡,如果性能更为关键(如核心生产系统),建议设置为“Thick”,如果容量更为关键(如测试开发系统),建议设置为“Thin”。LUN 的容量和个数:与最多仅包含十几块硬盘的传统 R

38、AID 组不同,基于RAID2.0+机制的存储池,LUN 会跨越硬盘域内的所有硬盘,而硬盘域内的硬盘数多达几十甚至上百个。为了使硬盘的性能充分发挥,建议按如下策略配置 LUN 的个数和容量。硬盘域内 LUN 的总数:建议不小于“硬盘数432”。(4 是单个硬盘的合理并发数,32 是 LUN 的默认最高队列深度)。建议使用 8-16 个数据 LUN(存储 Oracle 业务数据文件),4-8 个日志 LUN(存储 Oracle 归档日志文件),可满足最大 32TB 的容量的数据库。对于更大容量的数据库,请根据实际情况调整 LUN 的数量。LUN 容量:满足上面条件的前提下,使用尽量大的 LUN,

39、以简化管理开销。但需要注意,LUN 的最大容量还需考虑操作系统和 Oracle 数据库的限制,如Oracle 11g ASM 要求 LUN 的容量小于 2TB。在 Oracle 12.1 及以上版本中,放宽了对 ASM 磁盘的限制,单盘最大可以达到 4PB。但是由于已知 Bug(6453944)的存在,导致实际上单盘大于 2T 时会报错。建议单个 LUN 的容量小于 2TB。映射视图映射视图定义了 LUN、阵列端口、主机端口之间的逻辑映射。创建映射视图,建议按如下策略。LUN 组是为了便于 LUN 资源管理而设计的一个对象。一般情况下,将同一种业务的 LUN 加入到一个 LUN 组内。主机组是

40、一组需要共享存储资源的“主机”,每个“主机”包含多个启动器(主机端口)。建议为每一个服务器创建一个“主机”,将该服务器的所有启动器添加到该“主机”内。端口组可以更精细化的控制存储端口的分配。端口组不是必须的,但我们强烈建议您为 Oracle OLTP 业务分配端口组,以增加运维的灵活性,并降低业务之间的性能影响。为避免单点故障,一个端口组应至少包含来自于每个控制器的一个端口。主机配置队列深度对于 Oracle 数据库来说,I/O 队列深度是影响性能的重要参数。操作系统层存在两个参数影响到 I/O 队列深度:块设备队列深度和 HBA 卡队列深度。建议按照如下策略配置块设备队列深度和 HBA 卡队

41、列深度。对于 Linux 操作系统,块设备最大队列深度为 128,华为不建议修改参数。而HBA 卡的队列参数与卡类型和驱动程序相关,请参考 HBA 厂商给出的规格值, 如 Qlogic 8Gbps FC 双口 HBA 卡,限制每个 LUN 的最大队列深度为 32。华为不建议更改 HBA 卡最大队列深度参数,而建议采用增加 LUN 个数的方式提高整体I/O 队列深度。对于 AIX 操作系统,华为建议安装 UltraPath 多路径,而不建议使用系统多路径或第三方多路径。安装了华为 UltraPath 多路径,块设备最大队列深度被调整为 32, 华为不建议对该值进行修改。若不使用华为 UltraP

42、ath,系统默认块设备最大队列深度为 5,华为强烈建议将此值修改为 32 或更高。AIX 的 HBA 卡最大队列深度默认值为 200,可根据实际业务需求进行调整。对于 Windows 操作系统,单个 LUN 的最大 I/O 队列深度同样取决于 HBA 卡厂商给出的规格值,华为不建议修改。对于其他操作系统,请参考操作系统用户手册进行调整。I/O 对齐在 Linux 操作系统中使用 MBR 格式创建分区时,会将磁盘的最开始 63 个扇区预留给主引导记录和分区表,第一个分区默认从第 64 扇区开始。这就造成了主机的数据块(数据库或文件系统)与存储数据块不对齐,造成 I/O 处理效率降低。在 Linu

43、x 系统中使用 MBR 格式创建分区时,建议进入 fdisk 命令的专家模式,设置首分区的开始位置为 LUN 的第二个 Extent 的开始位置(Extent 大小默认是 4MB)。下面是一条快速命令,用于在/dev/sdb 上使用 MBR 格式创建 1 个分区,使用/dev/sdb 的全部空间,开始扇区设置为 8192,即 4MB。printf nnpn1nnnxnbn1n 8192nwn | fdisk /dev/sdb设置分区对齐的逐步操作命令如下:fdisk /dev/sdbn (创建新的分区)p (分区类型选择主分区)1 (设置改分区为第 1 个分区)(直接回车,设置分区的开始位置为

44、默认开始扇区,即 63)(直接回车,设置分区的结束位置为默认最后一个扇区)x (进入专家模式)b (设置分区开始位置)1 (设置第 1 个分区)8192(开始位置设置为 8192 扇区,即 4MB) w (写盘退出)在 Linux 系统中解决分区不对齐的另一种方法是采用 GPT 格式的分区。下面是一条快速命令,用于在/dev/sdb 上使用 GPT 格式创建 1 个分区,使用/dev/sdb 的全部空间,开始扇区设置为 8192,即 4MB。parted -s - /dev/sdb mklabel gpt unit s mkpart primary 8192 -1 print块设备调度算法Li

45、nux 2.6 内核支持四种块设备调度算法:noop,anticipatory,deadline 和 cfq。OLTP/OLAP 应用中对 I/O 延迟要求较为苛刻,对于传统硬盘,调度算法建议选择deadline,对于 SSD,建议选择 noop。在 RHEL6 以及之后的版本中,可以针对每块磁盘制定 I/O Scheduler,修改完毕立刻生效,命令如下。#查询当前调度算法rootnode1 doc# cat /sys/block/sdc/queue/scheduler noop deadline cfq#修改为 nooprootnode1 doc# echo noop /sys/block

46、/sdc/queue/scheduler#查询修改后rootnode1 doc# cat /sys/block/sdc/queue/scheduler noop deadline cfq使用以上命令修改 I/O 调度算法,只是临时修改,系统重启后修改就会失效。永久修改默认的 I/O 调度算法,使用以下命令,系统重启后生效。rootora1 doc# grubby -default-kernel/boot/vmlinuz-3.10.0-327.el7.x86_64rootora1 doc# grubby -args=elevator=noop -update-kernel /boot/vmlin

47、uz- 3.10.0-327.el7.x86_64rootora1 doc# grubby -info /boot/vmlinuz-3.10.0-327.el7.x86_64index=0kernel=/boot/vmlinuz-3.10.0-327.el7.x86_64args=ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet LANG=en_US.UTF-8 elevator=nooproot=/dev/mapper/rhel-root initrd=/boot/initramfs-3.10.0-327.el7.x86_64.img

48、title=Red Hat Enterprise Linux Server (3.10.0-327.el7.x86_64) 7.2 (Maipo)多路径设置强烈建议用户在使用华为 OceanStor F V5 系列存储系统时,选择华为 UltraPath 多路径,而不要使用系统自带多路径或者第三方多路径,这将带来未知的可靠性和可用性风险。关于 UltraPath 多路径的参数,华为经过严格的验证,给出了最为可靠的默认参数,一般情况不建议用户进行更改。除非您有特殊的可靠性需求,请参考华为 UltraPath 多路径手册对参数实施更改,但华为建议更改后进行严格的性能和可靠性测试(包括但不限于本文档

49、配置示例章节展示的测试),保证系统能够长期稳定运行,并且能够快速从故障中恢复。绑定盘符在 Linux 环境下配置 Oracle 数据库时,华为建议使用 UDEV 策略绑定设备编号UUID,以免后续维护过程中发生盘符改变造成数据库无法启动。查询 LUN 的 UUID及配置 UDEV 策略文件的脚本如下。# /lib/udev/scsi_id -g -u -d /dev/sdb 350014ee0594e108e# vi /etc/udev/rules.d/99-huawei-devices.rulesKERNEL=sd*1, SUBSYSTEM=block,PROGRAM=/sbin/scsi_

50、id -g -u -d /dev/$parent, RESULT=350014ee0594e108e, SYMLINK+=GRID01,OWNER=grid, GROUP=asmadmin, MODE=0660配置 HugePageHugePage 提供了一个使用更大尺寸页面的方法,它会将 SGA lock(锁定)到物理内存,这样就无需进行 SGA 的系统页表查找。这对内存分配较高的系统尤为重要,因为这样能够消除与此类配置相关的管理开销。在 11gR1 和更高版本中,必须禁用 AMM 才能使用 HugePage。在所有的数据库节点上都需要配置。大页内存参数生效后会立即分配并占用,请务必计算并配

51、置正确,若配置过大,会导致系统内存被全部占用,导致节点 OS 异常。配置 HugePage 详细操作步骤如下。步骤 1 检查并确认当前环境中内存的大页尺寸是否为 2048 KB 即 2MB。rootnode1 # cat /proc/meminfo |grep Hugepagesize Hugepagesize:2048 kB步骤 2 计算 vm.nr_hugepages 的大小。vm.nr_hugepages 的大小为 sga_max_size + 2GB,sga_max_size 即分配给 SGA 的内存容量大小,计算公式为:vm.nr_hugepages = (sga_max_size

52、+ 2) * 1024 / 内存大页尺寸步骤 3 在/etc/sysctl.conf 最下面增加一行。rootnode1 # vi /etc/sysctl.conf vm.nr_hugepages= 102400步骤 4 保存之后执行以下命令使参数生效,并确认配置是否生效。rootnode1 # sysctl -prootnode1 # sysctl -a |grep nr_hugepages vm.nr_hugepages = 102400vm.nr_hugepages_mempolicy = 102400结束Linux 2.6 内核默认开启 transparent hugepage,允许大

53、页做动态的分配,而不是系统启动后就分配好,这导致了很多的问题,建议将其关闭。查看是否启用了 transparent hugepagerootnode1 # cat /sys/kernel/mm/transparent_hugepage/enabled always madvise never以上输出说明启用了 transparent hugepage。Redhat 7 系统可以通过以下命令来关闭transparent hugepage,系统重启后生效。rootnode1 # grubby -default-kernel/boot/vmlinuz-3.10.0-327.el7.x86_64roo

54、tnode1 # grubby -args=transparent_hugepage=never -update-kernel/boot/vmlinuz-3.10.0-327.el7.x86_64rootnode1 # grubby -info /boot/vmlinuz-3.10.0-327.el7.x86_64index=0kernel=/boot/vmlinuz-3.10.0-327.el7.x86_64args=ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet LANG=en_US.UTF-8

55、transparent_hugepage=neverroot=/dev/mapper/rhel-root initrd=/boot/initramfs-3.10.0-327.el7.x86_64.imgtitle=Red Hat Enterprise Linux Server (3.10.0-327.el7.x86_64) 7.2 (Maipo)数据库配置数据库参数Oracle 12c 数据库 OLTP 业务下,建议针对以下参数进行调整,参数的最佳值应根据实际业务进行测试调整,以获取最佳性能和可靠性。下表列出了关键参数的含义和推荐值。表4-1 数据库参数推荐参数描述推荐值db_block_si

56、zedb 数据块大小8192sga_targetSGA 自动调整的最大值80% * 80% * TOTAL_MEMsga_max_sizeSGA 自动调整的最大值80% * 80% * TOTAL_MEMpga_aggregate_targetPGA 自动调整的最大值20% * 80% * TOTAL_MEMprocesses最多 ORACLE 进程数两倍于应用连接池大小db_writer_processesDB Writer 进程个数MIN( 8, NUM_OF_DATA_LUNs)db_file_multiblock_rea d_count顺序读块数128fast_start_mttr_t

57、arget快速启动目标时间60(根据需求调整,不建议过大)lock_sga将 SGA 锁定到内存TRUEuse_large_pages大页的使用方式使用大页时建议设置为 ONLYenable_numa_support优化内存调度TRUEdb_files指定数据库可以打开的数据库文件的数量2000_disk_sector_size_overr ide避免小块不对齐导致的性能下降TRUE_ash_size避免数据库繁忙时,内存会话信息频繁刷盘,导致业务性能下降200M_gc_read_mostly_locki ng避免 oracle ADR BUGFALSE_gc_policy_time避免 or

58、acle ADR BUG0ASM 磁盘组ASM 磁盘组是 Oracle 提供的一种卷管理器,主要用于替代操作系统提供的 LVM,它拥有自动管理并提供有效的数据冗功能,能够简化 DBA 的工作。建议根据数据文件的业务类型,创建不同的 ASM 磁盘组。ASM 磁盘组的冗余类型可以分为三类:Normal,High,External。对于已创建的磁盘组,不能够更改其冗余级别,如要更改,需要删除该磁盘组后再重新创建。建议仅对OCR、仲裁盘的磁盘组设置 Normal 冗余,其余磁盘组设置 External 冗余,提高空间利用率。在线日志Oracle 数据库 OLTP 业务下,如果写入非常频繁,会造成频繁的

59、日志切换,影响数据库性能。建议将在线日志文件适当调大,但建议不要过大,否则有可能造成比较长的失败恢复时间。一般建议确保日志切换频率在 1020 分钟为宜。Oracle 数据库写日志的策略为循环写入,为避免日志等待,建议为每个实例创建 4 个以上的日志组,每个日志组包含 2 个日志文件。alter database add logfile thread 1 group 11(+REDO/OLTP/onlinelog/group11_1,+REDO/OLTP/onlinelog/group11_2) size 1G blocksize 4k;alter system switch logfile;

60、alter database drop logfile group 1;查询数据库在线日志切换频率脚本如下。select sequence#,first_time,nexttime,round(first_time-nexttime)*24)*60,2) diff from (select sequence#,first_time,lag(first_time) over(order by sequence#) nexttimefrom v$log_history where thread#=2and first_time trunc(sysdate,dd) ) order by sequen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论