Oracle ACFS Support on Linux詳解

最近准备使用Oracle ACFS在RAC环境下搭建OGG-HA,于是在RedHat6.5 64位系统上搭建了一套Oracle11.2.0.4.0 RAC,发现ACFS无法使用。之后查找大量资料,发现11G ACFS并不支持RedHat6.5,11.2.0.4.0只支持到RedHat6.3。接下来介绍一下OracleACFS Support on Linux的信息。

不支持ACFS的描述

[[email protected] ~]$cat /etc/issue|sed –n ‘1p’
Red Hat Enterprise Linux Server release 6.5(Santiago)
[[email protected] ~]$ lsmod | grep acfs                 #不支持的OS上
 
[[email protected] ~]$cat /etc/issue|sed –n ‘1p’
Red Hat Enterprise Linux Server release 6.2(Santiago)
[[email protected] ~]$lsmod| grep acfs                    #支持的OS上
oracleacfs          1670360  0
oracleoks             321904  2 oracleacfs,oracleadvm

从上可以看到对于不支持ACFS的OS Kernel模块上是没有ACFS相关信息的。接下来我们看看Cluster服务上的ACFS相关的服务

[[email protected] ~]$ crs_stat -t -vora.registry.acfs           #不支持的OS上
CRS-0210: Could not find resource ‘ora.registry.acfs’.
 
[[email protected] ~]$ crs_stat -t -vora.registry.acfs            #支持的OS上
Name          Type     R/RA  F/FT   Target    State    Host         
--------------------------------------------------------------------------------------- 
ora....ry.acfs    ora....fs.type 0/5    0/  ONLINE   ONLINE    note1  
[[email protected] ~]$crsctl status resora.drivers.acfs –init        #支持的OS上
NAME=ora.drivers.acfs
TYPE=ora.drivers.acfs.type
TARGET=ONLINE
STATE=ONLINE on note1

在安裝Grid Infrastructure执行root.sh脚本的时候创建ACFS注册表资源(ora.registry.acfs)。此过程会初始化集群内节点的ACFS加载注册表,若初始化成功,ora.registry.acfs资源状态为ONLINE,否则初始化失败。对于不支持的OS都会初始化失败。可以通过以下方法验证:

[[email protected] ~]$ acfsdriverstate -orahome$ORACLE_HOME supported
ACFS-9200: Supported
 
[[email protected] ~]$ acfsdriverstate-orahome $ORACLE_HOME supported
ACFS-9459: ADVM/ACFS is not supported on this OSversion: ’unknown’
ACFS-9201:Not Supported

acfsdriverstate是一个shell脚本,通过调用$ORACLE_HOME/lib/acfstoolsdriver.sh脚本,之后由acfstoolsdriver.sh调用$ORACLE_HOME/lib/osds-*.pm脚本进行验证。其中osds-acfslib.pm的perl脚本就是用于验证支持的OSPlatforms及对应的版本。接下来我们来看看这个脚本(由于本人对perl不了解,也只是能看懂一点)

# Testing for "oraclelinux_release", etcprevents us from dropping
# into the code below from other RH based distroslike CentOS, for example.
if ((defined($release)) &&               #Redhat or OEL if defined
     (($release =~ /^redhat-release/) ||     # straight RH
      ($release =~ /^enterprise-release/) ||   # Oracle Enterprise Linux
      ($release =~ /^oraclelinux-release/)))    # Oracle Linux

这里提到基于RedHat的发行版,如CentOS,Oracle Linux等都是基于RedHat开源源码编译的OS是支持ACFS的,于是就有大神此基础上对脚本添加了对CentOS的支持如下:

if ((defined($release)) &&                #Redhat or OEL if defined
     (($release =~ /^redhat-release/) ||       # straight RH
       ($release=~ /^enterprise-release/) ||   # Oracle Enterprise Linux
       ($release =~ /^centos-release/)||      #Centos Linux
      ($release =~ /^oraclelinux-release/)))   # Oracle Linux

看到这里会不会有朋友灵感爆发,尝试去修改osds-acfslib.pm里支持内核版本的相关信息呢?对的,笔者就尝试过,但对于笔者这种菜鸟来说,肯定是以失败告终的。接下来再进一步分析失败的原因:

[[email protected] redhat6.2 ~]#/u/app/11.2.0/grid/bin/acfsroot version_check   #支持的OS上
ACFS-9316: Valid ADVM/ACFS distribution mediadetected at: ‘
/u/app/11.2.0/grid/install/usm/EL6/x86_64/2.6.32-220/2.6.32-220.el6-x86_64/bin‘
 
[[email protected] redhat6.5 ~]#/u/app/11.2.0/grid/bin/acfsroot version_check    #不支持的OS上
ACFS-9459: ADVM/ACFS is not supported on this OSversion: ’unknown’
ACFS-9319:Unknown OS kernel version ’26.32-431.el6.x86_64’detected
ACFS-9320:Missing file: ’oracleoks.ko’
ACFS-9320:Missing file: ’oracleacfs.ko’
ACFS-9317: No ADVM/ACFS distribution media detectedat location: ‘
/u/app/11.2.0/grid/install/usm‘

到这里原因应该很清楚了,/u/app/11.2.0/grid/install/usm目录下会有相应的内核支持目录,这是安装GridInfrastructure时建立的,详情请查看grep “acfs”/u/app/oraInventory/logs/installActions*.log的相关信息,对于不支持的OS Platforms及内核版本是不会建立的,里面包含了ACFS驱动模块(oracleoks.ko,oracleadvm.ko oracleacfs.ko)。因此我们可以通过/u/app/11.2.0/grid/install/usm目录查看ACFS支持的Linux操作系统不同的内核类型(这里我列举2个Oracle版本的):

11.2.0.3.0版本:

/u/app/11.2.0/grid/install/usm目录下有(cmds,EL5,EL6,SLES10 ,SLES11)五个子目录

[[email protected] redhat6.2 usm]# tree -L 3 EL5 EL6
EL5
|-- i386
|   `--2.6.18-8
|       |--2.6.18-8.el5-i686
|       |--2.6.18-8.el5PAE-i686
|       `--2.6.18-8.el5xen-i686
`-- x86_64
    |--2.6.18-8
    |   |-- 2.6.18-8.el5-x86_64
    |   `-- 2.6.18-8.el5xen-x86_64
    |--2.6.32-100
    |   `-- 2.6.32-100-x86_64
    `--2.6.32-200
        `--2.6.32-200-x86_64
EL6
`-- x86_64
    |--2.6.32-100
    |   `-- 2.6.32-100-x86_64
    |--2.6.32-200
    |   `-- 2.6.32-200-x86_64
    `--2.6.32-71
        `--2.6.32-71.el6-x86_64

11.2.0.4.0版本:

/u/app/11.2.0/grid/install/usm目录下有(cmds,Novell,Oracle)三个子目录

[[email protected] usm]# tree -L 3 Oracle Novell
Oracle
├── EL5
│   └── x86_64
│      └── 2.6.18-8
├── EL5UEK
│   └── x86_64
│      ├── 2.6.32-100
│      ├── 2.6.32-200
│      ├── 2.6.32-300
│      ├── 2.6.32-400
│      ├── 2.6.39-100
│      ├── 2.6.39-200
│      ├── 2.6.39-300
│      └── 2.6.39-400
├── EL6
│   └── x86_64
│      ├── 2.6.32-220
│      ├── 2.6.32-279 #RedHat 6.3
│      └── 2.6.32-71
└── EL6UEK
    └──x86_64
        ├──2.6.32-100
        ├──2.6.32-200
        ├──2.6.32-300
        ├──2.6.32-400
        ├──2.6.39-100
        ├──2.6.39-200
        ├──2.6.39-300
        └──2.6.39-400
Novell
├── SLES10
│   └── x86_64
│      └── 2.6.16.21-0.8
└── SLES11
    └──x86_64
        ├──2.6.27.19-5
        ├──2.6.32.12-0.7
        ├──3.0.13-0.27
        └──3.0.61-0.9

然后通过命令uname –r (RedHat 6)、uname –r –i (RedHat5)确认OS是否支持ACFS。

对于以上总结:

1、若需要使用ACFS时,先规划选取可用该功能OS,避免重装,可以使用CentOS,但内核版本是必须满足支持ACFS的内核。

2、也可以使用UEK(UnbreakableEnterprise Kernel)进行更换内核。

3、要使用ACFS需要将asm的兼容性设置为11.2(alterdiskgroup data set attribute ‘COMPATIBLE.ASM‘=‘11.2‘;)

请参考:

http://docs.oracle.com/cd/E11882_01/install.112/e47689/oraclerestart.htm#LADBI999

http://docs.oracle.com/database/121/CWLIN/storage.htm#CHDCIIDD

https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=1369107.1

时间: 2024-10-09 02:10:30

Oracle ACFS Support on Linux詳解的相关文章

RHEL6.5上Oracle ACFS与Linux samba一起使用时遇到的bug

RHEL上的Oracle ACFS与linux samba一起使用时遇到的bug 一.环境介绍: cat /etc/issue的结果为: Red Hat Enterprise Linux Server release 6.5 (Santiago) Kernel \r on an \m GI的详细patch信息:仅仅安装了GI的11.2.0.4版本,没有打任何的GI psu,没有打任何的GI patch 二.问题说明: 这是一套rhel6.5的rac,使用的是Oracle GI集群软件,使用了ac

LINUX下ORACLE相关的内核参数详解

ORACLE相关的内核参数详解 1.kernel.sem [[email protected] ~]# cat /proc/sys/kernel/sem 250         32000    100         142 [[email protected] ~]#  ipcs -sl ------ Semaphore Limits -------- max number of arrays = 142 max semaphores per array = 250 max semaphor

linux(CentOS)下Mrtg的安装詳解

linux(CentOS)下Mrtg的安装詳解 MRTG非常強大,他可以監控你的服務器的一舉一動,並且用web方式呈現給你,告訴你網絡,cpu,內存,硬盤等使用狀況,但是配置起來這個軟件實在是非常麻煩. 爲了安裝這個軟件且將其配置好,我上網查了兩天資料,最後整理總結了這一份完整的出來,分享給大家,希望對大家有用.如要轉載請注明出處www.7di.net 一.前期準備(1)MRTG需要以SNMP服务为基础,所以请确保你的系统已经启用了此服务,修改SNMP的配置:#vi /etc/snmp/snmp

linux中与Oracle有关的内核参数详解

工作当中遇到oracle运行时CPU占用率达到90%以上,调小以下参数值后恢复正常. fs.file-max = 65536 net.core.rmem_default=262144 net.core.rmem_max=262144 net.core.wmem_default=262144 net.core.wmem_max=262144 在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. Linux安装文档中给出的最小值: fs.aio-max-n

Oracle 12c Cluster Health Monitor 详解

注:本文谢绝转载! 1  CHM 概述 Cluster HealthMonitor 会通过OS API来收集操作系统的统计信息,如内存,swap 空间使用率,进程,IO 使用率,网络等相关的数据. CHM 的信息收集是实时的,在11.2.0.3 之前是每1秒收集一次,在11.2.0.3 之后,改成每5秒收集一次数据,并保存在CHM 仓库中. 这个收集时间间隔不能手工修改. CHM 的目的也是为了在出现问题时,提供一个分析的依据,比如节点重启,hang,实例被驱逐,性能下降,这些问题都可以通过对C

day01_linux中与Oracle有关的内核参数详解

linux中与Oracle有关的内核参数详解 在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. Linux安装文档中给出的最小值: fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip

Oracle ErrorStack 使用和阅读详解

一.概述 在Oracle数据库运行过程中,我们经常会遇到这样或那样的错误,但是错误的提示并不具体,加大了我们在诊断问题时的难度. ErrorStack是Oracle提供的一种对于错误堆栈进行跟踪的方法,通过设置跟踪可以将一些指定错误的后台信息详细的转储出来,写入跟踪文件,帮助我们诊断问题. 备注: 1.当oracle发生关键的错误诸如:ora-600,Errorstack是自动被oracle dump写入trace文件中. 2.当你在alert.log里面看见这类错误,并提示已经产生trace文

HOWTO install Oracle 11g on Ubuntu Linux 12.04 (Precise Pangolin) 64bits

安装了Ubuntu 12.04 64bit, 想在上面安装Oracle 11gr2,网上找了好多文档都没成功,最后完全参考了MordicusEtCubitus的文章. 成功安装的关键点:install additional packages, 在link过程中处理错误的方法. 原文:http://www.makina-corpus.org/blog/howto-install-oracle-11g-ubuntu-linux-1204-precise-pangolin-64bits Before

ps aux指令詳解

linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待)2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行) 1)ps a 显示现行终端机下的所有程序,包括其他用户的程序.2)ps -A   显示所有程序.3)p