• Oracle12c新特性大全 存储资源隔离+flex+diskgroup


           在12cR2版本中,我们可以在一个asm diskgroup提供不同的冗余级别和配额给不同的数据库使用。提到quota会让人立即想到创建用户在表空间上的配额限制,其实有点类似。Flex磁盘组中文件的冗余是灵活的,并允许在数据库级别进行存储管理。你可以以数据库为粒度在磁盘组内做配额限制,并且你可以给不同的文件组定义不同的冗余度(即不同的数据库、PDB可以有不同的冗余度)。换句话说就是,你可以在同一个flex磁盘组里建两个库,数据库1是normal冗余度,数据库2是high冗余度。如果数据库2是一个CDB,你甚至可以以PDB为粒度再去管理设置文件相关属性。

        Flex diskgroup要求最少需要3个故障组。前提数据库版本是12.2版本时,Flex diskgroup一般可以容忍两个故障组丢失。但是,如果故障组少于5个,则只允许一个故障组丢失。

        注:下文中每个所提到的磁盘组都针对于flex diskgroup,并且磁盘组一般给数据库文件使用,给asm volume和cluster使用的情况我们不做讨论。

        注:下文提到的磁盘组都是flex或extended属性的磁盘组。

        下面是关于flex diskgroup、quota group、file group 之间的关系。

    1、一个文件组只能所属于一个配额组,一个配额组可以包含多个文件组。一个磁盘组可以拥有多个文件组,一个文件组只能所属于一个磁盘组。

    2、一个文件组只能描述一个file实体(PDB, CDB, volume, or cluster),一个实体可以使用多个文件组。通常用磁盘组存储我们的数据库对象,也就是说每个数据库都至少有一个单独的文件组。

    3、创建文件组时默认会指定到名字为generic的无上限的配额组。并且至少含有一个文件组,即默认名为DEFAULT_FILEGROUP。

    配额组不能跨多个磁盘组,只能所属于一个磁盘组。

    4、默认磁盘组的au大小是4M。

    5、配额是一个物理空间,每个配额组有两个参数描述使用情况,USED_QUOTA_MB、QUOTA_LIMIT_MB。

    6、磁盘组的每个文件组都有自己的冗余属性设置。

    7、创建新数据库时,client_name(db name)和filegroup name一样,如果已经有相同client_name存在时,oracle自动取别名。

    用到sql

    col group_name FOR a10

    col quota_name FOR a20

    col FILE_GROUP FOR a120

    col NAME FOR a10

    SELECT G.NAME           AS GROUP_NAME,

           Q.NAME           AS QUOTA_NAME,

           Q.USED_QUOTA_MB,

           Q.QUOTA_LIMIT_MB,

           F.FILE_GROUP

      FROM V$ASM_DISKGROUP G

      LEFT JOIN V$ASM_QUOTAGROUP Q

        ON G.GROUP_NUMBER = Q.GROUP_NUMBER

      LEFT JOIN (SELECT QUOTAGROUP_NUMBER,

                        LISTAGG(PROPERTY, '|') WITHIN GROUP(ORDER BY PROPERTY) AS FILE_GROUP

                   FROM (SELECT ('NAME=>' || NAME || ';' || 'DB_NAME=>' ||

                                NVL(CLIENT_NAME, 'no_db') || ';' ||

                                'USED_QUOTA_MB=>' || USED_QUOTA_MB) AS PROPERTY,

                                QUOTAGROUP_NUMBER

                           FROM V$ASM_FILEGROUP)

                  GROUP BY QUOTAGROUP_NUMBER) F

    ON F.QUOTAGROUP_NUMBER = Q.QUOTAGROUP_NUMBER order by group_name;

    col FILE_NAME for a20

    col client_name for a30

    col quota_name for a15

    col GROUP_NAME for a20

    set pages 100

    col name for a30

    SELECT G.NAME              AS GROUP_NAME,

           Q.QUOTAGROUP_NUMBER,

           Q.NAME              AS QUOTA_NAME,

           Q.USED_QUOTA_MB,

           Q.QUOTA_LIMIT_MB,

           F.NAME              AS FILE_NAME,

           F.CLIENT_NAME,

           F.USED_QUOTA_MB

      FROM V$ASM_DISKGROUP G

      LEFT JOIN V$ASM_QUOTAGROUP Q

        ON G.GROUP_NUMBER = Q.GROUP_NUMBER

      LEFT JOIN V$ASM_FILEGROUP F

        ON F.QUOTAGROUP_NUMBER = Q.QUOTAGROUP_NUMBER

       AND F.GROUP_NUMBER = Q.GROUP_NUMBER

     ORDER BY GROUP_NAME, QUOTAGROUP_NUMBER;

    ​ ​持续招募产品体验官​​(点击直达,安装即送150),运维/DBA/研发/测试大佬快快来。

  • 相关阅读:
    寒流来袭,被裁了
    [附源码]java毕业设计超市收银系统
    36_ue4进阶末日生存游戏开发[背包系统2]
    c# 字符串转化成语音合成,System.Speech
    lv8 嵌入式开发-网络编程开发 14
    基于java+springmvc+mybatis+vue+mysql的大学生健康管理系统
    flink技术总结待续
    APT样本分析 -plugx家族RAT⽊⻢
    为什么测试/开发程序员有很多都是秃头?现实居然是这样......
    访问学者在国外需要特别注意的安全问题
  • 原文地址:https://blog.csdn.net/weixin_48804451/article/details/126358824