Pro Oracle Database 11g RAC on Linux 读书笔记6

理解Extents,Allocation Units,Types and Templates

        ASM文件被细分成extents,extents又进一步被细分成allocation units(AU)。和ASSM管理表空间中extents类似,ASM的extents随着数据文件的增长大小也不是固定大小。可变大小的extent需要磁盘组的兼容设置至少为11.1

        存储在ASM中文件的属性由文件的类型(映射为模板)决定。模板,简单来说,决定了ASM文件的存储特性,包括冗余度(通常基于磁盘组的冗余级别设置),条带类型(粗粒度/细粒度),以及文件类型。我本机上外部冗余磁盘组+DATA中的模板如下:

        SQL> select redundancy,stripe,name,primary_region,mirror_region
        2  from v$asm_template
        3  /

        REDUND STRIPE NAME                           PRIM MIRR
       ------ ------ ------------------------------  ---- ----
       UNPROT COARSE PARAMETERFILE                  COLD COLD
       UNPROT COARSE ASMPARAMETERFILE               COLD COLD
       UNPROT COARSE ASMPARAMETERBAKFILE            COLD COLD
       UNPROT COARSE DUMPSET                        COLD COLD
       UNPROT FINE   CONTROLFILE                    COLD COLD
       UNPROT COARSE FLASHFILE                      COLD COLD
       UNPROT COARSE ARCHIVELOG                     COLD COLD
       UNPROT COARSE ONLINELOG                      COLD COLD
       UNPROT COARSE DATAFILE                       COLD COLD
       UNPROT COARSE TEMPFILE                       COLD COLD
       UNPROT COARSE BACKUPSET                      COLD COLD
       UNPROT COARSE AUTOBACKUP                     COLD COLD
       UNPROT COARSE XTRANSPORT                     COLD COLD
       UNPROT COARSE CHANGETRACKING                 COLD COLD
       UNPROT COARSE FLASHBACK                      COLD COLD
       UNPROT COARSE DATAGUARDCONFIG                COLD COLD
       UNPROT COARSE OCRFILE                        COLD COLD
       UNPROT COARSE OCRBACKUP                      COLD COLD
       UNPROT COARSE ASM_STALE                      COLD COLD

       19 rows selected.

           控制文件用的是细粒度条带,在磁盘上冷区存储。(在Intelligent Data Placement一节会进一步了解ASM磁盘组冷、热区的概念)

          为了改变文件的特性,可以创建属于自己的模板。比如,为了把文件显示的放置到磁盘组的热区,可以进行如下的操作:

     SQL> alter diskgroup data
     2  add template allhot attributes(hot);
     alter diskgroup data
     *
     ERROR at line 1:
     ORA-15032: not all alterations performed
     ORA-15283: ASM operation requires compatible.rdbms of 11.2.0.0.0 or higher
          遇到了ORA-15283错误,为DATA磁盘组设置compatible.rdbms为11.2后,创建模板成功
     SQL> alter diskgroup data set attribute 'compatible.rdbms'='11.2';

     Diskgroup altered.

     SQL> alter diskgroup data
     2  add template allhot attributes(hot);

     Diskgroup altered.
          外部冗余的磁盘组不能定义镜像数据块的放置区域(因为没有镜像),查询v$asm_templete可以发现新建的模板allhot的SYSTEM列设置为“N”(因为是用户创建的)

     SQL> select redundancy,stripe,name,primary_region,mirror_region,system
     2  from v$asm_template
     3  where name = 'ALLHOT'
     4  /

     REDUND STRIPE NAME                           PRIM MIRR S
     ------ ------ ------------------------------ ---- ---- -
     UNPROT COARSE ALLHOT                         HOT  COLD N
          下面是创建表空间时使用新建模板的例子:

      SQL> create tablespace hottbs datafile '+DATA(allhot)' size 10M;

      Tablespace created.
           查看一下新建文件的信息

     SQL> select file_name from dba_data_files ---->RDBMS实例上
     2  where tablespace_name = 'HOTTBS';

     FILE_NAME
     --------------------------------------------------
     +DATA/rac/datafile/hottbs.268.821038331
     SQL> select bytes,type,redundancy,primary_region,mirror_region,
     2  hot_reads,hot_writes,cold_reads,cold_writes
     3  from v$asm_file where file_number = 268
     4  /

     BYTES TYPE       REDUND PRIM MIRR  HOT_READS HOT_WRITES COLD_READS COLD_WRITES
     ---------- ---------- ------ ---- ---- ---------- ---------- ---------- -----------
     10493952 DATAFILE   UNPROT HOT  COLD          1          0          0           0

 冗余

         ASM磁盘组有3种冗余:

         1、外部冗余, 没有镜像操作。磁盘组使用操作系统或者存储阵列上的保护措施,比如RAID或LVMs。这种情况下就需要管理员确保底层的存储被正确的配置,ASM本身并不能保证失败时的数据恢复。使用外部冗余不需要设置故障组

         2、正常冗余,这个是ASM的默认选项,实现两路镜像,也就是说每个文件extent会被写入两个磁盘组中(一个是主extent,另一个是镜像的extent)。您必须定义至少两个故障组来实现这个冗余级别

         3、高度冗余,此级别实现三路镜像,每个文件extent被写入到三个磁盘组中(一个主extent,两个镜像的extent),这个级别需要至少三个故障组

         根据作者的经验,大部分的ASM部署都使用外部冗余。大多数企业用存储阵列自带的保护机制来应对磁盘损坏,当一个磁盘组中的磁盘损坏时,存储管理员会去替换掉坏的磁盘(通常在ASM管理员发现这个问题之前就已经完成了)。CERN(The Centre for Nuclear Research)是少数使用正常冗余磁盘组的例子,这样可以减少在存储阵列上的花费,性能和用户体验也是不错的

条带化

         ASM会在磁盘组中的磁盘上条带化文件,以此来优化IO性能。这就要求磁盘组中的每个磁盘都有相同的类型和性能特性。ASM有两种条带类型

        大多数文件都是用粗粒度条带,如数据库文件,可传输表空间文件,备份集,dump集,自动备份的控制文件,更改跟踪文件,Data Guard配置文件等。粗粒度条带的大小由AU的大小决定。当把RDBMS和ASM的兼容性设置为11.1时,粗粒度条带可以使用可变大小的extent,最开始20000个extents的大小和AU相等,接下来20000个extents的大小是4倍的AU,再接下来会是16倍的AU。

        默认情况下,细粒度条带只用在控制文件,在线重做日至和闪回日志。条带大小是128KB。默认每个文件生成8个条带,所以磁盘组中磁盘的数目最好是8的倍数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值