Category: ASM (Automatic Storage Management)

Comando DROP DATABASE



Hoy tenía que llevar a cabo el borrado de una base de datos , que se encuentra en ASM , pensé en tablespaces por tablespaces, pero como era muchos, lo encontré algo tedioso , tampoco podía borrar los Raw Devices, pues no quería recrearlos nuevamente (en realidad no lo hago yo, lo hace gente de Unix) entonces allí me acordé del comando DROP DATABASE



Su funcionamiento es muy sencillo y sólo hay que llevar a cabo los siguientes pasos
export ORACLE_SID=nliq2

sqlplus /nolog

SQL> conn / as sysdba
Connected.

SQL> shutdown abort
ORACLE instance shut down.

SQL> startup mount exclusive restrict;
ORACLE instance started.

Total System Global Area 2147483648 bytes
Fixed Size                  2085424 bytes
Variable Size             402656720 bytes
Database Buffers         1728053248 bytes
Redo Buffers               14688256 bytes
Database mounted.



Obs : Deben verificar que sea la instancia correcta la que van a eliminar :)

select * from v$instance;



Verificamos los datos dentro de ASM para visualizar el antes y después

[/home/ora10rac] asmcmd
ASMCMD> lsdg
State       Type    Rebal  Unbal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Name
DISMOUNTED          N      N         512   4096  1048576         0        0                0               0              0  DATA/
MOUNTED     EXTERN  N      N         512   4096  1048576    552960    74173                0           74173              0  DGDATA/
MOUNTED     EXTERN  N      N         512   4096  1048576    184320    91422                0           91422              0  DGFRA/
DISMOUNTED          N      N         512   4096  1048576         0        0                0               0              0  FRA/
ASMCMD> cd DGDATA

ASMCMD> ls
NLIQ/
NLIQ2/

ASMCMD> cd NLIQ2

ASMCMD> ls
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
TEMPFILE/
spfilenliq2.ora

ASMCMD> cd DATAFILE
ASMCMD> ls -ltr

Type      Redund  Striped  Time             Sys  Name
DATAFILE  UNPROT  COARSE   OCT 25 03:00:00  Y    NUEVA_LIQ_INDEX.315.765431891
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    ADMININD.325.765432841
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    BASE_R.326.765432845
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    CDA_DATA.327.765432847
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    CDA_INDEX.328.765432865
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    MANT_PROTX_TAB.329.765432883
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    NUEVA_LIQ_DATA.320.765432319
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    NUEVA_LIQ_DATA.321.765432389
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    NUEVA_LIQ_INDEX.316.765431993
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    NUEVA_LIQ_INDEX.317.765432063
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    NUEVA_LIQ_INDEX.318.765432133
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    NUEVA_LIQ_INDEX.319.765432201
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    PERFILADOR_DATA.323.765432815
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    PERFILADOR_INDEX.324.765432819
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    PRUEBA.322.765432733
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    TBKSDV_DATA.330.765432941
DATAFILE  UNPROT  COARSE   OCT 25 04:00:00  Y    TBKSDV_IND.331.765432951
DATAFILE  UNPROT  COARSE   OCT 25 05:00:00  Y    UNDOTBS1.307.765430439
DATAFILE  UNPROT  COARSE   OCT 25 05:00:00  Y    USERS.308.765430439
DATAFILE  UNPROT  COARSE   OCT 25 22:00:00  Y    SYSTEM.305.765430439
DATAFILE  UNPROT  COARSE   OCT 26 00:00:00  Y    SYSAUX.306.765430439
ASMCMD>



Ejecutamos el comando drop database

SQL> drop database;

Database dropped.

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>



Y cuando verificamos el espacio disponible en mi storage de ASM, vemos se ha liberado , de una forma muy rápida

ASMCMD>
ASMCMD> lsdg
State       Type    Rebal  Unbal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Name
DISMOUNTED          N      N         512   4096  1048576         0        0                0               0              0  DATA/
MOUNTED     EXTERN  N      N         512   4096  1048576    552960   247858                0          247858              0  DGDATA/
MOUNTED     EXTERN  N      N         512   4096  1048576    184320   169430                0          169430              0  DGFRA/
DISMOUNTED          N      N         512   4096  1048576         0        0                0               0              0  FRA/
ASMCMD>



La instancia es bajada

[/oracle10/product/10.2.0/db10g/dbs] ps -fea | grep pmon
ora10rac 10027222 1 0 Oct 25 - 0:08 asm_pmon_+ASM
ora10rac 21692626 7798942 0 22:39:42 pts/9 0:00 grep pmon
[/oracle10/product/10.2.0/db10g/dbs]



El archivo de inicialización es eliminado

[/oracle10/product/10.2.0/db10g/dbs] ls -ltr
total 26176
-rw-r----- 1 ora10rac oinstall 8385 Sep 11 1998 init.ora
-rw-r--r-- 1 ora10rac oinstall 12920 May 03 2001 initdw.ora
-rw-r----- 1 ora10rac oinstall 1536 Oct 25 01:54 orapw+ASM
-rw-rw---- 1 ora10rac oinstall 24 Oct 25 01:54 lk+ASM
-rw-r----- 1 ora10rac oinstall 1536 Oct 25 01:55 spfile+ASM.ora
-rw-rw---- 1 ora10rac oinstall 24 Oct 25 02:03 lkNLIQ
-rw-rw---- 1 ora10rac oinstall 24 Oct 25 03:33 lkNLIQ2
-rw-r----- 1 ora10rac oinstall 39 Oct 25 03:35 initnliq2.ora
-rw-r----- 1 ora10rac oinstall 1536 Oct 25 04:54 orapwnliq2
-rw-rw---- 1 ora10rac oinstall 1544 Oct 26 22:28 hc_+ASM.dat
-rw-rw---- 1 ora10rac oinstall 563 Oct 26 22:34 ab_+ASM.dat
-rw-rw---- 1 ora10rac oinstall 1544 Oct 26 22:39 hc_nliq2.dat



Y el controlfile, permanece, aunque en la documentación diga que se elimina

ASMCMD> cd DGDATA
ASMCMD> ls
NLIQ2/
ASMCMD> cd NLIQ2
ASMCMD> ls
CONTROLFILE/
ASMCMD> cd CONTROLFILE
ASMCMD> ls
Current.309.765430489
ASMCMD>



Hay que tener en cuenta lo siguiente

  • Un comando drop database es irreversible
  • El comando drop database no elimina los RAW devices para bases en ASM
  • Los archivelogs y backupset tampoco son eliminados

    La documentación de DROP DATABASE para versión 10gr2

  • by Ligarius
    28.10.11. 07:11:03. 683 words, 772 views. Categories: Base de datos, Oracle 10g, ASM (Automatic Storage Management) , Leave a comment »Send a trackback »

    Lo potente de la vista V$ASM_DISK



    La vista V$ASM_DISK es la encargada de mostrar entre otras cosas los discos que está utilizando una instancia RDBMS, pero tiene ciertas diferencias dependiendo donde se despliegue



    Está es la consulta :)

    col path format a40
    set linesize 180
    col path format a30
    col name format a20

    select group_number ,
    disk_number ,
    header_status ,
    state ,
    total_mb ,
    free_mb ,
    name ,
    path
    from v$asm_disk
    order by 1 desc ,2



    Si se ejecuta dentro de la instancia ASM , muestra todos los discos que han sido descubiertos mediante el parámetro ASM_DISKSTRING, parámetro existente en el archivo de inicialización de la instancia ASM

    GROUP_NUMBER DISK_NUMBER HEADER_STATU STATE      TOTAL_MB    FREE_MB NAME                           PATH
    ------------ ----------- ------------ -------- ---------- ---------- ------------------------------ ----------------------------------------
               1           5 MEMBER       NORMAL        30720      10309 DATA_0005                      /dev/asm_disk6
               1           6 MEMBER       NORMAL        30720      10304 DATA_0006                      /dev/asm_disk7
               1           7 MEMBER       NORMAL        30720      10309 DATA_0007                      /dev/asm_disk11
               1           8 MEMBER       NORMAL        30720      10308 DATA_0008                      /dev/asm_disk12
               1           9 MEMBER       NORMAL        30720      10310 DATA_0009                      /dev/asm_disk13
               0          31 CANDIDATE    NORMAL         1024          0                                /dev/asm_disk38
               0          32 CANDIDATE    NORMAL         1024          0                                /dev/asm_disk39
               0          34 CANDIDATE    NORMAL         1024          0                                /dev/asm_disk40
               0          35 CANDIDATE    NORMAL         1024          0                                /dev/asm_disk41
               0          36 CANDIDATE    NORMAL         1024          0                                /dev/asm_disk42

    Acá se verán los discos que ya se encuentran asignados a Diskgroups de ASM, pero también se verán los discos que son candidatos para utilizar en la expansión de otros diskgroups o en la creación de alguno nuevo, se puede ver pues en la columna HEADER_STATUS aparece como CANDIDATE





    Si ejecutamos la misma consulta dentro de nuestra instancia RDBMS , veremos sólo los discos que forman parte de los diskgroups ya montados por la instancia ASM

    GROUP_NUMBER DISK_NUMBER HEADER_STATU STATE      TOTAL_MB    FREE_MB NAME                           PATH
    ------------ ----------- ------------ -------- ---------- ---------- ------------------------------ ----------------------------------------
               1           5 UNKNOWN       NORMAL        30720      10309 DATA_0005                      /dev/asm_disk6
               1           6 UNKNOWN       NORMAL        30720      10304 DATA_0006                      /dev/asm_disk7
               1           7 UNKNOWN       NORMAL        30720      10309 DATA_0007                      /dev/asm_disk11
               1           8 UNKNOWN       NORMAL        30720      10308 DATA_0008                      /dev/asm_disk12
               1           9 UNKNOWN       NORMAL        30720      10310 DATA_0009                      /dev/asm_disk13





    Más información sobre el parámetro ASM_DISKSTRING y más información sobre la vista V$ASM_DISK

    by Ligarius
    22.09.11. 13:08:46. 333 words, 1252 views. Categories: Base de datos, ASM (Automatic Storage Management) , Leave a comment »Send a trackback »

    /etc/init.d/oracleasm deletedisk FAILED :(



    Hoy estuve arreglandoinstalando un RAC para una E-Businness Suite de Oracle , la mire hace unos días y dije que lo mejor era reinstalar todo, pues bien comencé con las desinstalaciones e instalaciones de los productos en cuestión. Y hoy ví la parte del Storage , cuando en eso me encuentro con un pequeño problema


    Consulte si había discos generados mediante ASMLib , pues en la instalación anterior no habían ocupado el multipath de linux y sólo se habían remitido a ocupar el single path



    Por ende había que eliminar los discos y crearlos apuntando al Device Mapper, pues bien en ese comando apareció el siguiente error

    [root@hrdbd1 sysconfig]# /etc/init.d/oracleasm deletedisk VOL01
    Removing ASM disk "VOL01": [FAILED]



    El cual se puede ver en el log del ASM

    [root@hrdbd1 sysconfig] vi /var/log/oracleasm

    Unable to clear disk “VOL1″
    Clearing disk header: oracleasm-write-label: Unable to open device “/dev/oracleasm/disks/VOL1″: Device or resource busy
    failed
    Unable to clear disk “VOL01″



    Y la manera de solucionar es sobreescribir la cabecera de los path de los discos asociados al Device Mapper

    [root@hrdbd1 sysconfig]# dd if=/dev/zero of=/dev/sdh count=100 bs=10240
    100+0 records in
    100+0 records out
    1024000 bytes (1.0 MB ) copied, 0.009565 seconds, 107 MB/s



    Podemos saber el dispositivo, consultando el mismisimo disco en el ASMLib

    [root@hrdbd1 sysconfig]# /etc/init.d/oracleasm querydisk -v -d -p VOL01
    Disk "VOL01" is a valid ASM disk on device [253, 28]
    /dev/sdh: LABEL="VOL01" TYPE="oracleasm"



    Una vez realizado, se puede borrar la etiqueta generada por ASMLib

    [root@hrdbd1 sysconfig]# /etc/init.d/oracleasm deletedisk VOL01
    Removing ASM disk "VOL01": [ OK ]



    Y ahora si se puede generar la etiqueta con ASMLib sobre el dispositivo asociado al multipath :)

    Links relacionados
    http://www.oracleyyo.com/index.php/2010/08/18/problemas-al-momento-de-utilizar-asmlib

    by Ligarius
    29.06.11. 20:23:26. 300 words, 1175 views. Categories: ASM (Automatic Storage Management) , Leave a comment »Send a trackback »

    Centralizando el spfile en un RAC



    Tengo un RAC con ASM pero cada instancia de base de datos posee su propio archivo de inicialización
    ¿Cómo lo centralizo en mi instancia ASM?



    Al ejecutar la consulta de mi spfile en una de las instancias del RAC aparece lo siguiente :

    SQL> show parameter pfile

    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    spfile string



    Cuando accedo a la instancia ASM mediante el ASMCMD , veo lo siguiente

    [oracle@baliinfr03 ~]$ asmcmd

    ASMCMD> ls
    DISKGRP1/
    DISKGRP2/
    ASMCMD> cd DISKGRP1
    ASMCMD> ls
    DB_UNKNOWN/
    IASDB/
    ASMCMD> cd IASDB
    ASMCMD> ls -ltr
    Type      Redund  Striped  Time             Sys  Name
                                                Y    CONTROLFILE/
                                                Y    DATAFILE/
                                                Y    ONLINELOG/
                                                Y    PARAMETERFILE/
                                                N    datafilesysaux01.dbf => +DISKGRP1/IASDB/DATAFILE/SYSAUX.260.746407073
                                                N    datafileundotbs01.dbf => +DISKGRP1/IASDB/DATAFILE/UNDOTBS1.263.746409565
                                                N    datafileundotbs02.dbf => +DISKGRP1/IASDB/DATAFILE/UNDOTBS2.262.746409567
                                                N    datafileusers01.dbf => +DISKGRP1/IASDB/DATAFILE/USERS.261.746407073
    ASMCMD>



    Pues bien , elijo el diskgroup donde va a quedar y ejecuto el siguiente comando

    SQL> create spfile='+DISKGRP1' from pfile;

    File created.

    SQL>



    Y cuando voy a visualizar nuevamente el diskgroup aparece una nueva carpeta llamada PARAMETERFILE y dentro de esa carpeta aparece mi archivo de inicialización

    ASMCMD> ls
    CONTROLFILE/
    DATAFILE/
    ONLINELOG/
    PARAMETERFILE/
    datafilesysaux01.dbf
    datafileundotbs01.dbf
    datafileundotbs02.dbf
    datafileusers01.dbf

    ASMCMD> cd PARAMETERFILE

    ASMCMD> ls -ltr
    Type Redund Striped Time Sys Name
    PARAMETERFILE UNPROT COARSE MAR 24 21:00:00 Y spfile.275.746659845

    ASMCMD> pwd
    +DISKGRP1/IASDB/PARAMETERFILE
    ASMCMD>



    Pues bien , ahora debemos apuntar nuestras instancias a ese archivo de inicialización
    Para ello , dentro del archivo de inicialización colocamos el siguiente código

    SPFILE='+DISKGRP1/IASDB/PARAMETERFILE/spfile.275.746659845'



    Y realizamos una bajada y subida de los servicios, seteando el ORACLE_HOME donde esta instalado el Clusterware

    [oracle@baliinfr03 ~]$ crs_stop -all



    Y validamos los resultados

    [oracle@baliinfr03 ~]$ crs_stat -t

    Name           Type           Target    State     Host
    ------------------------------------------------------------
    ora....SM1.asm application    OFFLINE   OFFLINE
    ora....03.lsnr application    OFFLINE   OFFLINE
    ora....r03.gsd application    OFFLINE   OFFLINE
    ora....r03.ons application    OFFLINE   OFFLINE
    ora....r03.vip application    OFFLINE   OFFLINE
    ora....SM2.asm application    OFFLINE   OFFLINE
    ora....04.lsnr application    OFFLINE   OFFLINE
    ora....r04.gsd application    OFFLINE   OFFLINE
    ora....r04.ons application    OFFLINE   OFFLINE
    ora....r04.vip application    OFFLINE   OFFLINE
    ora.iasdb.db   application    OFFLINE   OFFLINE
    ora....b1.inst application    OFFLINE   OFFLINE
    ora....b2.inst application    OFFLINE   OFFLINE



    Después subimos los servicios

    [oracle@baliinfr03 ~]$ crs_start -all



    Y validamos los resultados

    [oracle@baliinfr03 ~]$ crs_stat -t

    Name           Type           Target    State     Host
    ------------------------------------------------------------
    ora....SM1.asm application    ONLINE    ONLINE    baliinfr03
    ora....03.lsnr application    ONLINE    ONLINE    baliinfr03
    ora....r03.gsd application    ONLINE    ONLINE    baliinfr03
    ora....r03.ons application    ONLINE    ONLINE    baliinfr03
    ora....r03.vip application    ONLINE    ONLINE    baliinfr03
    ora....SM2.asm application    ONLINE    ONLINE    baliinfr04
    ora....04.lsnr application    ONLINE    ONLINE    baliinfr04
    ora....r04.gsd application    ONLINE    ONLINE    baliinfr04
    ora....r04.ons application    ONLINE    ONLINE    baliinfr04
    ora....r04.vip application    ONLINE    ONLINE    baliinfr04
    ora.iasdb.db   application    ONLINE    ONLINE    baliinfr03
    ora....b1.inst application    ONLINE    ONLINE    baliinfr03
    ora....b2.inst application    ONLINE    ONLINE    baliinfr04



    Hay que tener en claro que el archivo de inicialización de las instancias debe ser un pfile y dentro de este archivo se debe colocar el puntero al SPFILE que está en el ASM

    NO PUEDE SER UN SPFILE apuntando a otro SPFILE, dado que si hacemos esto cualquier cambio que hagamos quedará solo en el nodo donde ejecutamos el comando ALTER SYSTEM

    Explicandolo en español, dentro del $ORACLE_HOME/dbs de cada nodo, debe exitir un init.ora y dentro de eso el código SPFILE='DISKGROUP/nombre de spfile'

    by Ligarius
    24.03.11. 19:31:47. 574 words, 605 views. Categories: ASM (Automatic Storage Management) , Leave a comment »Send a trackback »

    Problemas al momento de utilizar ASMLib con PowerPath Multipathing



    El Multipath es una técnica que provee alta disponibilidad para las tarjetas que acceden al Storage, esto es la más sencilla explicación que encontre.

    EMC PowerPath Multipathing

    Cuando se generan estos accesos a Storage , se generan particiones con el siguiente nombre

    more /proc/partitions

    120 0 52429440 emcpowera
    120 16 52429440 emcpowerb
    120 32 52429440 emcpowerc
    120 48 52429440 emcpowerd
    120 64 52429440 emcpowere
    120 80 52429440 emcpowerf
    120 96 52429440 emcpowerg
    120 112 52429440 emcpowerh
    120 128 408960 emcpoweri
    120 144 408960 emcpowerj
    120 160 408960 emcpowerk
    120 176 408960 emcpowerl
    120 192 408960 emcpowerm




    Y como somos DBA de peso... necesitamos generar etiquetas con ASMLib para nuestro RAC, ejecutamos el siguiente comando

    [root@g500603sv401 dev]# /etc/init.d/oracleasm createdisk VOL01 /dev/emcpowera



    Pero recibimos el siguiente mensaje

    Marking disk "VOL01" as an ASM disk: [FAILED]



    Nos preguntamos ... ¿Cómo puede ser si la partición existe?

    De hecho, lo vemos como partición y lo vemos como dispositivo válido

    [root@g500603sv401 dev]# ls -ltr /dev/emcpowera
    brwxrwxr-x 1 root disk 120, 0 Aug 4 16:05 /dev/emcpowera



    Para lo anterior , existe una solución de más bajo nivel que es ocupar asmtools, que en el fondo es el comando que ocupa el utilitario oracleasm .

    [root@g500603sv401 init.d]# /usr/sbin/asmtool -C -l /dev/oracleasm -n VOL01 /dev/emcpowera -s /dev/emcpowera -a force=yes
    asmtool: Device "/dev/emcpowera" is not a partition
    asmtool: Continuing anyway



    Nos indica claramente que los dispositivos PowerPath no son una partición , pero ese mensaje lo podemos pasar por alto.

    De hecho, se genera el volumen VOL1 que creamos con el ASMLib y lo podemos visualizar

    [root@g500603sv401 init.d]# ls -ltr /dev/oracleasm/disks/
    total 0
    brw-r----- 1 root root 120, 0 Aug 4 17:11 VOL01
    [root@g500603sv401 init.d]#




    Pero hay un gran detalle, queda con privilegios de root, o sea, no nos sirve de mucho, pero para solucionar eso , ejecutamos el siguiente comando

    [root@g500603sv401 init.d]# /etc/init.d/oracleasm scandisks
    Scanning the system for Oracle ASMLib disks: [ OK ]



    Después de haber escaneado los discos.. :>> , ahora si son de oracle y se pueden leer y escribir

    [root@g500603sv401 init.d]# ls -ltr /dev/oracleasm/disks/
    total 0
    brw-rw---- 1 oracle oinstall 120, 0 Aug 4 17:11 VOL01



    Espero les sirva

    by Ligarius
    18.08.10. 18:01:38. 340 words, 1485 views. Categories: Oracle11gR2, ASM (Automatic Storage Management), Real Application Cluster , Leave a comment »Send a trackback »

    1 2 >>