• 11gR2集群件任务角色分离(Job Role Separation)简介


       从11gR2版本开始,Oracle推荐使用不同的操作系统用户安装GI和数据库软件,例如:使用grid用户安装GI,使用Oracle用户安装数据库软件。当然,用户还是可以使用Oracle用户安装GI和数据库软件。同时,从11gR2版本开始,ASM作为GI的一部分被安装,而ASM软件是负责创建和管理ASM磁盘组的,Oracle数据库软件需要访问保存在ASM磁盘组的,所以就出现了新的问题:如何设置grid用户的权限,作为磁盘组的管理者,它应该拥有最高的权限;如何设置Oracle用户的权限,使它能够正常的访问磁盘组。
     
        Oracle的解决办法是创建不同的操作系统用户组和使用粘着位(stick bit)。首先,看一下11gR2版本中,与GI和数据库相关的操作系统用户组的功能:
    oinstall:这个组是GI和数据库软件的拥有者组。
    dba:这个组是数据库的dba组,对数据库具有最高权限。
    asmdba:这个组是ASM实例的dba组,可以启动、关闭实例,挂载、卸载ASM磁盘组。
    asmadmin:这个组是ASM的管理员组,它包含asmdba的全部权限,同时还可以增加、删除ASM磁盘、磁盘组等。
     
    在11gR2,操作系统用户grid成为了集群件(GI)的owner,并且ASM成为了集群件的一部分,所以grid用户也成为了ASM 磁盘的owner。
     
       通常有3种方式配置ASM磁盘,asmlib, 裸设备和块设备。
     
    1. asmlib
     
    配置asm 磁盘的owner和group。
     
    # /etc/init.d/oracleasm configure
     
    …..
     
    Default user to own the driver interface []: grid
     
    Default group to own the driver interface []: asmadmin
     
    ……
     
    查看ASM磁盘的设置:
     
    ls –l /dev/oracleasm/disks
     
    brw-rw---- 1 grid asmadmin 8, 33 Jul 2 18:21 DATA
     
    注意: 从linux 2.6 内核开始,块设备的权限和路径配置在重启之后不再被保留,除非使用udev 创建规则文件固定。例如块设备/dev/sda在重启之后可能变成/dev/sdb。如果使用udev,那么在添加新磁盘时,需要修改规则文件以确保设备名和权限在重启之后不发生改变。
     
       如果使用asmlib, 只需要确定作为asm 磁盘的范围,asmlib会维护磁盘的标签和权限,以便在操作系统升级后磁盘标签仍然有效。 所以,asmlib 和udev实现的功能基本是相同的。
     
    2. 裸设备。按照以下设置配置磁盘的owner和group:
     
    crw-rw---- 1 grid asmadmin 162, 1 Jul 18 21:40 /dev/raw/raw1
     
    3.块设备。按照以下设置配置磁盘的owner和group:
     
    # chown grid:asmadmin /dev/rhdiskn
     
    # chmod 660 /dev/rhdiskn
     
      接下来解释任务角色分离中oracle可执行文件的权限和group 设置。
     
      在上面的例子中,ASM磁盘的group是asmadmin,这意味着组asmadmin中的成员可以对asm磁盘进行读写操作,当然grid用户也可以。而其他用户,例如oracle,则需要通过oracle_home/bin下的oracle可执行文件访问asm 磁盘。
     
      这意味着oracle可执行文件不仅需要黏着位(stick bit),还需要是设置group 为asmadmin。当使用srvctl(srvctl start database/instance)启动数据库时oracle会自动调用<rdbms_home>/bin/setasmgid设置oracle 可执行文件的group为asmadmin。
     
       所以,如果问题出现在oracle不能访问asm 磁盘,需要检查以下的内容。当然由于oracle 可以直接访问asm磁盘,而不需要通过asm 实例,所以问题的症状可能很多,甚至ora-600错误都可能是这个原因。
     
    1. Asmlib标识过的磁盘的权限和group设置
     
    brw-rw---- 1 grid asmadmin 8, 49 Dec 31 12:14 DATA
     
    2. 裸设备或者块设备的权限和group设置
     
    crw-rw---- 1 grid asmadmin 162, 1 Jul 18 21:40 /dev/raw/raw1
     
    3. RDBMS和GI 主目录下的oracle可执行文件的权限和group设置
     
    rdbms_home : -rwsr-s--x 1 oracle asmadmin 188832561 Oct 30 21:22 oracle
     
    gi_home: -rwsr-s--x 1 grid oinstall 166530359 Nov 16 14:31 oracle
     
      注意粘着位(stick bit)的设置
     
     
    检查角色任务分离(Job Role Separation)设置是否正确一般需要检查以下配置:
    1,检查ASM磁盘的权限,确认属主为grid用户,group 为asmadmin。
    2,检查<rdbms_home>/bin/oracle 文件的权限,确认属主为Oracle用户,group和ASM磁盘的group相同,同时粘着位被设置。
    3,检查<gi_home>/bin/oracle文件的权限,确认属主为grid用户,同时粘着位被设置。
     
     
  • 相关阅读:
    nodeJs爬虫小程序练习
    promise
    node-并发控制
    高性能Js—数据存取
    javascript测试框架mocha
    npm、模块暴露,小知识点区别
    高性能Js-加载和执行
    Request对象获得参数方法:query和body方法
    nvm工具
    在express中提供静态文件笔记
  • 原文地址:https://www.cnblogs.com/liang545621/p/9418020.html
Copyright © 2020-2023  润新知