Oracle-ASM磁盘组属性

磁盘组属性

常见属性
  • access_control.enabled:定了一个磁盘组的ASM File Access Control是否启用,参数的值可以设置为true或者false(默认)

  • access_control.umask:与通常os层面的umask类似。用来设置ASM文件的属主,属组和其他用户的权限。这个特性对磁盘组中所有文件生效。

    • 属性的值是3位数的组合,每一位可以是0,2,6数字中的一个。默认情况下为066
      • 设置为0:表示不排除任何权限
      • 设置为2:表示排除掉写权限
      • 设置为6:表示把读写权限都排除
  • au_size:指定分配单元(AU)大小,并且只能在创建磁盘组时设置

  • cell.smart_scan_capable:仅适用于 Oracle Exadata 存储的配置

  • compatible.advm:指定磁盘组的 Oracle 自动存储管理集群文件系统 (Oracle ACFS) 和 Oracle ASM 动态卷管理器 (Oracle ADVM) 兼容性级别。

  • compatible.asm:指定了可以使用磁盘组的ASM实例的最低软件版本

  • compatible.rdbms:指定磁盘组的数据库兼容性级别

  • disk_repair_time:指定了ASM保持磁盘offline状态的时间,超过这个时间之后,将该盘drop。COMPATIBLE.ASM属性要设置为11.1或者更高

  • sector_size:指定了磁盘组中磁盘的扇区大小,只能在创建磁盘组时指定

    • 可以设置为512,4096或者4k,默认值依OS平台而定
    • 要修改该属性的值,需要把COMPATIBLE.ASM和COMPATIBLE.RDBMS设置为11.2或者更高。
  • CONTENT.CHECK:控制磁盘组在rebalance时,是否进行内容校验。该属性的值可以设置为true或者false

    • 内容校验包括用户数据的HARD(Hardware Assisted Resilient Data)校验,文件目录中文件类型和文件目录信息的校验,以及镜像内容的对比
  • CONTENT.TYPE:将磁盘组指定为几种类型:DATA, RECOVERY或者SYSTEM。它还决定了到最近的partner磁盘或者failgroup的距离。默认值是DATA,同时指定了距离为1;值为RECOVERY则指定了距离为3;值为SYSTEM指定了距离为5.只在normal或者high冗余的磁盘组中可用。并且COMPATIBLE.ASM要设置为11.2.0.3及以上才能启用该属性

    • 距离为1的意思是ASM认为所有的磁盘都具有partner关系
    • 距离为3的意思是每第三个磁盘具有partner关系
    • 距离为5的意思是每第五个磁盘具有partner关系
  • failgroup_repair_time(12c):指定了磁盘组中failgroup的修复时间。

    • 当ASM判定一整个failgroup发生故障时,这个参数就会启用。默认值为24小时。如果在alter diskgroup offline disk语句中加入drop after子句,指定的repair time会覆盖FAILGROUP_REPAIR_TIME
    • 只能通过alter fiskgroup设置,并且只对normal和high冗余的磁盘组可用
  • scrub_async_limit(12c):设置了异步清除的最大允许的并行读请求。默认值为1

  • PHYS_META_REPLICATED(12): 用来跟踪磁盘组元数据的复制状态

    • 当磁盘组的ASM兼容性设置为12.1或者更高时,每个磁盘的物理元数据会做复制。这些元数据包括此盘头,FST表和AT表。
    • 元数据的复制是在线异步做的。如果磁盘组中每个磁盘的元数据都做了复制,那么该属性的值就会被ASM设置为true
    • 只有在COMPATIBLE.ASM设置为12.1或者更高的磁盘组中才可以定义。用户无法设置或者修改该属性的值
  • STORAGE.TYPE: 指定了磁盘组中磁盘的类型

    • 属性的值可以是EXADATA,PILLAR,ZFSAS和OTHER
      • OTHER:磁盘组中可以加入任意类型的磁盘
      • PILLAR或者ZFSAS:可以启用HCC(Hybrid Columnar Compression)功能
        • ZFS类型的存储必须是通过dNFS(Direct NFS)提供
        • Pillar Axion类型的存储必须是通过SCSI或者光纤通道提供
  • THIN_PROVISIONED:用来控制在磁盘组reblance结束后,是否丢弃未使用的存储空间

隐藏属性
  • _REBALANCE_COMPACT:和rebalance过程中的compact阶段有关,默认值为true.
    • 设置为false则可以禁止磁盘组rebalance过程中做compact
  • _EXTENT_COUNTS:和可变区大小特性有关,它决定了区大小在何时会增加
    • 属性值设置为“20000 20000 214748367”,意指前20000个区的大小为1个AU,接下来20000个区大小由_EXTENT_SIZES属性的第二个值决定,剩下的区大小由_EXTENT_SIZES属性的第三个值决定
  • _EXTENT_SIZES:和可变区大小特性有关,指定了区大小的增幅,以AU为单位
    • 在ASM版本11.1,该属性值为1 8 64,在11.2及更高版本中,属性值为1 4 16
查看磁盘组属性
  • asmcmd lsattr

    # 11.2.0.4, 不同版本的属性值不一样
    asmcmd lsattr -G datadg -l
    
    # asmcmd查看具体属性值
    asmcmd lsattr -G datadg -lm au_size
    

    -- 11g

    Name Value
    access_control.enabled FALSE
    access_control.umask 066
    au_size 2097152
    cell.smart_scan_capable FALSE
    compatible.advm 11.2.0.0.0
    compatible.asm 11.2.0.0.0
    compatible.rdbms 11.2.0.0.0
    disk_repair_time 3.6h
    sector_size 512

  • v$asm_attribute

    -- 通过 V$ASM_ATTRIBUTE 视图查看
    col value for a18
    col name for a12
    col att_name for a32
    SELECT g.name, p.name att_name, p.value FROM V$ASM_ATTRIBUTE p, V$ASM_DISKGROUP g 
    WHERE p.GROUP_NUMBER = g.GROUP_NUMBER
     AND  p.name not like ‘template%‘
     -- AND  g.group_number = 2
    ;
    
  • 查看9号文件

    kfed read /dev/asm_data01 aus=4194304 aun=2 blkn=9|more   # 定位9号文件的文件目录
    
修改磁盘组属性
sql命令修改
-- 修改属性
ALTER DISKGROUP data SET ATTRIBUTE ‘content.type‘ = ‘data‘;

字段v$asm_attribute.read_only 为N,才能修改。若为Y,必须在创建时指定

asmcmd命令修改
asmcmd lsattr -G datadg -lm au_size
# 修改
asmcmd setattr -G datadg au_size ‘4M‘

Oracle-ASM磁盘组属性

上一篇:oracle去重rowid和row_number()over()


下一篇:SQLAlchemy学习