Überwachen der Speicherplatznutzung auf ASM-Datenträgergruppen

7

Letzte Nacht war der Wiederherstellungsbereich auf einer unserer Oracle Database Appliances voll. Dies wurde in einem der Datenbank-Warnprotokolle gemeldet, und wir konnten vor dem nächsten Protokollwechsel etwas Speicherplatz freigeben. Zu diesem Zeitpunkt wäre die Produktion zum Stillstand gekommen.

Es wäre sicherlich schön gewesen, ein bisschen mehr Warnung zu haben, zum Beispiel wenn die Plattengruppe zu 70% voll war.

Welche Optionen haben wir zur Überwachung der Festplattennutzung in ASM?

Roy
quelle
Wenn Sie Oracle-Komponenten überwachen und alarmieren möchten, würde ich wirklich empfehlen, eine Oracle Enterprise Manager-Installation einzurichten. Es bietet Ihnen ASM-Überwachung, kann Benachrichtigungen per E-Mail, SNMP usw. senden
Patrick
@Patrick, interessanterweise haben wir mehr Zeit mit der Verwaltung von OEMs verbracht als mit Oracle DB. Daher haben wir vor einiger Zeit die Verwendung von OEMs eingestellt.
Roy

Antworten:

16

Einfach benutzen asmcmd. Zum Beispiel:

[oracle@oel61 ~]$ . oraenv
ORACLE_SID = [+ASM] ? +ASM
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@oel61 ~]$ asmcmd lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576     30708    28479                0           28479              0             N  DATA/
[oracle@oel61 ~]$ 

Oder rufen Sie die Informationen direkt von der ASM Oracle-Instanz ab:

[oracle@oel61 ~]$ . oraenv
ORACLE_SID = [+ASM] ? +ASM
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@oel61 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Thu Mar 7 10:44:44 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Automatic Storage Management option

SQL> SELECT name, free_mb, total_mb, free_mb/total_mb*100 as percentage 
     FROM v$asm_diskgroup;

NAME                  FREE_MB   TOTAL_MB PERCENTAGE
------------------------------ ---------- ---------- ----------
DATA                    28479      30708 92.7413052

SQL> 
Philᵀᴹ
quelle
1
OEM hat auch die Informationen, wenn Sie diese haben, und kann wahrscheinlich dazu gezwungen werden, Warnungen auszulösen. Die v$asm_diskgroupAnsicht ist auch in den "Client" -Datenbanken verfügbar (hängt möglicherweise von den genauen Versionen ab). Dies ist sehr praktisch, wenn Sie bereits benutzerdefinierte Überwachungsskripte haben.
Mat
Die Ansicht v $ asm_diskgroup ist sehr praktisch. Vielen Dank! Obwohl die Spalten TOTAL_MB und FREE_MB anscheinend die Rohkapazität im Gegensatz zum nutzbaren Speicherplatz anzeigen, stimmt das?
Roy
1
Weitere Informationen zu dieser Ansicht finden Sie unter Verwalten der Kapazität in Datenträgergruppen unter @Roy.
Mat
2. Option nützlich. Hoffe, dass dies auch hier nützlich sein kann: ora-data.blogspot.com/2016/12/…
Sunil
2

Versuche dies...

col gname form a10
col dbname form a10
col file_type form a14

SELECT
    gname,
    dbname,
    file_type,
    round(SUM(space)/1024/1024) mb,
    round(SUM(space)/1024/1024/1024) gb,
    COUNT(*) "#FILES"
FROM
    (
        SELECT
            gname,
            regexp_substr(full_alias_path, '[[:alnum:]_]*',1,4) dbname,
            file_type,
            space,
            aname,
            system_created,
            alias_directory
        FROM
            (
                SELECT
                    concat('+'||gname, sys_connect_by_path(aname, '/')) full_alias_path,
                    system_created,
                    alias_directory,
                    file_type,
                    space,
                    level,
                    gname,
                    aname
                FROM
                    (
                        SELECT
                            b.name            gname,
                            a.parent_index    pindex,
                            a.name            aname,
                            a.reference_index rindex ,
                            a.system_created,
                            a.alias_directory,
                            c.type file_type,
                            c.space
                        FROM
                            v$asm_alias a,
                            v$asm_diskgroup b,
                            v$asm_file c
                        WHERE
                            a.group_number = b.group_number
                        AND a.group_number = c.group_number(+)
                        AND a.file_number = c.file_number(+)
                        AND a.file_incarnation = c.incarnation(+) ) START WITH (mod(pindex, power(2, 24))) = 0
                AND rindex IN
                    (
                        SELECT
                            a.reference_index
                        FROM
                            v$asm_alias a,
                            v$asm_diskgroup b
                        WHERE
                            a.group_number = b.group_number
                        AND (
                                mod(a.parent_index, power(2, 24))) = 0
                            and a.name like '&&db_name'
                    ) CONNECT BY prior rindex = pindex )
        WHERE
            NOT file_type IS NULL
            and system_created = 'Y' )
WHERE
    dbname like '&db_name'
GROUP BY
    gname,
    dbname,
    file_type
ORDER BY
    gname,
    dbname,
    file_type
/
Raja
quelle