Ejemplo de configuración IPC en conexiones Oracle Net, en este caso la comunicación no se establece a nivel de protocolo TCP-IP como habitualmente, sino a través de zonas de memoria del propio servidor, protegidas en este caso por la clave PNPKEY:
(tnsnames.ora)
SIDBBDD_TNS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = PNPKEY))
)
(CONNECT_DATA =
(SID = sidbbdd)
)
)
(listener.ora)
listener_sidbbdd =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = PNPKEY))
)
)
)
SID_LIST_listener_sidbbdd =
(SID_LIST =
(SID_DESC =
(SID_NAME = sidbbdd)
(ORACLE_HOME = /u01/...)
(PROGRAM = extproc)
)
)
jueves, 16 de septiembre de 2010
OEM Grid Control
Ante un mensaje de un agente de Grid como éste:
MESSAGE: El agente ha parado el control. Se informa de los siguientes errores: COLL_DISABLED|DISK_FULL.
Vemos que en el status del agente aparece:
./emctl status agent
...
Collection Status : Disabled by Upload Manager
...
El problema está en los límites de uso de espacio del agente, modificamos de la forma:
Modificamos el fichero: AGENT_OH/sysman/config/emd.properties :
uploadMaxDiscUsedPct=98
uploadMaxDiskUsedPctFloor=98
Reiniciamos el agente :
./emctl stop agent
./emctl start agent
Cargamos:
./emctl upload
MESSAGE: El agente ha parado el control. Se informa de los siguientes errores: COLL_DISABLED|DISK_FULL.
Vemos que en el status del agente aparece:
./emctl status agent
...
Collection Status : Disabled by Upload Manager
...
El problema está en los límites de uso de espacio del agente, modificamos de la forma:
Modificamos el fichero: AGENT_OH/sysman/config/emd.properties :
uploadMaxDiscUsedPct=98
uploadMaxDiskUsedPctFloor=98
Reiniciamos el agente :
./emctl stop agent
./emctl start agent
Cargamos:
./emctl upload
miércoles, 15 de septiembre de 2010
Script - Temporal.sql
PROMPT Espacio utilizado en los segmentos temporales
SELECT tablespace_name,
total_blocks,
used_blocks,
free_blocks,
total_blocks*16/1024 as total_MB,
used_blocks*16/1024 as used_MB,
free_blocks*16/1024 as free_MB
FROM v$sort_segment;
PROMPT Uso de los segmentos temporales por parte de las sesiones
SELECT b.TABLESPACE,
b.segfile#,
b.segblk#,
b.blocks,
b.blocks*p.value/1024/1024 as MB,
a.SID,
a.serial#,
a.status
FROM v$session a,
v$sort_usage b,
(select value from v$parameter where name='db_block_size') p
WHERE a.saddr = b.session_addr
ORDER BY b.TABLESPACE,
b.segfile#,
b.segblk#,
b.blocks;
SELECT tablespace_name,
total_blocks,
used_blocks,
free_blocks,
total_blocks*16/1024 as total_MB,
used_blocks*16/1024 as used_MB,
free_blocks*16/1024 as free_MB
FROM v$sort_segment;
PROMPT Uso de los segmentos temporales por parte de las sesiones
SELECT b.TABLESPACE,
b.segfile#,
b.segblk#,
b.blocks,
b.blocks*p.value/1024/1024 as MB,
a.SID,
a.serial#,
a.status
FROM v$session a,
v$sort_usage b,
(select value from v$parameter where name='db_block_size') p
WHERE a.saddr = b.session_addr
ORDER BY b.TABLESPACE,
b.segfile#,
b.segblk#,
b.blocks;
martes, 14 de septiembre de 2010
Rendimiento - Cacheo de Subconsultas Deterministas
"Scalar Subquery Caching"
Por ejemplo:
SELECT columna1,...columnan
FROM tabla1, ... tablan
WHERE
columnaN=funcion_plsql(columnaM)
Podemos transformarlo en :
SELECT columna1,...columnan
FROM tabla1, ... tablan
WHERE
columnaN=(
SELECT funcion_plsql(columnaM)
FROM DUAL
)
De esta forma podemos obtener mejoras en la ejecución debido a la característica "Scalar Subquery Caching".
Por ejemplo:
SELECT columna1,...columnan
FROM tabla1, ... tablan
WHERE
columnaN=funcion_plsql(columnaM)
Podemos transformarlo en :
SELECT columna1,...columnan
FROM tabla1, ... tablan
WHERE
columnaN=(
SELECT funcion_plsql(columnaM)
FROM DUAL
)
De esta forma podemos obtener mejoras en la ejecución debido a la característica "Scalar Subquery Caching".
Suscribirse a:
Entradas (Atom)