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

发布于:2023-01-16 ⋅ 阅读:(147) ⋅ 点赞:(0)

       在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/研发/测试大佬快快来。


网站公告

今日签到

点亮在社区的每一天
去签到