Cristian Cudizio on the WEB

esperimenti web di un DBA

  • Increase font size
  • Default font size
  • Decrease font size
Home

09) Automatic Storage Management (ASM) - Parte 2

E-mail Print PDF
Nel primo articolo su ASM ho fatto una panoramica sui concetti base di ASM.  In questo secondo articolo cercher di approfondire alcuni dettagli con particolare riguardo all'amministrazione di ASM. In alcuni casi ho preferito mantenere delle definizioni in inglese preferendole a traduzioni ambigue.

Amministrazione di un'istanza ASM

Ho gi spiegato come ASM sia un tipo particolare di istanza Oracle, con una SGA e i processi di background, in particolare i package interni di ASM fanno uso della LARGE POOL, quindi viene raccomandato nel manuale di amministrazione di settare il parametro ad almeno 1MB, sulla mia guida parla di 8 MB, su un'istanza che ho installato il default 12 MB.
In una macchina vi pu essere solo un'istanza ASM attiva (con SID=+ASM di solito). Affinch le istanze database possano utilizzare ASM sulla macchina deve essere installato ed in esecuzione anche il servizioOracle Cluster Synchronization Service (CSS). CSS controlla la sincronizzazione tra l'istanza ASM e le istanze database.
Il corretto funzionamento di CSS pu essere verificato con il comando:
[oracle@urano ~]$ crsctl check css
CSS appears healthy

CSS viene installato configurato con il comando

#$ORACLE_HOME/bin/localconfig add

Creazione di un'istanza ASM

il modo pi semplice per creare un'istanza ASM attraverso DBCA. Se durante la crezione di un database si sceglie di usare ASM e sulla macchina non gi installata un'istanza ASM DBCA automaticamente provvede alla crezione dell'istanza e alla configurazione.

Disk discovery

con disk discovery si intende la rilevazione da parte di ASM di dischi o partizioni candidate ad essere usate da ASM. Attraverso il parametro ASM_DISKSTRING si dice ad ASM quali file di device considerare come candidati un esempio pu essere:
ASM_DISKSTRING=/dev/oracleasm/disks/*

I possibili candidati sono RAW device o block device. Su Linux e Windows Oracle consiglia l'uso di ASMLib, un modulo che dovrebbe facilitare la gestione dei dischi candidati.

Creazione di disk group

Una volta che ASM ha rilevato disk candidati all'utilizzo possibile creare dei disk group.






Ad esempio:


CREATE DISKGROUP dgroup_01
EXTERNAL REDUNDANCY;
DISK '$ORACLE_HOME/disks/c*';

Un esempio meno banale:

CREATE DISKGROUP group1 HIGH REDUNDANCY
FAILGROUP fggroup1 DISK
'/devices/disk1',
'/devices/disk2',
FAILGROUP fggroup2 DISK
'/devices/disk3',
'/devices/disk4',
FAILGROUP fggroup3 DISK
'/devices/disk5',
'/devices/disk6';

Se non vengono specificati i failure group ASM per default mette ogni disk in un suo failure group con un nome generato automaticamente.

Aggiunta e rimozione di Disk a un Disk Group

Una delle caratteristiche di ASM la possibilit di aggiungere e rimuovere dinamicamente disk su disk group. Queste operazioni mettono in moto l'attivit di REBALANCING.
Ecco un esempio di istruzione per aggiungere due disk a un disk group
ALTER DISKGROUP group1 ADD DISK
'/devices/disk7' NAME disk7,
'/devices/disk8' NAME disk8;

E similmente si pu rimuovere un disk da un disk group:

ALTER DISKGROUP dgroup_01
DROP DISK dgroup_01_0000;
In questo caso parte l'operazione di REBALANCING obbligatoriamente per spostare i dati da questo disco ai dischi rimanenti (ricordo che questa operazione pu essere fatta a database aperto). L'operazione di rebalancing monitorabile dalla vista V$ASM_OPERATION e il suo "peso" determinato dal parametro ASM_POWER_LIMIT, che accetta valori interi tra 1 (poco peso) e 11 (massimo peso). Il default 1, significa che l'operazione durer pi a lungo per non sollecitare troppo il sistema e permettere l'operativit normale del database. Se si cambia idea prima che l'operazione di rebalancing abbia terminato possibile annullare il drop:
ALTER DISKGROUP dgroup_01
UNDROP DISKS;
 Se si vuole accelerare l'operazione di rebalancing si pu usare il seguente comando:
ALTER DISKGROUP dgroup_01
REBALANCE POWER 11 WAIT;
Il wait indica che il comando non restituir il controllo fino a quando l'operazione di rebalancing non avr terminato.
Un disk grop per essere utilizzato deve essere montato. ASM quando viene avviato monta in automatico i disk group elencati nel parametro ASM_DISKGROUPS,  in automatico (se si usa SPFILE) i nuovi disk group vengono aggiunti al parametro. I comandi per montare e smontere un disk group sono:
ALTER DISKGROUP dgroup_01
DISMOUNT FORCE;
ALTER DISKGROUP dgroup_01
MOUNT;

Usando la parola chiave "ALL" al posto del nome possibile montare o smontare in un colpo solo tutti i disk group.

Infine:

DROP DISKGROUP dgroup_01 INCLUDING CONTENTS;

La clausola INCLUDING CONTENTS necessaria se nel disk group vi sono file.

 Controllo della consistenza di un disk group

E' possibile richiedere ad ASM la verifica della consistenza dei dati di un disk group con il seguente comando:
ALTER DISKGROUP dgroup_01
CHECK ALL
REPAIR;
La clausola repair fa si che il comando si occupi anche di riparare eventuali inconsistenze trovate automaticamente.

Creazione e modifica di Template

I template sono in pratica un insieme di caratteristiche di un datafile. Quando si crea un datafile possibile specificare un template dal quale i datafile erediter le caratteristiche. le caratteristiche definibili sono il livello di ridondanza (UNPROTECTED o MIRROR) e la dimensione dello stripe (COARSE o FINE). Si noti che possibile definire un template e quindi un file con livello di ridondanza "UNPROTECTED" su un disk group ad esempio con livello di ridondanza 2-way. Ovviamente questa cosa fortemente sconsigliata. In questa situazione anche mettere temporaneamente offline un disk del disk group pu danneggiare il file. Nei template predefiniti il livello di ridondanza rispecchia quello del disk group.
Ecco un esempio di istruzione per creare un nuovo template:
ALTER DISKGROUP dgroup_01
ADD TEMPLATE template_01
ATTRIBUTES (UNPROTECTED COARSE);
Modifica:
ALTER DISKGROUP dgroup_01
ALTER TEMPLATE template_01
ATTRIBUTES (FINE);

Eliminazione:
ALTER DISKGROUP dgroup_01
DROP TEMPLATE template_01;

Nomi di file ASM

Tutti i file in ASM (manuale)  sono controllati da OMF. I nomi dei file e la loro struttura gerarchica all'interno di un disk group sono generati automaticamente. Vi sono sei formati diversidi nomi per i file e si distinguono per l'uso in tre possibili situazioni:
  • per riferirsi a file esistenti
  • durante l'operazione di creazione di un file
  • durante l'operazione di crezione di pi file

Fully Qualified Names (nomi completi)

si tratta del nome che ad esempio vediamo sulla vista V$DATAFILE (non sempre) dell'stanza database. Questo formato pu essere usato solo per file gi esistenti. Il formato :

+group/dbname/file_type/tag.file.incarnation

Ad esempio:
+DG_DATA/test102/datafile/system.260.631717657

Numeric Names

anche questo formato utilizzabile solo per riferirsi a file gi esistenti. Esso consiste solo del nome del disk group e della coppia di numeri file.incarnation, ad esempio
+DG_DATA.260.631717657

Alias Names

questo formato si pu usare sia per file esistenti che per file nuovi (cio all'atto della creazione). Infatti se alla crezione di un datafile si cerca di speficare un nome quello che ASM/OMF fanno creare il file secondo le regole OMF e poi creare eventuali directory e l'alias come specificato. Nel mio test ho verificato anche che in V$DATAFILE compare l'alias.

Alias with Template Names

Questo formato si pu utilizzare solo quando si crea un nuovo file ASM:
SQL> create tablespace test datafile '+DG_DATA/cris(flashback)' size 10 m;

Tablespace created.
ASMCMD> ls -la
Type      Redund  Striped  Time             Sys  Name
                                            Y    GEOT102/
                                            N    cris => +DG_DATA/GEOT102/DATAFILE/TEST.267.649354881
ASMCMD> cd geot102/datafile
ASMCMD> ls -la
Type      Redund  Striped  Time             Sys  Name
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => INDX.257.631717653
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => SYSAUX.261.631717657
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => SYSTEM.260.631717657
DATAFILE  UNPROT  FINE     MAR 14 16:00:00  Y    +DG_DATA/cris => TEST.267.649354881
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => UNDOTBS1.259.631717657
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => USERS.258.631717655
Cio il file viene creato con il template "flashback" infatti lo striping fine, il nome generato con le regole di OMF e viene creato un alias

Incomplete Names

Questo formato pu essere usato solo in creazione di uno o pi file, ad esempio:
SQL>  create tablespace test datafile '+DG_DATA' size 5 m ,
  2  '+DG_DATA' size 10 m;

Tablespace created.
ASMCMD> ls -la
Type      Redund  Striped  Time             Sys  Name
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => INDX.257.631717653
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => SYSAUX.261.631717657
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => SYSTEM.260.631717657
DATAFILE  UNPROT  COARSE   MAR 14 16:00:00  Y    none => TEST.267.649355189
DATAFILE  UNPROT  COARSE   MAR 14 16:00:00  Y    none => TEST.268.649355189
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => UNDOTBS1.259.631717657
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => USERS.258.631717655

Incomplete Names with Template

Questo formato usabile per la crezione di uno o pi file, ad esempio:
SQL> create tablespace test datafile '+DG_DATA(flashback)' size 5 m,
  2  '+DG_DATA(tempfile)' size 10 m;
ASMCMD> ls -la
Type      Redund  Striped  Time             Sys  Name
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => INDX.257.631717653
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => SYSAUX.261.631717657
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => SYSTEM.260.631717657
DATAFILE  UNPROT  FINE     MAR 14 16:00:00  Y    none => TEST.267.649355399
DATAFILE  UNPROT  COARSE   MAR 14 16:00:00  Y    none => TEST.268.649355399
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => UNDOTBS1.259.631717657
DATAFILE  UNPROT  COARSE   JAN 05 14:00:00  Y    none => USERS.258.631717655
L'esempio volutamente forzato per far vedere le caratteristiche e le potenzialit della nomenclatura dei file in ASM.

Migrazione ad ASM

Quando sono passato ad ASM per la prima volta mi sentivo a disagio. Negli esempi sopra ho usato l'utility ASMCMD per esplorare il contenuto di ASM, un'alternativa il protocollo FTP o WEBDAV. Nella versione 10.1 non erano disponibili queste possibilit. Quindi non vi erano strumenti simili a quelli tradizionali (ls, cp, ecc.) per "guardare" e gestire il contenuto di ASM. Lo strumento privilegiato per migrare a e da ASM RMAN esso tratta in modo indistinto ASM e file system tradizionali. Su questa sezione del manuale si trovano le informazioni.
 

Add comment


Security code
Refresh