Etiqueta: 9i

Como empezar con Oracle ASM

balancear datos no es tan fácil como suena
balancear datos no es tan fácil como suena

Cuando tienes o decides instalar ASM en tu instancia de base de datos y estas acostumbrado a manejarlo con Datafiles, a muchos nos parece un gran cambio y otros tantos no lo aceptan tan facil ya que implica cambiar el paradigma con el que estamos acostumbrados a trabajar, los primeros pasos para como empezar con Oracle ASM, son los siguientes:

Oracle ASM
Oracle toma el control completo de los discos duros, a los cuales no podras accesar de forma natural como siempre, para poder accederlos ocupas entrar por medio del comando ‘ asmcmd ‘ dentro de este comando puedes utilizar lo basico como ‘ ls, lsdg, cp, cd, pwd, etc ‘ y veras los discos duros conectados como si se trataran de carpetas de Linux.
ahora, a un disco duro fisico se le conoce como DISK, y tu creas los datafiles sobre estos discos duros, alli iran creciendo y dividiendose de forma automatica, cuando el disco duro se llena, te marcara que los tablespaces ya no pueden crecer (como pasa con los tablespace mismos), siguiendo la misma logica que los tablespaces, cuando los discos duros se llenan puedes adjuntar otro disco duro para que continue creciendo como si fuera un mismo espacio, al conjunto de estos discos se le conoce como ‘ DISKGROUP ‘
Siguiendo la lógica de los datafiles, puedes agregarle unidades a los diskgroups, moverlos, eliminarlos, etc.
Ahora lo importante, la parte mas «tricky», cuando tienes una base de datos con ASM, a tus tablespaces los creas como siempre, pero a la hora de ponerle la ruta donde se va a grabar, pones ‘+ASM1/usuarios’ y eso creara un tablespace de usuarios en el nodo1 del ASM (esto aplica en BD de RAC)
cuando trabajas con ASM y quieres modificar las propiedades del ASM (como agregar/eliminar discos, acceder al asmcmd, ejecutar el ambiente gráfico de asmca y todo eso) no puedes acceder de la forma tradicional, tendrás que re-exportar las variables de ORACLE_HOME y ORACLE_SID, solamente cuando quieras moverle al ASM
para saber cual es el ORACLE_HOME del asm, tienes que escribir:
cat /etc/oratab | grep ASM 
eso te despliega:
+ASM1:/oracle/grid1:N          # line added by Agent
Con eso sabemos que tu ORACLE_HOME de tu instancia de ASM es /oracle/grid1
luego vuelves a definir las variables que anteriormente mencione:
[oracle@testserver]$ export ORACLE_HOME=/oracle/grid1f
[oracle@testserver]$ export ORACLE_SID=+ASM1
listo, con esto puedes ejecutar:
asmcmd
y dentro de alli puedes ver «dentro» de tus unidades de ASM, como si fueran carpetas de Linux y ademas puedes ejecutar » sqlplus / as sysasm «
Si no defines las variables y tratas de entrar como syasm te aparecerá el error » ORA-01031: insufficient privileges » al intentar ingresar.
Fácil… ¿no?

Problema pagina principal Business Intelligence

Me ocurrio un problema de forma repentina y tarde en encontrar la respuesta.

Sintoma:
Al momento de entrar a la pagina del Business Intelligence de Oracle aparece la pagina principal en blanco, busque en los logs y no encontraba nada, se quedaba pasmada en la URL http://server:8000 / OA_HTML/AppsLocalLogin.jsp

Read more

Querys utiles para los DBA’s

Recopilado de querys para la correcta administracion de las bases de datos Oracle 9i, 10g, 11g

Consulta Oracle SQL sobre la vista que muestra el estado de la base de datos:
select * from v$instance

Consulta Oracle SQL que muestra si la base de datos está abierta
select status from v$instance

Consulta Oracle SQL sobre la vista que muestra los parámetros generales de Oracle
select * from v$system_parameter

Consulta Oracle SQL para conocer la Versión de Oracleselect value from v$system_parameter where name = ‘compatible’

Consulta Oracle SQL para conocer la Ubicación y nombre del fichero spfile
select value from v$system_parameter where name = ‘spfile’

Consulta Oracle SQL para conocer la Ubicación y número de ficheros de control (Controlfiles)
select value from v$system_parameter where name = ‘control_files’

Consulta Oracle SQL para conocer el Nombre de la base de datos
select value from v$system_parameter where name = ‘db_name’

Read more

Variables de ambiente de Oracle 11g

para tener la base de datos Oracle 11g funcionando correctamente, hay que tener definido una serie de variables dentro del archivo de entorno de la sesion de usuario.

Por ejemplo, tomando que el usuario que instalo la aplicacion se llama oracle y la base de datos se llama EBSTEST , las variables de entorno deben de ser asi.

Read more

Saber el tamaño de una tabla en ORACLE

Para saber el tamaño total en MB o en GB de una tabla de Oracle, es relativamente facil, estando con el usuario dueño de la tabla que deseamos revisar solo se ejecuta el siguiente script desde el sqlplus o el sqldeveloper:

 select segment_name, bytes, bytes/1024/1024 EspacioMB from user_segments where segment_name in (‘&NombreTabla’);

Nota: Obviamente hay que cambiar el valor de &NombreTabla por la tabla que deseamos ver
Nota 2: Si nos aparece el mensaje «No Rows Select» es posible que el nombre de la tabla sea incorrecto o no se encuentre bajo ese mismo esquema

Si lo estamos ejecutando con el usuario DBA el Query cambia un poco

select segment_name, bytes, bytes/1024/1024 EspacioMB from user_segments where segment_name in (‘&NombreDeLaTabla’) and OWNER=’&DueñoDeLaTabla’;

 

Como correr estadisticas en Oracle

Las estadísticas hacen un escaneo completo de los datos y tipos de datos de una tabla y obtiene las mejores formas de realizar una lectura a algún campo determinado, de esta manera hacer que la velocidad de lectura aumente considerablemente, cuando la tabla sufre de muchos cambios es posible que las estadísticas ya no sirvan tan bien y hay que volverlas a ejecutar, esto es para mejorar el performance;

Para correr estadística de una tabla es con el comando
analyze table NOMBRETABLA compute statistics;

para correr estadísticas completas de un esquema* completo es corriendo el paquete*:
EXEC DBMS_UTILITY.analyze_schema(‘USUARIO’,’COMPUTE’);

la diferencia entre un comando y un paquete es que el paquete es un programa echo a base de comandos para realizar funciones mas complejas
la diferencia entre esquema y usuario es que no hay diferencia, al decir «sobre el esquema» me refiero a todas las tablas que le pertenecen a ese usuario

al ponerle el parámetro COMPUTE recrea todas las estadísticas de TODOS los campos, esto hacé que puede que llegue a tardar mucho, dependiendo del tamaño de la tabla

Si en vez de ponerle COMPUTE, se le puede cambiar por ESTIMATE, esto hacé que saca un estimado de cual seria la mejor forma de hacer una lectura, obteniendo datos de una sola porción de la tabla
se puede sacar estimado por numero de campos (rows) o por un porcentaje total de la tabla (percent)
como en el siguiente ejemplo

EXEC DBMS_UTILITY.analyze_schema(‘USUARIO’,’ESTIMATE’, estimate_rows => 100);
EXEC DBMS_UTILITY.analyze_schema(‘USUARIO’,’ESTIMATE’, estimate_percent => 15);

de esta manera la obtención de estadísticas es considerablemente mas rápida, mas no tan eficiente como la COMPUTE, digamos que con un estimate_percent=>20 es 5 veces mas rápido que el compute y se mejora el 80% del performance contra el COMPUTE que tarda 5 veces mas y mejora el 100%
esto dependiendo del tiempo que se tenga disponible para ejecutar estadísticas.

Mejorar el performance, reordenando la tabla

Reordenar datos de una tabla a otra en oracle database 11g 10g con indices + Performance

Cuando se tienen problemas de performance en cualquier aplicacion de bases de datos, uno de los mejores tips de performance que puedo hacer, aparte de configurar adecuadamente las variables de ambiente, es reestructurar las tablas importantes de Oracle.

por ejemplo, tenemos una tabla de un datawarehouse o una tabla muy grande y Oracle para guardar los archivos lo hace como van llegando e identifica los archivos por el RowID o por la primary key que tenga asignada, pero no deja de estar desordenado.

Hacer esto me mejoro el performance del business intelligence 5 veces en lectura de consultas, el chiste aqui es reordenar la tabla basado en las columnas que utiliza para identificar los datos y esto es algo sencillo.

Read more

Configurar replicacion en MySQL

Instalacion de la replicacion de MySQL en ambiente maestro-esclavo para alta disponibilidad

Crear instancia de DataGuard

Nota: la instalacion de Oracle RDBMS se instala en la BD primaria y Standby, en este caso en la standby solo tiene la instalacion. …

Desarrollo de aplicación de reconocimiento de rostros y emociones

Este es uno de los desarrollos hechos por nuestro equipo, tiene como funcionalidad ser un demo de la capacidad de nuestra …