Oracle Asm
Jump to navigation
Jump to search
http://www.oracle.com/technetwork/server-storage/linux/asmlib/rhel6-1940776.html
http://www.oracle.com/technetwork/server-storage/linux/asmlib/ol6-1709075.html
report utilizzo
select GROUP_NUMBER,TYPE,sum(bytes)/(1024*1024) MB from v$asm_file group by GROUP_NUMBER,TYPE order by 1,2;
set pagesize 200 set linesize 200 set feedback off col PATH for a30 col GROUPNAME for a10 col NAME for a15 col FAILGROUP_TYPE for a14 col FAILGROUP for a15 col REDUNDANCY for a10 select g.NAME GROUPNAME ,d.FAILGROUP ,d.NAME NAME ,d.PATH PATH ,d.STATE STATE ,d.TOTAL_MB TOTAL_MB ,d.FREE_MB ,d.FREE_MB-(avg(d.FREE_MB) over (partition by g.NAME)) SCO ,d.SECTOR_SIZE ,d.READS ,d.WRITES from v$asm_disk d, v$asm_diskgroup g where d.GROUP_NUMBER=g.GROUP_NUMBER(+) order by 1,2;
select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB, round(((TOTAL_MB-FREE_MB)/nullif(TOTAL_MB,0))*100,2) "USED%", ALLOCATION_UNIT_SIZE,OFFLINE_DISKS from v$asm_diskgroup order by 1;
ricerca file orfani
DEFINE ASMGROUP="DGDATA" set linesize 200 set pagesize 50000 col reference_index noprint col type format a15 col files format a80 WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name='&ASMGROUP'), v_parentindex AS (SELECT parent_index FROM v$asm_alias WHERE group_number = (SELECT group_number FROM v_asmgroup) AND alias_index=0), v_asmfiles AS (SELECT file_number, type FROM v$asm_file WHERE group_number = (SELECT group_number FROM v_asmgroup)), v_dbname AS (SELECT '/'||upper(db_unique_name)||'/' dbname from v$database) SELECT 'rm '|| files files FROM -- this line show the delete command ( SELECT '+&ASMGROUP'||files files, type FROM (SELECT upper(sys_connect_by_path(aa.name,'/')) files, aa.reference_index, b.type FROM (SELECT file_number,alias_directory,name, reference_index, parent_index FROM v$asm_alias) aa, (SELECT parent_index FROM v_parentindex) a, (SELECT file_number, type FROM v_asmfiles) b WHERE aa.file_number=b.file_number(+) AND aa.alias_directory='N' -- missing PARAMETERFILE, DATAGUARDCONFIG AND b.type in ('DATAFILE','ONLINELOG','CONTROLFILE','TEMPFILE') START WITH aa.PARENT_INDEX=a.parent_index CONNECT BY PRIOR aa.reference_index=aa.parent_index) WHERE substr(files,instr(files,'/',1,1),instr(files,'/',1,2)-instr(files,'/',1,1)+1) = (select dbname FROM v_dbname) MINUS ( SELECT upper(name) files, 'DATAFILE' type FROM v$datafile UNION ALL SELECT upper(name) files, 'TEMPFILE' type FROM v$tempfile UNION ALL SELECT upper(name) files, 'CONTROLFILE' type FROM v$controlfile WHERE name like '+&ASMGROUP%' UNION ALL SELECT upper(member) files, 'ONLINELOG' type FROM v$logfile WHERE member like '+&ASMGROUP%' ) );
In caso di database in stato "mounted":
DEFINE ASMGROUP="DGDATA" set linesize 200 set pagesize 50000 col reference_index noprint col type format a15 col files format a80 SELECT 'rm '|| files files FROM -- this line show the delete command ( SELECT '+&ASMGROUP'||files files, type FROM (SELECT upper(sys_connect_by_path(aa.name,'/')) files, aa.reference_index, b.type FROM (SELECT file_number,alias_directory,name, reference_index, parent_index FROM v$asm_alias) aa, (SELECT parent_index FROM (SELECT parent_index FROM v$asm_alias WHERE group_number = (SELECT group_number FROM v$asm_diskgroup WHERE name='&ASMGROUP') AND alias_index=0)) a, (SELECT file_number, type FROM (SELECT file_number, type FROM v$asm_file WHERE group_number = (SELECT group_number FROM v$asm_diskgroup WHERE name='&ASMGROUP'))) b WHERE aa.file_number=b.file_number(+) AND aa.alias_directory='N' -- missing PARAMETERFILE, DATAGUARDCONFIG AND b.type in ('DATAFILE','ONLINELOG','CONTROLFILE','TEMPFILE') START WITH aa.PARENT_INDEX=a.parent_index CONNECT BY PRIOR aa.reference_index=aa.parent_index) WHERE substr(files,instr(files,'/',1,1),instr(files,'/',1,2)-instr(files,'/',1,1)+1) = (select dbname FROM (SELECT '/'||upper(db_unique_name)||'/' dbname from v$database)) MINUS ( SELECT upper(name) files, 'DATAFILE' type FROM v$datafile UNION ALL SELECT upper(name) files, 'TEMPFILE' type FROM v$tempfile UNION ALL SELECT upper(name) files, 'CONTROLFILE' type FROM v$controlfile WHERE name like '+&ASMGROUP%' UNION ALL SELECT upper(member) files, 'ONLINELOG' type FROM v$logfile WHERE member like '+&ASMGROUP%' ) );
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/
ASM Senza oracleasm
- udev per permission a grid:oracleasm
cat /etc/udev/rules.d/99-oracle-asmdevices.rules #xen KERNEL=="xvd?", SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="oracleasm", OWNER="grid", GROUP="asmadmin", MODE="0660" #scsi KERNEL=="sd?", SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="oracleasm", OWNER="grid", GROUP="asmadmin", MODE="0660"
- udev per /dev/asm