Etiqueta: 10g

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?

Como corregir las tablas fragmentadas de Oracle

Como corregir las tablas fragmentadas de Oracle

¿Cómo encontrar la fragmentación de las tablas en la base de datos?

 

¿Qué es la fragmentación de datos?
Si a una tabla únicamente se somete a inserts, no habrá ninguna fragmentación. La fragmentación viene solo cuando hacemos deletes/updates a la tabla.
El espacio que se libera durante las operaciones «no-inserts» no son usadas inmediatamente (algunas veces jamás se usaran). Esto deja huecos en la tabla que resultan en fragmentación.

Como corregir las tablas fragmentadas de Oracle

Para tener esto más claro, necesitaremos saber cómo Oracle maneja los espacios para las tablas.
Los campos de las tablas no se almacenan de forma contigua, o si los campos están divididos en más de un bloque, el performance disminuye debido a que esos campos requieres bloques de acceso adicionales.

 

Nota: la fragmentación de las tablas son diferentes a la fragmentación de archivos, cuando se realizan muchas operaciones DML (Data manipulation language) en una tabla, la tabla se fragmenta, debido a que las DML no liberan el espacio de la tabla debajo de la HWM (High Water Mark)

 

HWM= High water mark, es la última parte de una tabla que le indica al cursor que hasta allí llego la tabla y contiene la cantidad de registros

 

Cada vez que la información crece, elimina el bloque donde está el HWM y recreando otro HWM cuando termina de incrementar el espacio, estos bloques donde estaban los HWM’s no ocupan casi nada de espacio, pero después de muchísimo uso y mucho tiempo ya pueden ser significativos en el tiempo de lectura

Read more

activar el Automatic Memory Management (AMM) – automatic memory manager oracle

automatic memory manager oracle
automatic memory manager oracle

Activar el Automatic Memory Management (AMM)

En algunos casos, cuando no estas seguro de cuanta memoria asignar a tu base de datos Oracle lo mas recomendable es activar los parámetros de » automatic memory manager oracle »

¿Por que activar esta opción? ¿no es mejor asignarle toda la memoria que pueda?

La respuesta sencilla y rapida es ¡NO! no siempre mas es mejor, debido a cuestiones internas de Oracle la memoria asignada tiene que estar bien afinada (tunning) ya que si tiene mas de la que ocupa, puede disminuir el performance de la aplicación.

Hacer esto es tan sencillo como cambiar el parámetro de base de datos SGA_TARGET = 0

haciendo esto le estamos diciendo al engine de Oracle que administre la memoria total a lo mas óptimo

SQL> show parameter target

NAME                                               TYPE        VALUE
———————————— ———–       ——-
archive_lag_target                                     integer     0
db_flashback_retention_target                  integer     1440
fast_start_io_target                                   integer     0
fast_start_mttr_target                                integer     0
memory_max_target                                 big integer 26048M
memory_target                                         big integer 0
parallel_servers_target                              integer     2048
pga_aggregate_target                               big integer 6502M
sga_target                                                big integer 19520M

SQL> ALTER SYSTEM SET MEMORY_MAX_TARGET = 16384M scope=spfile ;

Read more

Tener exito como «Ingeniero en Sistemas»

Ingeniero en Sistemas
Ingeniero en Sistemas

 

Nunca hay que olvidar que el mercado laboral de TI en nuestro país se encuentra reducido y muy competido, precisamente por eso para tener un ingreso digno y tener un trabajo más efectivo, necesitas forzosamente pensar en especializarte en alguna herramienta como Ingeniero en Sistemas.

Y muchas veces no basta con solo sacar una certificación en alguna tecnología, necesitas dedicarte al 100% a desarrollarte profesionalmente todo el tiempo y estar comprometido con tu trabajo 24/7.

  • Una vez que decides especializarte ya sea en «redes CISCO», como «programador JAVA» o en mi caso como «Oracle DBA» que para considerarte bueno (ni siquiera experto) tienes que dedicarte muchos años a estar aprendiendo mediante práctica, libros, trabajo, etc.

 

  • He ahí que si no te apasiona realmente aprender sobre tecnología y  ser un GEEK de la resolución de problemas verdaderamente difíciles, no llegaras muy lejos en este trabajo.

 

  • El verdadero secreto es que te guste tanto el código y resolver problemas complejos que incluso seria tu hobby, esa es la clave del verdadero éxito en esta carrera, que más allá que sea tu trabajo para mantenerte, también sea tu diversión cuando estés aburrido.

 

  • Ninguna empresa grande va a darte un excelente sueldo para que administres sus bases de datos de «Misión critica» al menos que tengas un historial de dedicación a una carrera de administrador de bases de datos, convirtiéndote en un DBA profesional no requiere que seas brillante o un título en la mejor de las universidades, pero si requiere dedicación, persistencia, inteligencia y enfoque a la resolución de problemas complejos.

 

  • Otra de las cosas importantes para poder destacar en el campo de TI, es que es necesario que tu personalidad se caracterice por el «se puede hacer» además de tener una excelente habilidad de comunicación.

Como hacer un respaldo en Oracle usando RMAN de la forma mas sencilla

respaldo en oracle usando rman

Respaldo en Oracle usando RMAN:

Para descargar este tutorial en un PDF mucho mas fácil de seguir:
RespaldoyRecuperacionRMAN

 

Escribo este artículo porque al buscar sobre respaldos de Oracle o son extensas explicaciones de cómo funciona RMAN, solo hablare de lo mínimo necesario para tener un respaldo

  • Los scripts están pensados para implementarse en Unix/linux
  • Respaldo completo de la base de datos completa respaldando todos los datafiles
    Respaldo del controlfile
  • Respaldo completo de todos los archivelogs, permitiendo la posibilidad de mover la BD a un punto en el tiempo hacia atrás (definido por el tiempo de retención)
  • Todos los archivos de respaldos ya se encuentran compresos al nivel más eficiente
  • El script configura un tiempo de retención de 7 días, modifica esto dependiendo del tamaño de la BD
  • La ubicación donde guarda los archivos de respaldo no sigue las recomendaciones OFA, los guarda en /Backup/diario por conveniencia de la SAN
  • Dominando los pasos de recuperación se puede recuperar, mover o clonar la base de datos en 15-60 min dependiendo del tamaño de la BD

Read more

Como cambiar el nombre a una base de datos en Oracle 11g fácilmente usando NID

cambiar el nombre a una base de datos
cambiar el nombre a una base de datos

Existen principalmente dos maneras de cambiar el nombre a una base de datos en Oracle 11g, la forma de “la vieja escuela” y la nueva manera.

El cambio de la vieja escuela es mediante “recreando los controlfiles” y el nuevo método es con el comando “nid”; personalmente siempre estuve acostumbrado a recrear los controlfiles es más tardado e involucra un poco más de riesgo pero por lo menos sabes lo que estás haciendo, pero para los novatos es mucho más fácil, rápido y seguro hacerlo mediante el comando nid, a continuación pongo los pasos a seguir:

NOTA:
para realizar estas acciones debes de tener el conocimiento básico de Oracle como:

  • ¿Qué es un tnsnames?
  • ¿Qué es una instancia?
  • ¿Qué es el archivo de parámetros?
  • ¿Cómo modifico las variables de ambiente?
  • Etc.

cambiar el nombre a una base de datos

Ya valide este tutorial, pero aun así no me hago responsable si algo llega a salir mal

  • Paso 1: Respalda la base de datos
    (te recomiendo el método que publique en mi página)
  • Paso 2: apaga la base de datos mediante un “shutdown immediate” y cerciórate que se apague limpiamente (si marca algún error al apagarse no prosigas hasta que se apague normalmente), después de apagarla, monta la base de datos con “startup mount”:

Read more

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’;

 

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 …