暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle ASM中的数据库存储使用情况

askTom 2018-08-03
186

问题描述

嘿伙计们,

我在RAC环境中工作,并且一直在努力获得一个完美的查询,以根据ASM上的特定数据库和每个数据库查看ASM存储使用情况。Simply, i want a result that shows a database and how much size that database is using (in total) in my ASM

我尝试了一些查询,例如此处提到的查询,但它们不会返回我想要的内容。
SELECT name, free_mb, total_mb, free_mb/total_mb*100 as percentage FROM v$asm_diskgroup;
复制



我期望的结果看起来像下表

GNAME DBNAME MB GB # 文件
-
DATAC1 MISU2 5,867,345 5,867 1,245
Recos1 MISU2 5,901,360 5,763 1,119

我会很高兴,这是我第一次使用这个平台

谢谢大家!

专家解答

试试这个尺寸。我目前的ASM存储上只有一个db,因此请在您的存储上进行测试,看看如何进行。

我刚刚在脚本库中将其存档,因此,无论他们是谁,都应归功于 (未知) 原始作者。

SQL> SELECT
  2      gname,
  3      dbname,
  4      file_type,
  5      round(SUM(space)/1024/1024) mb,
  6      round(SUM(space)/1024/1024/1024) gb,
  7      COUNT(*) "#FILES"
  8  FROM
  9      (   SELECT
 10              gname,
 11              regexp_substr(full_alias_path, '[[:alnum:]_]*',1,4) dbname,
 12              file_type,
 13              space
 14          FROM
 15              (   SELECT
 16                      concat('+'||gname, sys_connect_by_path(aname, '/')) full_alias_path,
 17                      system_created,
 18                      file_type,
 19                      space,
 20                      gname
 21                  FROM
 22                      (   SELECT
 23                              b.name            gname,
 24                              a.parent_index    pindex,
 25                              a.name            aname,
 26                              a.reference_index rindex ,
 27                              a.system_created,
 28                              c.type file_type,
 29                              c.space
 30                          FROM
 31                              v$asm_alias a,
 32                              v$asm_diskgroup b,
 33                              v$asm_file c
 34                          WHERE
 35                              a.group_number = b.group_number
 36                          AND a.group_number = c.group_number(+)
 37                          AND a.file_number = c.file_number(+)
 38                          AND a.file_incarnation = c.incarnation(+) )
 39                  START WITH (mod(pindex, power(2, 24))) = 0
 40                  AND rindex IN
 41                      (   SELECT a.reference_index
 42                          FROM   v$asm_alias a,
 43                                 v$asm_diskgroup b
 44                          WHERE  a.group_number = b.group_number
 45                          AND    mod(a.parent_index, power(2, 24)) = 0
 46                      ) CONNECT BY prior rindex = pindex )
 47          WHERE NOT file_type IS NULL
 48          and   system_created = 'Y' )
 49  GROUP BY
 50      gname,
 51      dbname,
 52      file_type
 53  ORDER BY
 54      gname,
 55      dbname,
 56      file_type
 57  /

GNAME      DBNAME     FILE_TYPE                    MB         GB     #FILES
---------- ---------- -------------------- ---------- ---------- ----------
DATA       ASM        ASMPARAMETERFILE              8          0          1
DATA       ASM        PASSWORD                      0          0          1
DATA       db122asm   CONTROLFILE                  96          0          1
DATA       db122asm   DATAFILE                   3028          3          4
DATA       db122asm   ONLINELOG                  1260          1          3
DATA       db122asm   PARAMETERFILE                 8          0          1
DATA       db122asm   TEMPFILE                     48          0          1
复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论