Category: ASM (Automatic Storage Management)

ORA-12801: error signaled in parallel query server



Era sólo un pequeño e indefenso alter de una constraint , sólo eso.... gatilló todo...fue horrible 88| (fue para darle algo más de emoción)



Super simple, era habilitar una constraint, nada más....pero dió un error algo trágico

SQL> ALTER TABLE PROD1.MOVIMIENTOS ENABLE CONSTRAINT FK_1_MOVINTDETAILS ;

ALTER TABLE PROD1.MOVIMIENTOS ENABLE CONSTRAINT FK_1_MOVINTDETAILS ;
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-12801: error signaled in parallel query server P003
ORA-01157: cannot identify/lock data file 5001 - see DBWR trace file
ORA-01110: data file 5001: '+DATG01'

SQL>


Obviamente , lo que pensé en un primer instante es ir a ver el susodicho datafile, el cual para mi mala suerte y sorpresa, no existía.

SQL> select name , file# from v$datafile where file# = 5001;

no rows selected

SQL>


Lo busqué entonces como un TEMPFILE y acá dieron los primeros errores que me indicaban el problema

SQL> select FILE_ID , FILE_NAME , TABLESPACE_NAME from dba_temp_files;
ERROR:
ORA-01157: cannot identify/lock data file 5001 - see DBWR trace file
ORA-01110: data file 5001: '+DATG01'

no rows selected

SQL>


Hice el chequeo en la vista V$TEMPFILE y aparece solamente el diskgroup, no la ruta completa donde está el tempfile, por ende...hay que recrear, hay un error...

1 select FILE# , NAME from v$tempfile

FILE# NAME
---------- ----------------------------------------
1 +DATG01


Chequeamos el tablespace temporal que existe

SQL> select tablespace_name from dba_tablespaces where tablespace_name like '%TEMP%';

TABLESPACE_NAME
------------------------------
TEMP2


Creamos un nuevo tablespace temporal , de un tamaño fijo

SQL> create temporary tablespace temp1 tempfile '+DATG01' size 5g;

Tablespace created.

SQL> alter tablespace temp1 add tempfile '+DATG01' size 5g;

Tablespace altered.


Y alteramos la base de datos, para que todos los ordenamientos pasen por el nuevo tablespace temporal

SQL> alter database default temporary tablespace temp1;

Database altered.

SQL>


Borramos el anterior tablespace temporal.

SQL> drop tablespace temp2 ;

Tablespace dropped.

SQL>


Con la modificación del tablespace temporal, pues arreglamos el inconveniente y el grandioso, potente a increíble ALTER CONSTRAINT , se ejecuta sin problemas

SQL> ALTER TABLE PROD1.MOVIMIENTOS ENABLE CONSTRAINT FK_1_MOVINTDETAILS ;

Table altered.

SQL>

:)

by Ligarius
03.11.15. 13:04:22. 362 words, 3480 views. Categories: Base de datos, ASM (Automatic Storage Management) ,

Tips sobre discos ASM y como buscar su correspondiente dispositivo en Linux



Un amigo :) , me envío este pequeño tip y la verdad lo encontré muy bueno, es simplemente para buscar el dispositivo físico y su asociación con las etiquetas de ASM ..



Tiempo atrás publiqué una pequeña nota de lo potente de la vista v$asm_disk , en donde se podían ver incluso los discos que eran candidatos para colocar en los distintos diskgroups

http://www.oracleyyo.com/index.php/2011/09/22/vista_vasm_disk


Pero a través de esta consulta no se podía ver el dispositivo asociado al disco de ASM, pues he aquí el tips..

Por ejemplo hacemos la consulta en la v$asm_disk
GROUP_NUMBER DISK_NUMBER HEADER_STATU STATE      TOTAL_MB    FREE_MB NAME                 PATH
------------ ----------- ------------ -------- ---------- ---------- -------------------- ------------------------------
          1           0 MEMBER       NORMAL       204797       8609 DAT0000            /dev/oracleasm/disks/DAT_01
          1           1 MEMBER       NORMAL       204797       8608 DAT0001            /dev/oracleasm/disks/DAT_02
          1           2 MEMBER       NORMAL       204797       8612 DAT0002



Y vemos que aparece un /dev/oracleasm/disks/DAT_02 , chequeamos esto con los discos que estén configurados con el ASMLib.



Con el usuario root , ejecutamos la siguiente consulta

[root@~]# oracleasm querydisk -d DAT_02



Esta consulta nos dará el siguiente resultado

Disk "DAT_02" is a valid ASM disk on device [19, 49]



Para poder buscar el dispositivo asociado, ejecutamos la siguiente consulta

[root@~]# ls -l /dev/* | grep '19,'| grep 49



Y el resultado será

brw-r----- 1 root disk 8, 49 Jun 10 05:09 /dev/sdf1



Ese es el dispositivo asociado a disco de asm DAT_02

Bastante útil ...

Muchas gracias a mi seudo amigo Juan Díaz , DBA polifuncional de Directv en Santiago de Chile :>>



by Ligarius
21.07.14. 14:54:03. 256 words, 5274 views. Categories: ASM (Automatic Storage Management) ,

ASMLib y RHEL 6.x




Oracle hace unos meses atrás indicaba que ya tenía soporte total para Oracle Enterprise Linux 6 y después vino el anuncio de soporte sobre RHEL 6.x

Esto se puede ver en la matriz de certificación de MOS (My Oracle Support)







Pero lo que no se comenta mucho, es que el paquete ASMLib, ese tan bonito que usamos para crear volumenes que se vean de forma directa en ASM ya no se producirá para RHEL 6.x , sólo para el kernel de OEL 6, o sea , Unbreakable Enterprise Kernel , en este ya vienen inscritos en su Kernel, o sea, es llegar y utilizar (aunque igual hay que instalar un rpm)





RPMs necesario para Unbreakable Enterprise Kernel






Información de ASMLib para Unbreakable Enterprise Kernel






RPMs disponibles para la descarga (no se ve el de RHEL 6)






Con todo lo anterior les quiero decir que ya debiésemos comenzar a usar udev o multipath nativo , todo para evitar los problemas con ASMLib en RHEL 6.x , más adelante colocaré notas de como usar los discos con esos formatos.

O si quieren más alternativas, pues pueden usar cluster file systems de otros proveedores.

Referencias :

Documentación de RedHat
https://access.redhat.com/sites/default/files/oracle_on_rhel_with_or_without_asm_asmlib_0.pdf

Como usar udev con ASM
http://download.oracle.com/docs/cd/E11882_01/install.112/e17212/storage.htm#CDEBFDEH


Espero les sirva la información

by Ligarius
06.09.12. 20:30:07. 236 words, 6175 views. Categories: Instalación, ASM (Automatic Storage Management) ,

Una nota de alegría



Este post es simplemente para decir lo maravilloso que se siente cuando aparece el siguiente mensaje en una instalación de Oracle Rac 11gr2 , especificamente la versión 11.2.0.3 :)

Y sobretodo pensando en que hay Multipath entremedio :>>

ASM created and started successfully.

Disk Group OCRVOTING created successfully.

clscfg: -install mode specified
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4256: Updating the profile
Successful addition of voting disk 692dc1b5935f4f72bf8884b4f7891e11.
Successfully replaced voting disk group with +OCRVOTING.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 692dc1b5935f4f72bf8884b4f7891e11 (ORCL:VOL01) [OCRVOTING]
Located 1 voting disk(s).
CRS-2672: Attempting to start 'ora.asm' on 'prdwcora01'
CRS-2676: Start of 'ora.asm' on 'prdwcora01' succeeded
CRS-2672: Attempting to start 'ora.OCRVOTING.dg' on 'prdwcora01'
CRS-2676: Start of 'ora.OCRVOTING.dg' on 'prdwcora01' succeeded
CRS-2672: Attempting to start 'ora.registry.acfs' on 'prdwcora01'
CRS-2676: Start of 'ora.registry.acfs' on 'prdwcora01' succeeded
Preparing packages for installation...
cvuqdisk-1.0.9-1
Configure Oracle Grid Infrastructure for a Cluster ... succeeded

Es gratificante jejejeje

by Ligarius
03.05.12. 21:51:01. 203 words, 4382 views. Categories: Instalación, ASM (Automatic Storage Management), Real Application Cluster ,

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, 10146 views. Categories: Base de datos, Oracle 10g, ASM (Automatic Storage Management) ,

    1 2 3 >>