Oracle 11g OCM考试考点分析 Oracle Grid 安装

本文永久链接地址:https://www.askmac.cn/archives/oracle-11g-install-grid.html

 

Grid 安装

14.1 目标

 

在这个课程之后,你应该能够:

  • 完成grid 预安装任务
  • 安装grid
  • 验证安装
  • 配置ASM磁盘组

 

14.2  grid预安装任务

 

1.共享存储

  • 这里有3种方式来存储grid文件:

-一个支持的集群文件系统(CFS)

-一个验证的网络文件系统(NFS)

-自动存储管理(ASM)

 

存储选项 Voting/OCR oracle 软件
ASM yes no
ASM集群文件系统(ACFS) no yes
oracle 集群文件(OCFS2) yes yes
NFS(仅仅验证) yes yes
共享磁盘片(块或裸设备) no no

 

  • 使用DBCA或者OUI不能最新安装到块或者裸设备上
  • 当更新一个现存的RAC数据库,你可以使用现有的裸设备和块设备分区和执行安装的滚动升级。

oracle 集群配置文件(voting和OCR)可以被存储到一个支持的文件系统上或者网络文件系统。oracle 11g r中,asm现在可以被用来存储OCR和 voting文件。结合ASM集群文件系统,ASM现在为RAC提供一个完全共享存储的解决方案。其他存储商(SAN)的解决方案对于上表格中的共享块设备的类别。

在11g R2中,使用DBCA或者 使用通用安装程序来存储 oracle集群,或将oracle数据库文件直接到块或者裸设备(不支持),虽然命令行接口仍然接收它们。

如果你打算升级现有的RAC数据,或者ASM实例,你可以使用现有的裸设备和块设备分区和执行安装的滚动升级。

 

2.oracle 集群的共享存储大小:

对于新安装,OCR和voting 磁盘文件可以被放置到Oracle ASM,或者到一个集群文件系统,或 NFS系统。安装oracle 集群文件到一个裸设备或者块设备已经不再支持,除非是现有的系统升级。

如果你为Oracle集群文件使用普通冗余,会包括三个OCR位置和3个仲裁盘位置,那么你在共享存储卷上至少应该给2G可用空间。

如果你计划在ASM上安装,并确保高可用的OCR或仲裁盘,你需要有3个单独的故障组,至少2GB,也就是最少3块物理磁盘、每个磁盘至少1GB保证容量有足够的空间来创建Oracle集群文件。

 

14.3 管理ASM的仲裁盘

 

  • 每个节点必须能够访问到大多数的仲裁盘,否则,其将被剔除集群。
  • 仲裁盘可以被存储在ASM磁盘组中

–它们不是常规的ASM文件

–集群知道位置以防ASM不可用的情况

  • 仲裁盘的数目被ASM磁盘组的冗余对设置所决定

–1 对应 外部磁盘冗余

–3 对应一般磁盘冗余

–5 对应高磁盘冗余

  • 每个仲裁盘需要单独的故障组
  • 使用crsctl工具管理仲裁盘

 

Oracle 集群使用仲裁盘文件,也被称作voting disk,来决定哪个节点是一个集群中的成员,和维护集群的完整性。如果你配置仲裁盘在ASM上,那么你就不需要手动的配置仲裁盘。依赖指定磁盘组的冗余度,一个预定义数目的仲裁盘被创建。

ASM管理仲裁盘于存储的其他文件不同。当你最初配置Oracle 集群时,你指定了容纳仲裁盘的磁盘组。每个仲裁盘被安置在一个单独的ASM故障组中。你必须指定足够的故障组来支持,于每个磁盘组冗余度配置相应的仲裁盘数目。例如,在一个普通冗余度的磁盘组中,你必须要有至少3个故障组来存储仲裁盘。仲裁盘不作为ASM常规文件出现,而集群中仲裁盘位置信息是准确的。在这样的安排下,如果ASM因为某些原因不可用,那么集群同步服务可以仍然访问到仲裁盘来维护集群。

一个使用一般或高冗余的ASM磁盘组的好处是,如果一个磁盘包含的仲裁盘出现故障,那么只要在这个磁盘组中其他磁盘可用,ASM会自动的恢复仲裁盘。仲裁盘通过crsctl工具管理。例如,下列命令迁移仲裁盘从当前位置到ASM中VOTE的磁盘组:

crsctl replace votedisk +VOTE

 

14.4 Oracle grid 安装

 

1.检查系统需求

2.检查网络需求

3.安装需求的操作系统包

4.设置内核参数

5.创建用户和用户组

6.创建所需的目录

7.配置安装所有者的shell限制

8.安装Oracle集群

 

为了成功安装Oracle Grid,你需要明白必须完成的任务,安装顺序完成它们。在真正安装之前,每个节点都需要完成硬件和软件的需求。你必须按照步骤完成硬件和软件的验证,和一些特定平台预安装过程。你必须安装集群软件所需的操作系统补丁,和验证你所需的内核参数。

Oracle Grid 必须使用图形化OUI安装。基于字符安装工具是不行的;但是OUI可以运行在静默批处理模式,通过使用相应文件来支持在安装中所需的参数。在你进行这个步骤之前,确保你的集群硬件是正常工作的。故障会导致中止或无效的安装。

如果你想使用EMGC来管理你的机器部署,你必须在每个集群节点上安装EM代理

 

14.5 检查系统需求

 

1.系统必须满足下列最小的硬件需求:

  • grid最小徐涛2.5GB的内存。可以输入下列命令来检查物理内存的大小:
grep MenTotal /proc/meminfo
  • 当内存是4-8G时,最小的交换分区是系统内存的2倍,内存是8-32G时,交换分区是内存的1.5倍,再大的内存话可以是1倍。可以使用下列命令来检查交换分区:
grep SwapTotal /proc/meminfo
  • /tmp目录(TMP和TMPDIR参数可以强制使用其他的目录),必须至少有1G的可用空间。可以使用下列命令来决定/tmp目录中可用的磁盘空间:
df -h /tmp
  • Oracle 集群配置文件至少需要2G的磁盘空间,假设标准的冗余,3个OCR文件和3个仲裁盘。这个必须是共享存储让所有节点都能访问。
  • Grid软件家目录在每个节点上需求至少6.5G。

 

注:这里给的值是关于Linux系统的。对于其他操作系统的清参考特定平台Grid安装指南。

 

2.启用 名称服务缓存后台进程(nscd):

在使用NAS或者NFS存错事,为了运行集群能更好的容忍网络故障,启用nscd:

/sbin/service nscd start
chkconfig --list nscd

nscd为场景的名称服务请求提供了一个缓存机制。使用下列命令来检查nscd是否是自启动的:

使用root用户使用下列命令将nscd在运行级别3和5上开启:

chkconfig --level 35 nscd on

 

3.集群的单客户访问名称(SCAN):

在典型的安装中,你被提示要确认默认的SCAN,其是用来连接到集群中任意运行节点上的数据库。默认情况下,SCAN使用的名称也是集群的名称。默认的SCAN值是基于本地字节名称。如果你变更了SCAN,那么这个你使用的名称,必须在全局环境中是唯一的。

在典型安装中,SCAN也是集群的名称。SCAN和集群名在1到15个字符之间,不行包含字母,并且可以包含连接符。

如果你需要SCAN名称多于15个字符,那么要注意集群名称默认是SCAN前15个字符。

 

14.6 检查网络需求

 

下列是网络配置的需求:

  • 每个节点至少要有2个网卡(NICs):一个给公共网络,一个给私有网络
  • 网络接口名称在所有集群节点中必须一致
  • 在共有网络中,每个NIC必须支持TCP/IP协议。在私有网络中,每个NIC必须支持UDP协议。windos 平台只使用TCP。
  • 如果使用了DNS服务,共有的ip地址必须被注册
  • 确保每个节点使用了hostname和ifconfig 工具被正确的标识。
  • 如果在节点间的时间戳不同步,节点剔除和重启可能会发生。ntpd服务可以用来同步集群节点之间的时间戳。

–对于NTP,最大的摆动速率可能被限制为0.5ms/s,这个遵循是NTP协议和设计算法的结果。

–其结果是,本地时钟可以很长一段时间才能完成一个可以接受的偏移量,在时钟的可接受范围,每一秒需要2000s来完成。这就导致,一个例如调整5分钟(300s)需要花费大约7天的时间来完成。在这段时间内,本地时钟和其他网络时钟是不一致的,并且系统不能用来,做那些需要网络时间一致的分布式应用程序。由于这一后果,在时钟被设置之后,即使在网络堵塞和抖动的案例中,它很少会偏离超过128ms。在有些时候,实践中,当ntpd第一次启动时,误差可能会超过128ms。有的时候,本地时间如果比服务器时间更晚的话,这个时候就需要回退本地时钟。在一些应用程序中,这个操作是不允许的。如果 -x 选项包含在命令行中的话,时钟不会进行跨越式,只会进行摆动更正。在实际中,这降低了错误率,时钟摆动错误是几乎不可能的事情。

–如果ntp没有被配置,oracle 集群安装一个集群时间后台进程,csstd,在观察模式中。

 

你可以使用下列其中一个选项来配置IP地址:

  • Oracle Grid 名称 服务(GNS)在安装中使用一个静态地址定义,动态的配给其他地址分配IP地址,包含从你组织中的DHCP服务中,在集群中使用一个组播域名称服务配置来解决。
  • 每个节点中,静态地址由网络管理员手动分配到一个DNS上(或者/etc/hots中)

 

使用GNSIP地址需求:

 

如果你启用了GNS,那么集群中的名称解析请求被交给GNS,会监听到GNS 虚拟ip地址上。在安装之前定义这些地址到DNS域中。DNS必须每配置来代表解析集群名称(任何集群中的子系统名称)的请求到GNS。当一个请求来到预中,GNS处理请求并且为名称请求相应合适的地址。

使用GNS,在安装之前,DNS管理员必须建立DNS直接查找 集群子预的DNS解析。如果你启用了   GNS,那么你必须在公共网络上有一个DHCP服务,来允许集群安装需求动态的分配虚拟IP地址。

注意:如果你有供应商集群软件被安装,那么你不能使用GNS,因为供应商集群软件不支持它。

 

手动配置的IP地址需求:

 

如果你不启用GNS,那么每个节点的公有和虚拟IP地址必须是静态IP地址,在安装之前每个节点上配置,但是不会立即使用。公有和虚拟ip地址必须在相同的网段。

Orale 集群在私有子网中管理私有IP地址,这个需要在网卡上确认是私有的。集群不行有下列ip地址配置:

  • 每个节点一个公有IP地址,包含下列特性:

–静态IP地址

–安装之前,在每个节点上配置,并且在安装之前解析

–和其他公网IP,VIP和SCAN地址在同一网段

  • 每个节点一个虚拟IP地址,有下列特性:

–静态IP地址

–安装之前,在每个节点上配置,但是不立即使用

–和其他公网IP,VIP地址,和SCAN地址在相同的子网

 

  • 一个SCAN,有下列特性:

–在安装之前在DNS上配置3个静态ip地址,这样3个IP地址被分配于SCAN通过的名称关联,这样所有3个IP地址被DNS随机返回给请求者。

–在安装之前配置DNS进行地址解析,不会立即使用

–给定一个不是数字开头的名称

–和所有其他公有IP地址,VIP地址和SCAN地址在相应的子网

–复合RFC 952标准,允许字母字符和连接符(-)但是不允许下划线(-)

  • 每个节点一个虚拟IP地址,有下列特性:

–静态IP地址

–在安装之前配置,但是在一个独立私有网络中,有自己的网段,不能被集群成员外的节点所解析。

 

SCAN 是一个给客户端访问集群,提供服务的一个名称。因为SCAN与整个集群有关,而不是特定的一个节点,SCAN可以让增加节点和删除节点,不用修改客户端配置。其也为数据库增加了位置的独立性,这样客户端配置不用依赖于哪个节点运行一个特别的数据库。客户点可以继续和之前版本一样,用相同的方式访问集群,但是Oracle 建议客户端使用SCAN来访问集群。

 

广播和组播需求:

 

广播通信(ARP和UDP)必须在所有公有和私用网卡配置上能正确的工作,使用11.2.0.2或者更高版本的grid。

广播必须在任何VLAN上配置上工作,被公有和私有网卡所使用。

在Grid 11.2版本,每个集群成员节点,Oracle mDNS守护进程,在所有网卡上使用组播来于集群中的其他节点通信。

在Grid 11.2.0.2或者更高版本中,组播需要私有的连接。由于这个原因,最小情况,你必须为集群开启组播:

  • 在广播域定义为私有连接
  • IP地址的子网范围从 224.0.0.0/24到 230.0.1.0/24

你不需要通过路由器来启用组播通信

 

NIC相互联系指导:

 

最优的NIC互联设置可以更加驱动的不同来使用。考虑下列指导:

  • 在最快的PCI总线上配置连接的NIC。
  • 确保所有节点上NIC名称和插槽是相同的
  • 定义流控制:receive=on, transmit=off
  • 定义NIC支持的全比特速率
  • 确保兼容性交换机设置:

— 如果802.3ad在NIC上使用,其必须在交换机上使用和支持。

–最大传输单元(MTU)在NIC和交换机直接应该相同

  • 驱动程序设置可以在软件发布间更改。

 

不正确的网卡和交换机配置用来互联,会导致性能退化,还可能引起节点剔除和节点围栏。需要NIC设备和交换机自动协商来达到一个最高支持的位速率。流控要在接收上打开。依赖聚合模式的使用,在交换机上可能需要更专业的支持。同步交换机和网卡配置是非常重要的。

一个错误或有故障的互联可能导致各种问题,例如:

  • 丢包或丢片
  • 缓冲区溢出
  • 数据包重组失败或超时
  • 产生 Tx/Rx错误

 

使用冗余互联:

  • 多个网卡可以被配置来给冗余互联使用

–集群从1到4个高可用的IP地址上创建

  • 最优的NIC互联设置可以更加驱动的不同来使用。考虑下列指导:

–在最快的PCI总线上配置连接的NIC。

–确保所有节点上NIC名称和插槽是相同的

–定义流控制:receive=on, transmit=off

–定义NIC支持的全比特速率

–确保兼容性交换机设置:

— 如果802.3ad在NIC上使用,其必须在交换机上使用和支持。

–最大传输单元(MTU)在NIC和交换机直接应该相同

–驱动程序设置可以在软件发布间更改。

 

你可以使用oifcfg setif命令在安装期间或者安装之后,为冗余互联定义多个网卡,通过分类网卡作为私有的。当这样做后,Oracle 集群创建1到4个(取决于你定义的网卡数目)高可用IP地址,Oracle数据库和ASM实例使用来确通信的保高可用和负载均衡。

Oracle软件[包含RAC,ASM,ASCF,11.2.0.2或更高版本],默认情况下,使用这些HAIP地址来进行传输,允许通过提供这些集群互联的网卡配置来负载均衡。如果一个定义的集群互联网卡故障或者不能通信,那么Oracle集群会将相应的HAIP地址移动到仍然工作的网卡上。

 

 

互联链路聚合:

  • 通过Active/Standby配置来高可用,链路聚合可以被用来增加冗余度。
  • 通过Atcive/Atcive配置来高可用,链路聚合可以增加带宽提升性能

 

链接聚合设计到绑定2个或者更多的物理网卡到一个单独的逻辑”bonded”接口。绑定的接口的行为依赖于完成聚合的配置,模式和驱动。

 

一个经常使用的高可用模式是 Active/Standby 聚合,有时也称为Active/Backup或Active/Passive 聚合。通常,只有一个网卡进行传输,其他可用的网卡被用来故障转移。一个linux上完成网卡绑定的ifconfig如下:
eth1和eth2设备是物理的网卡。bond0是一个虚拟的网卡。注意到逻辑bond0

接口列出的是MASTER,其他的2个网卡列出的是SLAVE。那个没有NOARP(eth2)的网卡是当前使用的活动网卡。注意到所有的3个网卡打印出相同的2层或者MAC地址,和IP地址。此案例中,在所有NIC设备上的现存传输状态,是因为过去的拓展时间和故障。

注:在安装Oracle 集群产品期间,需要根据提示给互联接口提供bond0的值。

 

另外一种常用的配置是,使用IEEE 802.3ad标准完成 Active/Active配置的链路聚合。这个方法涉及到使用2个物理网卡,并行的提高带宽以超过单个网卡的限制。这是非常重要的,如果在NIC层使用了 802.3ad,交换机必须也支持和配置为802.3ad。错误的配置会导致差的性能和接口重置或者”端口漂移”。另一种可选的是考虑一个网卡有很高的带宽,例如10Gb的以太网。Infiniband也可以被互联使用。

 

链路聚合有被称为 “NIC teaming”,“NIC bonding”,”port trunking”,“EtherChannel,” “Multi-Link Trunking (MLT),” “Network Fault Tolerance (NFT),” and “link aggregate group (LAG)”。链路聚合通常被单独的交换机限制。多个交换机解决方案,包含“Split Multi-Link Trunking (SMLT),” “Distributed Split Multi-Link Trunking(DSMLT),”和 “Routed Split Multi-Link Trunking (RSMLT).”

bond0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4inet addr:XXX.XXX.XXX.YYY Bcast:XXX.XXX.XXX.255
Mask:255.255.252.0

UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1

RX packets:7224794 errors:0 dropped:0 overruns:0 frame:0

TX packets:3286647 errors:1 dropped:0 overruns:1 carrier:0

collisions:0 txqueuelen:0

eth1 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4

inet addr:XXX.XXX.XXX.YYY Bcast:XXX.XXX.XXX.255

Mask:255.255.252.0

UP BROADCAST RUNNING NOARP SLAVE MULTICAST MTU:1500 Metric:1

RX packets:3573025 errors:0 dropped:0 overruns:0 frame:0

TX packets:1643167 errors:1 dropped:0 overruns:1 carrier:0

collisions:0 txqueuelen:100

Interrupt:10 Base address:0x1080

eth2 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4

inet addr:XXX.XXX.XXX.YYY Bcast:XXX.XXX.XXX.255

Mask:255.255.252.0

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

RX packets:3651769 errors:0 dropped:0 overruns:0 frame:0

TX packets:1643480 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

Interrupt:9 Base address:0x1400

 

 

 

互联聚合:多个交换机:

  • 冗余的交换机连接到一个交换机中继器可以用来增加高可用设计。
  • 这是配置互联的最佳实践

 

在这个配置中,只支持 Active/Standby模式,这样就完成了一个HA设计。

一节标准的聚合解决方案包括:

  • Cisco EtherChannel based on 802.3ad
  • AIX EtherChannel
  • HPUX Auto Port Aggregation
  • Sun Trunking, IPMP, GLD
  • Linux Bonding (only certain modes)
  • Windows NIC teaming

 

虚拟LAN(VLAN)被支持互联在一个共享交换机环境。互联应该被映射到一个单一的非路由的子网,不共享VLAN

 

 

增加互联指南:

 

UDP socket buffer(rx):

  • 默认的配置适用于大多数用户。
  • 在下面情况下可以增加分配的buffer大小:

–MTU大小被增加

–netstart 命令报错

— ifconfig 命令报告丢包或溢出

Jumbo 框架:

  • 并不是一个IEEE标准
  • 对NAS/iscsi存储有帮助
  • 有网络设备的互操作性问题
  • 需要谨慎的配置和严格测试

 

最大UDP socket 接收 buffer大小的值基于操作系统。最大的值可能是128KB或者到1GB。在大多数情况下,默认的配置适合大多数用户。如果你接收的块出现丢失,这个是你第一个应该考虑的配置。MOS网站上有相关平台的最佳实践配置。三个明显的条件表明,需要变更UDP socket接收的buffer大小:当MTU大小被增加的时候,当观察到包过度分散和重组,和包丢失和溢出时。

 

Jumbo 框架 不是Oracle集群所需求的,默认也不会配置。是支持Jumbo 框架使用的;但是,必须要特别关注,其不是一个IEEE标准,并且当生产厂家不同的时候,网络设备和交换机中存在明显的差异。典型的jumbo框架的大小是9KB,但是下一次,可能不同。通信路径中的所有设备必须设置相同的值。

注:对于Oracle集群,MTU在每个节点必须相同。如果其设置的不是相同的值,一个错误消息将被发送到集群的alert日志。

 

 

14.7 软件需求(内核)

 

Linux x86(32-bit和64-bit)内核需求:

 

 

Linux 分布 需求
OEL OEL 4 Update 7, kernel 2.6.9或更高OEL 5 Update 2, kernel 2.6.23或更高(32-bit)OEL 5 Update 2, kernel 2.6.19或更高(64-bit)OEL 5 Update 5, with Unbreakable EnterpriseKernel for Linux, kernel 2.6.32-100.0.19 或更高(64-bit)
RHEL RHEL 4 Update 7, kernel 2.6.9或更高RHEL 5 Update 2, kernel 2.6.18或更高RHEL 5, Update 5, with Unbreakable EnterpriseKernel for Linux, 2.6.32或更高(64-bit)
Asianux Asianux Server 3, Service pack 2
SUSE linux SUSE 10, kernel 2.6.16.21或更高SUSE 11, kernel 2.6.27.19或更高

 

为了安装 Oracle Grid,确保你的内核版本和包满足上面的列表。如果你想安装Oracle 数据库或者RAC,参考Oracle 安装指导,来决定你必须要安装的额外的包。

 

 

32-位软件所需求的包:

Linux X86 中Asianux Server 3, OEL 5, 和 RHEL 5 上Oracle 32-bit Grid 和RAC的PRM需求

binutils-2.17.50.0.6compat-libstdc++-33-3.2.3elfutils-libelf-0.125elfutils-libelf-devel-0.125glibc-2.5-24glibc-common-2.5glibc-devel-2.5glibc-headers-2.5gcc-4.1.2gcc-c++-4.1.2

kernel-headers-2.6.18

libaio-0.3.106

libaio-devel-0.3.106

libgcc-4.1.2

libgomp-4.1.2

libstdc++-4.1.2

libstdc++-devel-4.1.2

make-3.81

sysstat-7.0.2

unixODBC-2.2.11

unixODBC-devel-2.2.11

ksh-20060214

如果你在上述系统上准备安装数据库或RAC,你需要安额外装列表中的包。可以使用下列命令来检查这些包是否被安装:

rpm –qa | grep package_name

使用下列命令来将那些缺失的包安装:

rpm –ivh package_name

 

64位软件需求的包:

Linux X86 中Asianux Server 3, OEL 5, 和 RHEL 5 上Oracle 64-bit Grid 和RAC的PRM需求

compat-libstdc++-33-3.2.3compat-libstdc++-33-3.2.3 (32 bit)elfutils-libelf-0.125elfutils-libelf-devel-0.125gcc-4.1.2gcc-c++-4.1.2glibc-2.5-24glibc-2.5-24 (32 bit)glibc-common-2.5glibc-devel-2.5

glibc-devel-2.5 (32 bit)

glibc-headers-2.5

unixODBC-2.2.11 (32 bit)

unixODBC-devel-2.2.11 (32 bit)

libaio-devel-0.3.106 (32 bit)

libaio-0.3.106

libaio-0.3.106 (32 bit)

libaio-devel-0.3.106

libgcc-4.1.2

libgcc-4.1.2 (32 bit)

libstdc++-4.1.2

libstdc++-4.1.2 (32 bit)

libstdc++-devel 4.1.2

make-3.81

sysstat-7.0.2

unixODBC-2.2.11

unixODBC-devel-2.2.11

ksh-20060214

binutils-2.17.50.0.6

对于64位的上述系统来说,上面列出的包必须被安装。

注意:如果是打上补丁11.2.0.2那么除了gcc-32bit-4.3,其他的32位包都不需要安装。但是如果是11.2.0.1,所有列出的32位和64位包都需要。

 

14.8 oracle验证配置 RPM

 

如果是使用OEL或者 红帽系列的linux,你可以使用 ORACLE 验证配置的RPM包来完成预安装配置任务。当其被安装时,这个和PRM会做下列事情:

  • 自动的安装oracle数据库和Grid所有需要的额外的包。
  • 创建一个oracle用户,和oraInventory(oinstall)和OSDBA(dba)组
  • 基于Oracle验证配置模块中的建议参数值,来设置和验证sysctl.conf中的参数,启用参数,用户限制和驱动参数。

如果你使用Oracle linux 4.7 或者更高版本,或者Oracle Linux 5.2,Oracle 验证配置 RPM已经包含在安装介质中。可以使用以下步骤来订阅 Oracle 验证配置RPM:

1.完成完整的默认OEL工作台安装,或者默认红帽linux企业版安装。

2.使用Liunx 网络进行注册,默认情况下,你可以为操作系统和硬件组成最新的渠道。

3.登陆到安全的Linux网络:https://linux.oracle.com. (ULN)

4.点击系统标签,在系统配置列表中,选择注册服务。系统详细信息窗口打开并显示服务器的订阅。

5.在可用的通道列表中,选择_base和_patch来适应你的OEL系统。例如,如果你的系统是OEL 5 X86_84,那么选项下列:

-OEL5 安装介质拷贝(X86_64)

-OEL 5 patch(X86_64)

6.点击订阅

7.在一个终端会话中,使用root运行下列命令:

up2date --nox --show-channels

你会看到Oracle软件的通道列表,例如:

el5_u5_i386_baseel5_u5_x86_64_patch

8.使用root打开一个终端会话,然后使用up2date安装oracle 验证RPM,命令如下:

up2date --install oracle-validated

会自动的创建标准oracle安装的用户和用户组,设置所需要的内核参数。

9.在集群中所有服务器上检查1到8步。检查 oracle验证配置RPM日志文件来查看配置变更:

/var/log/oracle-validated/results/orakernel.log

oracle 验证RPM只会对oracle用户进行内核参数的设置和资源限制。如果使用其他的用户,你必须手动的对其他的用户进行设置。除此之外,用户和组的创建,使用的是下一个可以使用的ID号。所以在集群上运行Oracle验证RPM,可能会出现节点上用户和组的ID号不一致的情况,这个不一致的情况就会引起安装失败。为了避免这个情况,在所有节点上对ID号进行检查,确保所有的ID号都是一致的。

 

14.9 Oracle 预安装 RPM

Oracle RDBMS 预安装RPM包(oracle-rdbms-server-11gR2-preinstall)被设计来给OEL6帮助安装Oracle数据库。你完全可以使用这个包来进行预安装的配置。可以从ULN火中oracle公共的yum仓库来进行。

这个包以前被称为 oracle-validated。对于 OEL6和更高的版本,这个包的名称发生了变化。在6上不是”oracle-validate” RPM,在5上不是”oracle-rdbms-preinstalll” RPM。这2个包的key是不一样的,新的安装包替代了之前最大的测试安装,为Oracle11g R2安装使用新的最小安装集。在新的预安装RPM配置上OEL6后,你可以立即运行OUI来进行数据库安装。

这个包只在X86_64上有效。具体的,包进行下来操作:

  • 通过yum完成数据库安装所需要的,对应的软件包
  • 创建oracle用户和oinstall,dba组。

 

14.10 创建用户和组

 

  • 在每个节点上创建oracle软件安装组
  • 在每个节点上的组ID必须一致
groupadd –g 501 oinstall
  • 在每个节点上创建用户
  • 用户ID在每个节点上必须一致,并且属于主组
  • 大多数产品属于一个用户oracle,但是每个产品也可以属于不同的用户
# useradd –u 501 –g oinstall oracle# useradd –u 502 –g oinstall grid

一个操作系统组需要被创建,并将被分配给Oracle Central Inventory(oraInventory)。oraInventory包含了一个在服务器上所有Oracle产品安装的 oracle 家目录的注册表。其被设计来共享许多产品。其中也包含了在安装过程中的安装日志和跟踪文件。建议的操作系统组名是oinstall。在集群安装中,所有节点上的组ID号必须一致

一般地,一个被称为oracle的用户需要创建,所有的产品,例如集群,数据库,磁盘管理和企业工具都属于这个用户。每个产品也可以使用不同的用户。这个需求是可能的,如果不同的工作职责是负责不同的部分。在集群中,这个用户的ID号在每个节点上必须一致。

 

注:如果安装的集群包含数据库和其他的oracle产品,可以考虑创建下列组:dba和oper。

 

创建组和用户的例子:

创建组:# /usr/sbin/groupadd -g 1000 oinstall# /usr/sbin/groupadd -g 1100 asmadmin
# /usr/sbin/groupadd -g 1200 dba

# /usr/sbin/groupadd -g 1201 oper

# /usr/sbin/groupadd -g 1300 asmdba

# /usr/sbin/groupadd -g 1301 asmoper

创建用户:

# /usr/sbin/useradd -u 1100 -g oinstall -G asmdba,dba,

\ asmoper oracle

# /usr/sbin/useradd -u 1100 -g oinstall -G asmdba,dba,

\ oracle

# /usr/sbin/useradd -u 1101 -g oinstall -G asmdba,

\ asmadmin,asmoper grid

创建目录:

# mkdir -p /u01/app/grid /u01/app/oracle

# chown -R grid:oinstall /u01/app

# chown oracle:oinstall

1.使用root登陆。输入类似上面的命令创建oinstall,asmadmin和asmdba组,如果需要,还可以创建asmoper,dba和oper组。使用-g选项来指定正确的组id。这个例子创建了oracle安装组(oinstall),OSDBA,OSASM和OSOPER这些AMS组,并也从属于dba。创建了grid集群用户和一个数据库用户oracle,属于正确的组。

2.创建自用用户,输入如下命令:

# /usr/sbin/useradd -u 1100 -g oinstall -G asmdba,dba,asmoper oracle

 

如果是分开使用grid用户,还需要:

# /usr/sbin/useradd -u 1100 -g oinstall -G asmdba,dba, oracle# /usr/sbin/useradd -u 1101 -g oinstall -G asmdba,dba,asmoper grid

 

3.创建基础目录:

# mkdir -p /u01/app/grid /u01/app/oracle# chown -R grid:oinstall /u01/app# chown oracle:oinstall /u01/app/oracle
# chmod 775 /u01/app

 

14.11 Grid 用户的shell配置

 

  • 在每个节点的/etc/security/limits.conf文件中增加:
grid soft nproc 2047grid hard nproc 16384grid soft nofile 1024
grid hard nofile 65536

grid soft core unlimited

grid soft core unlimited

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft core unlimited

oracle soft core unlimited

 

  • 在每个节点中的/etc/pam.d/login文件中增加:
session required pam_limits.so

Pluggable认证模块(PAM)是Linux上一种灵活的用户认证,提供了一系列库模块例如login和su可以使用验证。其优点是新的认证方案可以直接嵌入到PAM中使用;你不用重写那些依赖的认证模块。PAM提供了账户管理,认证管理,密码管理和会话管理。/etc/sercurity/limits.conf文件是 PAM中的一个模块pam_limits的配置文件。

Oracle建议增加Grid用户的硬件限制和最大进程(nproc),最大打开文件的值(nofile)。也就是考虑到软件的默认限制值是合适的。

注:通常情况下oracle用户是用来安装数据软件的,oracle和grid用户的限制值都要在/etc/sercurity/limits.conf中配置

 

 

在每个节点中的/etc/profile中需要配置如下:

if [ $USER = "oracle" ] || [ $USER = "grid" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -u 16384
ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

 

Linux中的ulimit命令同了可用的shell进程资源。使用下列命令来检查配置:

ulimit -a

 

一个单一用户可以使用的最大进程数被-u选项所控制,最大打开文件描述符被-n选项控制。Oracle建议这些值应该比默认值更大。

注:如果使用的用户不是oracle,考虑在/etc/profile中增加那些集群用户。

 

 

14.12 Grid 安装

 

1.使用grid用户进入到软件目录中,运行runInstaller命令来执行OUI。在此处跳过软件更新

2.选择安装和配置集群,然后点击下一步。

在安装类型中选择高级安装,这个有更大的灵活性配置:

  • OCR和仲裁文件的共享存储
  • 网络选项例如GNS
  • 故障隔离(IPMI)

 

3.如果选择基本安装,这个过程会很短:

4.在语言界面选择产品的语言,然后grid Plug and Play 页面会显示:

 

你必须指定一个集群名称。这个名称应该是子域中的唯一名称。如果使用了 Grid Control,那么在Grid Control管理范围内必须是唯一的。

SCAN是被客户端用来连接到集群的单一客户端地址。SCAN的域名可以被3个IP地址注册,使用DNS或者GNS(grid naming service)。SCAN的地址必须和集群中的VIP地址在同一个网段。SCAN在共同的网络中必须是唯一的。默认使用1521端口,要避免端口冲突。

如果你指定了一个GNS子域,SCAN默认为clustername-scan.GNSdomain。例如:如果你在racnode01服务器上安装,集群名称为cluster01并且GNS domain是cluster01.example.com,那么SCAN是cluster01-scan. cluster01.example.com。

如果不使用GNS,SCAN地址必须在DNS中定义并且被此地址解析。最后,你必须提供这些地址给GNS,这些地址必须被DNS解析。

 

 

5.在集群节点信息页面,公共主机名和虚拟主机名被定义。在之前,VIP地址应该被DNS或者本地host文件解析。点击add来增加公共节点名和VIP主机名。

 

如果只想权限了GNS,那么在集群的子域中是使用DHCP的,那么配置会很简单。不用为每个节点配置VIP名称,因为VIP名称被集群框架使用DHCP自动地分配。

SSH 确认可以自动的进行节点间 软件所有者的用户ssh通信配置。当SSH连通性通过时,点击下一步。

 

 

6.指定网卡的使用:

在这个界面可以指定集群节点使用的网卡,配置通信。你必须为公有网络和私用网络选择一个网卡。确保选择的网卡能够支持集群和RAC网络联系的流量。完成之后,点击下一步。

7.存储选项:

在这个页面,第一个选项是使用ASM来存储OCR和仲裁盘,这个是11gR2的一个新特性。如果你选择了这个选项,但是AMS没配置的话,OUI会加载ASM配置一个磁盘组来支持如图所示的选项。

在冗余度上,如果对OCR和仲裁文件选择普通冗余,那么需要3个磁盘的一个磁盘组。如果是高度冗余,那么需要5个磁盘的一个磁盘组。默认情况下,每个磁盘组中的磁盘是本身的故障组,并且仲裁盘放置到不同的故障组中。OCR是和数据库文件类似的方式被存储。

另外的一个存储选项是使用共享的文件系统存储。合适的文件系统包含支持的集群文件系统,例如:OCFS2或者NFS。如果你选择了这种方式,你需要为OCR和仲裁盘提供一个集群文件系统或NFS目录。

 

8.IPMP为硬件和固件提供了一些普通的接口,管理员可以使用来监控系统健康和管理系统。在11GR2之后,集群整合了IMPI来提供故障解决支持和确保集群完整性。

你必须有下列硬件和软件配置来启用IPMI来管理集群节点:

  • 每个节点成员需要一个BMS(Baseboard Management Controller)运行固件,兼容IPMI1.5版本,提供IPMO本地的网络和配置为远程控制。
  • 每个集群成员节点需要安装IPMI驱动
  • Oracle建议配置单独的管理网络给IPMI使用,也可以使用共享网络
  • 每个节点的BMC端口必须能连接到IPMI管理网络。

如果你打算使用IPMI,在提示安装的时候需要提供管理员的账号和密码。

注意:IPMI驱动必须在每个节点预先安装,要其可用需要重启系统。

 

 

9.权限组:

 

在操作系统组页面,你必须为ASM指定 Grid的所有者和其对应的操作系统认证。例如图示中的asmdba是ASM数据库的管理员组(OSDBA),asmoper是ASM实例管理员操作者组(OSOPER),asmadmin是ASM实例管理组。点击下一步。

10: 安装路径:

在这个页面显示了安装路径。输入oracle软件的位置。软件位置必须不同于 ORACLE base目录。

 

11.预安装检查:

这个页面可以使用修复按钮来对一些调节进行修复。在每个节点上使用root用户运行其提供的脚本即可

 

12.安装:

在总结页面会出项之前的配置信息。如果信息是正确的,点击完成开始软件安装步骤。可以在监控安装进度。

 

13.完成安装

使用root用户运行提示的脚本。如果是第一次安装oracle软件的话,还有orainstRoot.sh脚本,在所有节点运行完毕后,点击下一步。

 

14 验证安装:

执行crsctl命令来确认所有资源知否运行。

crsctl stat res -t

 

 

14.13 在安装之后修改 集群二进制文件

 

在安装之后,如果你需要修改Oracle集群配置,那么你必须锁住Grid home。例如,你想应用一次性补丁,或者想修改一个Oracle Exadate 配置来运行IPC在互联的时候使用RDS来替代默认的UDP,那么你必须锁住grid home。解锁home使用下面的步骤:

1.使用root用户,变更目录到grid_home/crs/install,grid的home目录,使用

rootcrs.pl -unlock -crshome /u01/app/11.2.0/grid

例如,如果home 目录是/u01/app/11.2.0/grid,使用:

# cd /u01/app/11.2.0/grid/crs/install# perl rootcrs.pl -unlock -crshome /u01/app/11.2.0/grid

2.变更到grid软件所有者用户,使用下面命令来重连接:

 su – gridmake -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk ipc_rds ioracle

这个例子就是将使用的协议从UDP改变到IPC

3.使用下列命令解锁grid home目录和重启集群:

# perl rootcrs.pl -patch

4.在每个节点上重复进行1-3步骤。

 

14.14 配置ASM 磁盘组

 

CREATE DISKGROUP 命令用来创建磁盘,分配一个或者多个磁盘到磁盘组,并在第一次创建时挂载磁盘组。如果你想在ASM实例启动的时候自动挂载磁盘组,你必须在ASM实例的pfile中增加 ASM_DISKGROUP 初始化参数指定磁盘组的名称。如果你使用spfile,磁盘组名称会自动的增加到初始化参数中。

语法:

CREATE DISKGROUP diskgroup_name[ { HIGH | NORMAL | EXTERNAL } REDUNDANCY ]{ [ FAILGROUP failgroup_name ]DISK qualified_disk_clause [, qualified_disk_clause]...
} ...

[ ATTRIBUTE { 'attribute_name' = 'attribute_value' }... ]

;

qualified_disk_clause ::= search_string

[ NAME disk_name ]

[ SIZE size_clause ]

[ FORCE | NOFORCE ]

 

例子:

CREATE DISKGROUP FRA NORMAL REDUNDANCYDISK 'ORCL:SDD11' NAME 'FRA_DISK1' SIZE 977 M,'ORCL:SDD12' NAME 'FRA_DISK2' SIZE 977 M;

 

CREATE DISKGROUP 命令也可以使用数据管理工具来运行,例如ASMCA,OEM和ASMCMD。

CREATE DISKGROUP 语句有下列语句:

  • REDUNDANCY 子句

REDUNDANCY 子句可以让你定义磁盘组的冗余等级。NORMAL REDUNDANCY 至少需要存在2个故障组。默认情况下NORMAL REDUNDANCY 为所有的ASM 文件提供了双倍镜像,除了控制文件外(3份镜像)。其可以容忍磁盘组丢失一个故障组。

HIGH REDUNDANCY 需要至少3个故障组。ASM保存3个镜像,每个文件是其他2个的镜像拷贝。其可以容忍丢失2个故障组。

EXTERNAL REDUNDANCY 表明ASM不为磁盘组提供任何的冗余。磁盘组中的磁盘必须有冗余(例如,使用存储),或者你可以在磁盘故障的时候忍受磁盘组的丢失。如果你指定了 EXTERNAL REDUNDANCY ,你不能指定FAILGROUP子句。

  • FAILGROUP 子句

使用这个子句来指定一个或多个故障组的名称。如果你忽略了这个子句,并且你指定了NORMAL或者HIGH REDUNDANCY,那么ASM自动地将磁盘组中的每个磁盘增加到其本身的故障组。它隐式的故障组名称和NAME子句中的一样。

  • DISK 子句

使用这个子句来为每个故障组指定一个或多个磁盘。

对于增加到磁盘组的每个磁盘,指定操作喜用依赖搜索字符串,这样ASM可以使用其来找到磁盘。search_string必须是用来发现磁盘的初始化参数ASM_DISKSTRING的一个子集。如果 search_string没用指定到ASM用户读写访问的任何磁盘,那么ASM 返回一个错误。如果指定的一个或多个磁盘已经被分配到不同的磁盘组,Oracle 数据库放回一个错误,除非你指定FORCE。对于每个有效的候选磁盘,ASM格式化磁盘头,来表明它是新磁盘组的一个成员。

NAME选项子句只在如果search_string指定到一个单独磁盘时有效。其为磁盘指定了一个操作系统独立名称。这个名称可以最大为数子和字母组成的30个字符。第一个字符必须是字母。如果你通过ASMLib为磁盘分配了一个标签,忽略了这个子句,那么这个标签被用作为磁盘名称。如果你没使用ASMLib,那么ASM从diskgroup_name_nnnn创建一个默认的名称,nnnn是磁盘号。在随后的ASM操作中,你可以使用这个名称关联到磁盘。

使用SIZE子句来指定磁盘的大小。如果你指定的大小超过了候选磁盘的大小,那么ASM将返回一个错误。如果你指定的大小比磁盘小,就限制了ASM将使用的磁盘空间。如果你忽略了子句,ASM试图通过程序来决定磁盘的大小。

你可以为每个磁盘指定FORCE或者NOFORCE

如果你想增加磁盘到磁盘组,即使这个磁盘已经是不同磁盘组的成员,可以指定FORCE。使用这个子句要小心,因为使用FORCE这个方式可能会损坏现有的磁盘组。为了这个子句被生效,磁盘必须已经是一个磁盘组的成员,并且这个磁盘不能作为挂载磁盘组的一部分。

如果你想ASM在磁盘已经是其他磁盘组成员时,返回错误,可以使用NOFORCE。NOFORCE是默认选项。

  • ATTRIBUTE子句

使用这个属性为磁盘组设置属性值。ASM磁盘组属性将在后面的章节描述。

 

14.15 使用ASMCMD创建一个新的磁盘组

 

ASMCMD 允许一个XML配置文件来创建个变更磁盘组

  • mkdg命令使用的XML的例子:
<dg name=“DATA” redundancy=“normal”><fg name=“fg1”><dsk string=“/dev/sda1” /><dsk string=“/dev/sdb1” />
</fg>

<fg name=“fg2”>

<dsk string=“/dev/sdc1” />

<dsk string=“/dev/sdd1” />

</fg>

<a name=“compatible.asm” value=“11.2”/>

<a name=“compatible.rdbms” value=“11.2”/>

</dg>

 

这个XML文件为mkdg命令指定了磁盘组的名称,冗余度,属性和磁盘路径。冗余度是一个一般的参数;默认是普通冗余。对于不同的冗余类型,磁盘被生成到一个故障组。在这个情况下,如果故障组不被指定,每个磁盘将在自身的故障组。

在创建磁盘组的时候,可以设置磁盘组的属性值。一些属性,例如AU_SIZE和SECTOR_size,只能在磁盘组创建的时候指定。

下面的例子是chdg使用内嵌的XML配置。这个XML变更磁盘组的名称为DATA。FG1故障组合DATA_001磁盘被删除。/dev/disk5被增加到FG2故障组。再平衡的等级被设置为3。

ASMCMD> chdg '<chdg> <dg name="DATA" power="3"> <drop> <fgname="FG1"> </fg> <dsk name="DATA_0001" /> </drop> <add> <fgname="FG2"> <dsk string="/dev/disk5"/> </fg> </add> </chdg>'

 

14.16 使用ASMCA创建一个磁盘组

 

 

在这个例子中,前2个磁盘被置为data1故障组,后2个磁盘被置为data2故障组。头状态是CANDIDATE,说明磁盘是第一次被创建。PROVISIONED和CANDIDATE类似,只是多出了一些平台的特殊操作。FORMER表明磁盘是磁盘组的成员,并且被干净的删除。

磁盘发现的路径是ASM_DISKSTRING初始化参数设置。这个参数可以用逗号分隔,包含多个搜索路径。默认ASM_DISKSTRING参数为空。默认的发现路径适合大多数的操作系统平台。一个磁盘发现字符串限制了搜索的目录,可以减少发现的时间,但是磁盘发现字符串必须包含现有磁盘组的所有磁盘成员。默认的字符串允许ASM发现哪些被ASMLib工具oracleasm初始化的磁盘。

 

点击查看告警选项,可以看到如图所示的页面。在这个页面,你可以设置磁盘组属性:分配单元大小和兼容性参数

ASM Compatibility 设置 COMPATIBLE.ASM 属性。对于ASM 11g Oracle 11g,当使用CREATE DISKGROUP语句,在ASMCMD中的 mkdg命令和OEM创建磁盘组页面, 是默认的COMPATIBLE_ASM 属性是10.1。当使用asmca创建磁盘组,这个默认值是11.2.0。 你可以设置这个值是一个最新的主版本和小版本号。例如你可以指定兼容性为 “11.1”,“11.2”,oracle假设那些未指定的版本号是0。

数据库的兼容性为任何数据库实例设置了最新使用磁盘组的版本等级。这个是COMPATIBLE.RDBMS属性。

要使用ADVM卷,ADVM兼容性必须设置为11.2.0或者更高,并且ASM兼容性必须是11.2.0或更高、ADVM兼容性栏位设置COMPATIBLE.ADVM属性。

注意:提高磁盘组兼容性的值是一个不可逆的操作。

 

14.17 使用OEM创建一个磁盘组

在自动存储管理(ASM)的标签中选项磁盘组页面,可以完成相同的功能:

注:EM不是grid中的一部分,你需要安装EMDC。

 

和ASMCA工具类似,你可以在创建的时候指定磁盘和故障组。点击配置标签可以更改磁盘发现字符串。

14.18 总结

 

在这个课程中,你可以学到如何:

  • 为Grid 组件进行预安装任务
  • 安装Grid组件
  • 验证安装
  • 配置ASM磁盘组

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号