Graficar información de crecimiento de tablespaces



Siempre estamos pensando el como obtenemos información de crecimiento de un tablespaces, algo así como para saber mes a mes o semana a semana como ha crecido .


Pues bien, existe una forma muy útil que les paso a comentar...


Lo primero que debemos tener en cuenta es desde que fecha a que fecha queremos generar la información , para ello ocupamos la información de los Snapshots que ha producido nuestra base de datos mediante la siguiente consulta.

select instance_number , snap_id ,
to_char(begin_interval_time,'dd-mm-yyyy hh24:mi:ss') "Intervalo inicio",
to_char(end_interval_time,'dd-mm-yyyy hh24:mi:ss') "Intervalo termino" ,
snap_level
from dba_hist_snapshot
order by snap_id asc


Desde acá debemos obtener los snap_id de inicio y término , para el caso de ejemplo que desarrollamos pues tomaremos el mes completo de Noviembre del 2012.

Además de lo anterior, incorporamos el número del tablespaces, está información la podemos obtener desde la siguiente consulta

select ts# , name from v$tablespace


Ejecutamos la siguiente consulta que trae los datos que necesitamos para saber el crecimiento semana a semana de nuestro tablespaces..

select max(vt.NAME) "Nombre tablespace" ,
to_char(to_date(tb.rtime,'mm-dd-yyyy hh24:mi:ss'),'yyyy-ww') "Fecha de la muestra",
max(round(tb.tablespace_size * dt.block_size/1024/1024/1024,2)) "Tamaño GB",
max(round(tb.tablespace_usedsize * dt.block_size/1024/1024/1024,2)) "Tamaño usado GB"
from SYS.WRH$_TABLESPACE_SPACE_USAGE tb ,
v$tablespace vt ,
dba_tablespaces dt
where vt.TS# = tb.tablespace_id
and vt.NAME = dt.tablespace_name
and vt.ts# = 0
and tb.snap_id <= 123450
and tb.snap_id >= 103947
group by to_char(to_date(tb.rtime,'mm-dd-yyyy hh24:mi:ss'),'yyyy-ww')
order by 3


Ciertas cosas a tener en cuenta :

- Los datos que aparecen en la tabla SYS.WRH$_TABLESPACE_SPACE_USAGE relacionados a espacios , son presentados como número de bloques, por ende hay que realizar la multiplicación con el tamaño del bloque que le corresponde a cada tablespaces.

- En la consulta realizamos el filtro por el número del tablespace, específicamente el campo vt.ts#

- La tabla SYS.WRH$_TABLESPACE_SPACE_USAGE forma parte de la vista dba_hist_tbspc_space_usage , la información de la vista es similar a la información de la tabla , pero tiene otros filtros asociados a los snap_id

- La información del tamaño del tablespace y de su tamaño utilizado se expresa por semanas


Una vez ejecutada la consulta obtenemos los datos para poder armar un gráfico..


Y el gráfico, una vez construído con Excel o hasta con Open Office :) , quedaría así...


Se puede apreciar que por cada semana , se ve en el gráfico el tamaño del tablespace versus el tamaño realmente utilizado, con ello podemos analizar si llevamos a cabo una asignación de espacio, quizás sea conveniente verificar los niveles de fragmentación, también reasignar espacio para tablespaces con mucho espacio libre , etc , etc...

Para tomar medidas hay que estar informado :>>

by Ligarius
20.12.12. 11:14:44. 509 words, 5580 views. Categories: Base de datos ,

Volver a empezar ....



Hace 2 años comenté que me iba a HP muy contento y con ganas de demostrar muchas cosas... claro que lo hice, pero por los avatares de la vida, que siempre cambia :) hoy en día me encuentro en otra empresa , llamada Inmetrics , está empresa de orígen brasileño ya es grande en su país y de a poco se está haciendo un nombre en Chile..

Y bueno .. a ver lo que la vida me tiene deparado... ;)



Empresa Inmetrics


Acá el relato de mi cambio a HP
http://www.oracleyyo.com/index.php/2010/11/03/un-pequeno-cambio-en-la-vida


by Ligarius
17.12.12. 07:07:10. 96 words, 3017 views. Categories: Cosas varias ,

Por fin el 1z0-536 es mío..



Hoy fuí a dar el exámen 1z0-536 Oracle Exadata 11g Essentials y por fin lo pasé...

Después de 2 intentos fallidos..



http://www.oracleyyo.com/index.php/2011/12/26/resultado_exadata

Así que ahora a estudiar RAC 11gr2 y claro, la actualización del exámen de Exadata, pues ya salió la nueva versión .


Y lo más importante, esperar Oracle Database versión 12c, que debiese salir a la luz , en Enero del 2013 :>>


La nueva certificación de Exadata se llama "Oracle Exadata Database Machine Administration, Software Release 11.x" , cerca de 150 preguntas en 3 horas de exámen , es un exámen BETA :P , pero lo voy a comprar para darlo al final de Febrero , más o menos...




¿Cómo queda mi historial de certificaciones?

1.- Certificación : Oracle Exadata 11g : Essentials (OCE 11g Exadata) New
Exámenes rendidos
1z0-054 : Oracle Database 11g : Performance Tuning


2.- Certificación : Oracle Database 11g : Performance Tuning Certified Expert (OCE 11g Tuning)
Exámenes rendidos
1z0-054 : Oracle Database 11g : Performance Tuning

3.- Certificación : Oracle Database 10g : Managing Oracle on Linux Certified Expert (OCE 10g Linux)
Exámenes rendidos
1z0-046 : Oracle Database 10g : Managing Oracle on Linux for Database Administrators

4.- Certificación : Oracle Database 10g : Real Application Cluster Administrator Certified Expert (OCE 10g RAC)
Exámenes rendidos
1z0-048 : Oracle Database 10gR2 : Administering RAC

5.- Certificación : Database 11g Administrator Certified Professional (OCP 11g DBA)
Exámenes rendidos
1z0-050 : Oracle Database 11g : New Features for Administrators

6.- Certificación : Oracle Database : SQL Certified Expert (OCE 10g SQL)
Exámenes rendidos
1z0-047 : Oracle Database SQL Expert Exam

7.- Certificación : Database 10g Administrator Certified Professional (OCP 10g DBA)
Exámenes rendidos
1z0-043 : Oracle Database 10g : Administration II

8.- Certificación : Database 10g Administrator Certified Associated (OCA 10g DBA)
Exámenes rendidos
1z0-042 : Oracle Database 10g : Administration I

9.- Certificación : Oracle Forms Developer Certified Professional (OCP Forms 6i)
Exámenes rendidos
1z0-131 : Oracle Forms Build Internet Applications I
1z0-132 : Oracle Forms Build Internet Applications I

10.- Certificación : Oracle Pl/Sql Developer Certified Associate (OCA SQL Pl/Sql 8i)
Exámenes rendidos
1z0-101 : Develop Pl/Sql Program Unit
1z0-001 : Introduction to Oracle : SQL and Pl/Sql

by Ligarius
28.11.12. 10:16:43. 375 words, 4978 views. Categories: Certificaciones, Oracle Exadata ,

ORA-12541: TNS:no listener en Switchover con DGMGRL



A continuación les mostraré un error que sucede con demasiada frecuencia al momento de hacer un Switchover en un Dataguard construído en Oracle 11g y que cuesta un poco encontrarlo

Y que aparece como un terrible ORA-12541: TNS:no listener




Para hacer un seguimiento al error, llevamos a cabo los siguientes


Nos conectamos desde cualquier nodo (Standby o primario) al DGMGRL

[oracle@nodo1-dg] $ dgmgrl
DGMGRL for Linux: Version 11.2.0.3.0 - Production

Copyright (c) 2000, 2009, Oracle. All rights reserved.

Welcome to DGMGRL, type "help" for information.

DGMGRL> connect sys/oracle1
Connected.



Mostramos la configuración generada y verificamos cual es nuestra Standby y nuestra base primaria

DGMGRL> show configuration

Configuration - conf_dgprod

Protection Mode: MaxPerformance
Databases:
prod2 - Primary database
prod - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS



Procedemos a realizar el Switchover

DGMGRL> switchover to prod;
Performing switchover NOW, please wait...
New primary database "prod" is opening...
Operation requires shutdown of instance "prod" on database "prod2"
Shutting down instance "prod"...
ORACLE instance shut down.
Operation requires startup of instance "prod" on database "prod2"
Starting instance "prod"...
Unable to connect to database
ORA-12541: TNS:no listener

Failed.
Warning: You are no longer connected to ORACLE.

Please complete the following steps to finish switchover:
start up and mount instance "prod" of database "prod2"

DGMGRL> quit



Y dentro del Switchover aparece el mensaje

ORA-12541: TNS:no listener

Acá vienen los cuestionamientos y preguntas, ya que si hacemos la conexión mediante TCP/IP con los string de conexión, no existen inconvenientes...entonces debemos buscar el error por otro lado



Por lo pronto, subimos la base de datos Standby que no se pudo hacer a través del Switchover

[oracle@nodo1-dg] $ sqlplus sys/oracle1@PROD2 as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed Sep 26 16:50:45 2012

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup force nomount
ORACLE instance started.

Total System Global Area 1071333376 bytes
Fixed Size 1349732 bytes
Variable Size 226494364 bytes
Database Buffers 838860800 bytes
Redo Buffers 4628480 bytes
SQL> alter database mount standby database;

Database altered.

SQL> quit



Chequeamos la configuración para ver si ambas bases están disponibles

DGMGRL> show configuration

Configuration - conf_dgprod

Protection Mode: MaxPerformance
Databases:
prod - Primary database
prod2 - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS



Ahora vemos un detalle más acabado de la configuración , quizás podemos ver si por aquí está nuestro error

DGMGRL> show database verbose 'prod';

Database - prod

Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
prod

Properties:
DGConnectIdentifier = 'prod'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '4'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = ''
LogFileNameConvert = ''
FastStartFailoverTarget = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
SidName = 'prod'
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nodo1-dg.oracleyyo.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=prod_DGMGRL)(INSTANCE_NAME=prod)(SERVER=DEDICATED)))'
StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'arc_%t_%s_%r.arc'
TopWaitEvents = '(monitor)'

Database Status:
SUCCESS



De hecho, hay algo que nos debería llamar la atención, que es la configuración de este parámetro StaticConnectIdentifier

StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nodo1-dg.oracleyyo.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=prod_DGMGRL)(INSTANCE_NAME=prod)(SERVER=DEDICATED)))'



En este parámetro aparece un puerto que no corresponde al puerto que tenemos realmente nuestro listener, ya que estamos escuchando por el puerto 1530


Por ende , procedemos a cambiar ese parámetro dentro de la configuración del DGMGRL

DGMGRL> edit database 'prod' set property 'StaticConnectIdentifier'='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nodo1-dg.oracleyyo.com)(PORT=1530))(CONNECT_DATA=(SERVICE_NAME=prod_DGMGRL)(INSTANCE_NAME=prod)(SERVER=DEDICATED)))'
> ;
Property "StaticConnectIdentifier" updated
DGMGRL>



Mostramos nuevamente la la configuración en detalle de nuestras bases de datos configuradas en el DGMGRL

DGMGRL> show database verbose 'prod';

Database - prod

Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
prod

Properties:
DGConnectIdentifier = 'prod'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '4'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = ''
LogFileNameConvert = ''
FastStartFailoverTarget = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
SidName = 'prod'
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nodo1-dg.oracleyyo.com)(PORT=1530))(CONNECT_DATA=(SERVICE_NAME=prod_DGMGRL)(INSTANCE_NAME=prod)(SERVER=DEDICATED)))'
StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'arc_%t_%s_%r.arc'
TopWaitEvents = '(monitor)'

Database Status:
SUCCESS

DGMGRL>



Chequemos lo mismo en el nodo2

DGMGRL> connect sys/oracle1
Connected.
DGMGRL>
DGMGRL> show database verbose 'prod2';

Database - prod2

Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds
Apply Lag: 0 seconds
Real Time Query: OFF
Instance(s):
prod

Properties:
DGConnectIdentifier = 'prod2'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '4'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '/u02, /u03'
LogFileNameConvert = '/u02, /u03'
FastStartFailoverTarget = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
SidName = 'prod'
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nodo2-dg.oracleyyo.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=prod2_DGMGRL)(INSTANCE_NAME=prod)(SERVER=DEDICATED)))'
StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'arc_%t_%s_%r.arc'
TopWaitEvents = '(monitor)'

Database Status:
SUCCESS



Y vemos que también tiene problemas en el puerto del listener que está configurado


Editamos la propiedad StaticConnectIdentifier y le cambiamos el puerto

DGMGRL> edit database 'prod2' set property 'StaticConnectIdentifier'='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nodo2-dg.oracleyyo.com)(PORT=1530))(CONNECT_DATA=(SERVICE_NAME=prod2_DGMGRL)(INSTANCE_NAME=prod)(SERVER=DEDICATED)))';
Property "StaticConnectIdentifier" updated
DGMGRL>



Mostramos la configuración en detalle

DGMGRL> show database verbose 'prod2'

Database - prod2

Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds
Apply Lag: 0 seconds
Real Time Query: OFF
Instance(s):
prod

Properties:
DGConnectIdentifier = 'prod2'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '4'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '/u02, /u03'
LogFileNameConvert = '/u02, /u03'
FastStartFailoverTarget = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
SidName = 'prod'
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=nodo2-dg.oracleyyo.com)(PORT=1530))(CONNECT_DATA=(SERVICE_NAME=prod2_DGMGRL)(INSTANCE_NAME=prod)(SERVER=DEDICATED)))'
StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'arc_%t_%s_%r.arc'
TopWaitEvents = '(monitor)'

Database Status:
SUCCESS

DGMGRL>



Y vemos que ya han sido cambiado los datos, después de esto realizamos nuevamente el Switchover de ida y vuelta, sin ningún problema

DGMGRL> switchover to prod2;
Performing switchover NOW, please wait...
New primary database "prod2" is opening...
Operation requires shutdown of instance "prod" on database "prod"
Shutting down instance "prod"...
ORACLE instance shut down.
Operation requires startup of instance "prod" on database "prod"
Starting instance "prod"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "prod2"


DGMGRL> switchover to prod;
Performing switchover NOW, please wait...
New primary database "prod" is opening...
Operation requires shutdown of instance "prod" on database "prod2"
Shutting down instance "prod"...
ORACLE instance shut down.
Operation requires startup of instance "prod" on database "prod2"
Starting instance "prod"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "prod"
DGMGRL>


Asunto arreglado :>>

by Ligarius
17.10.12. 10:01:31. 1344 words, 8832 views. Categories: Base de datos, StandBy - Data Guard ,

SQL Developer y problemas al ejecutarlo (JRE o JDK)



Descargue SQL Developer desde esta URL

http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

Para hacer ciertas pruebas con un set de carácteres que no estaba visualizando correctamente desde Sqlplus , el problema fue que al ejecutarlo




Aparece una pantalla solicitando la ruta completa donde está el Java.exe, pues bien le di la ruta completa



Pero aparece el siguiente mensaje de error




Por ende no sirve una versión de JRE , sirve una versión de JDK , por ende accedí a la siguiente URL

http://www.oracle.com/technetwork/java/javase/downloads/jdk7u7-downloads-1836413.html


Y seleccione la versión que se acomoda a mi plataforma (notebook)




Se hace la instalación de rigor, es muy sencilla... sólo ENTER y NEXT NEXT NEXT

Ingresamos el Path donde acabamos de realizar la instalación



Aparecerá un warning con respecto a la versión de Java a utilizar...por lo menos yo le dí NEXT



Y ya tenemos funcionando nuestro Sql Developer versión 3.2





Actualización al 22 de Agosto del 2015

La nueva URL para descargar el JDK
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Allí seleccionamos el siguiente link


Y seleccionamos nuestra plataforma

Continuamos la instalación y proseguimos la apertura de SQL Developer, según lo indicado en la nota
Espero les sirva

by Ligarius
12.10.12. 13:04:14. 220 words, 8771 views. Categories: Base de datos, Sql Developer ,

<< 1 ... 9 10 11 12 13 14 15 16 17 18 19 ... 44 >>