Archive for the ‘Base de Datos’ Category

Pasos para backup en DB2

lunes, noviembre 26th, 2012

Aqui estan loss pasos para hacer un backup offline en DB2, entiendase offline como, ninguna aplicación esta conectada a la base de datos.

CONNECT TO $NOMBRE_BASE_DE_DATOS;
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
CONNECT RESET;
FORCE APPLICATIONS ALL;
DEACTIVATE DB $NOMBRE_BASE_DE_DATOS;
BACKUP DATABASE $NOMBRE_BASE_DE_DATOS to $RUTA  WITHOUT PROMPTING;
CONNECT TO $NOMBRE_BASE_DE_DATOS;
UNQUIESCE DATABASE;
ACTIVATE DB $NOMBRE_BASE_DE_DATOS;
CONNECT RESET;

En donde:
$NOMBRE_BASE_DE_DATOS es el nombre de la base de datos
$RUTA es la especificacion del directorio en donde se escribirá el backup, en donde el usuario de la base de datos debe tener permiso de escritura

impdp mapeando además el esquema

viernes, octubre 26th, 2012

Como complemento a algo escrito anteriormente conr especto al mapeo de tablespace, también se puede cambiar el esquema que viene por otro previamente configurado en la aplicación.

El comando (complemento del mostrado anteriormente)

 impdp user/password@sid directory=export dumpfile=backup1.dmp logfile=backup.log remap_tablespace=TS_SCHEMA_SDAT:SCHEMA_DAT,TS_SCHEMA_SIDX:SCHEMA_IND remap_schema=viejo_escquema:nuevo_esquema

Como iniciar Enterprise Manager en Oracle 11g

jueves, octubre 18th, 2012

El comando para iniciar es

emctl start dbconsole

Esto, asumiendo que esta todo configurado debiese iniciar correctamente.

impdp con cambio de tablespace

jueves, octubre 18th, 2012

La costumbre de la exportacion e impotacion con la base de datos Oracle se basaba en el uso de los comandos exp e imp respectivamente. Estos comando tienen cambios en la version 11g, que segun la documentación ayudan a la performance de Oracle, por ejemplo en la version Enterprise de Oracle Database el comando exp, no exporta las tablas cuando estas no tienen registros debido a que no tienen espacio asignado, por lo que hay que hacer un truco para que estas se puedan exportar.

Se crearon para esta versión los comando expdp e impdp, que se utilizan «casi» de la misma forma que los tradicionales, ejemplo de exportacion

expdp schemas=scott directory=export dumpfile=backup.dmp logfile=backup.log compression=all

En este caso export es un directorio que previamente debe ser creado en oracle de la siguiente forma

$ sqlplus /nolog 
SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 17 13:39:30 2012
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> create or replace directory export as '/opt/oracle/data';
Directory created.
SQL> grant read, write on directory export to GPI;
Grant succeeded.
SQL> exit

Para luego hacer la importacion.

 impdp user/password@sid directory=export dumpfile=backup.dmp logfile=backup.log 

Que en muchos de los casos es suficiente, pero para algunos como yo, que tiene ordenado cada usuario con su respectivo tablespace tiene la necesidad de «remapear» los tablespace de a los existentes dentro de la instancia actual añadiendo la clausula REMAP_TABLESPACE

 impdp user/password@sid directory=export dumpfile=backup1.dmp logfile=backup.log remap_tablespace=TS_SCHEMA_SDAT:SCHEMA_DAT,TS_SCHEMA_SIDX:SCHEMA_IND

Error SQL0668N en DB2

jueves, octubre 18th, 2012

Este error ocuurre por lo general cuando se hicieron trabajos sobre la tabla o tablespaces, por lo que se requiere una orden para volver a activar la tabla y que este disponible para otras operaciones.

SET INTEGRITY FOR nombre_tabla IMMEDIATE CHECKED

Oracle no inicia luego de un reinicio

martes, octubre 9th, 2012

Debido a que en un servidor Linux se le estableció más RAM hubo que apagarlo, en el estaba instalado Oracle pero la máquina nunca había sido reiniciada luego de la instalacion de Oracle. Quizas el hecho de hacer una instalación Oracle descuidada ayudo a que luego de un reinicio no partiera Oracle, aun cuando estaba claro que en el futuro lo iba a iniciar a linea de mando debido a que al ser instalado no lo introduje en el proceso de init de linux.

Primero, conectarse como usuario de oacle, es conocido que en Linux las operaciones sobre base de datos NO deben hacerse como root. Para cambiarme de usuario al de Oracle y luego iniciar la base de datos ejecute

su - oracle

Luego iniciar la base de datos, previa revision de variables de configuracion del entorno.

Se inicia además el listener, de forma que así se pueda conectarse a la base de datos.

Se conecta a través de SQLPlus para ejecutar el inicio de la base de datos

sqlplus /nolog
connect / as sysdba
startup

Esto puede generar el error

ORA-00205: error in identifying control file, check alert log for more info

Lo que significa que no esta configurado el archivo de control o esta perdido.
Hay que crear un pfile, para luego modificar sus parametros coonsiderando el archivo ctl quese tenga.

Pero para volver a ejecutar el comando debes detener

shutdown abort

Corta todas las conexiones y hace el proceso de shutdown. Puede existir la posibilidad de que aun con esto puedan existir procresos Oracle corriendo a través de un ps -fea, verificar que ninguno este corriendo, puedes identificarlo debido a que estan utilizados por el usuario oracle.

Luego de detener, inicias nuevamente la base de datos apuntando al nuevo pfile

SQL> startup pfile='/opt/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora'
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2220200 bytes
Variable Size             616566616 bytes
Database Buffers          444596224 bytes
Redo Buffers                5554176 bytes
Database mounted.
Database opened.
SQL> exit

Con lo que desde ese momento tienes tu base de datos levantada.