it-swarm.com.de

Überwachen der Speicherplatznutzung auf ASM-Datenträgergruppen

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?

7
Roy

Verwenden Sie einfach asmcmd. Zum Beispiel:

[[email protected] ~]$ . oraenv
Oracle_SID = [+ASM] ? +ASM
The Oracle base remains unchanged with value /u01/app/Oracle
[[email protected] ~]$ 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/
[[email protected] ~]$ 

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

[[email protected] ~]$ . oraenv
Oracle_SID = [+ASM] ? +ASM
The Oracle base remains unchanged with value /u01/app/Oracle
[[email protected] ~]$ 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> 
16
Philᵀᴹ

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
/
1
Raja