lunes, 2 de enero de 2012

ORA-31634: Job Already Exists - El Trabajo ya existe

Export: Release 10.2.0.3.0
Connected to: Oracle Database 10g Enterprise Edition Release ORA-31634: job already exists
ORA-31664: unable to construct unique job name when defaulted

Este error ocurre generalmente cuando existen trabajos huérfanos de datapump que no se han limpiado de la base de datos

¿Cómo saber donde están esos trabajos?
en la vista dba_datapump_jobs se pueden visualizar (no usar las vistas gv$datapump_job que muestra los trabajos que actualmente están corriendo)

SELECT *  FROM dba_datapump_jobs
WHERE job_name NOT LIKE 'BIN$%'
AND STATE = 'NOT RUNNING'

martes, 13 de diciembre de 2011

Oracle Dead Connection Detection

Oracle Dead Connection Detection (ODCD) es una característica implementada a partir de  SQL *Net 2.1 detecta cuando  una conexión TCP ha terminado inesperadamente liberando los recursos asociados a esta.                                                                    Cuando una conexión es establecida, el SQL*NET lee el archivo de parámetros sqlnet.ora, ubicado en la ruta  $ORACLE_HOME/network/admin , este archivo debe contener el parámetro SQLNET.EXPIRE_TIME que especifica el intervalo de tiempo en minutos, para enviar un paquete de verificación  a las conexiones cliente y/o servidor establecidas y saber si aun siguen activas

cuando el tiempo expira, SQL*NEt del lado del servidor, envía un Paquete de prueba al cliente si el cliente tiene la conexión activa, la prueba se descarta y el temporizador es reiniciado. si el cliente ha terminado anormalmente, el servidor recibe un error del envió del paquete  y el SQL*Net envía una señal al sistema operativo para que libere los recursos asociados a esa conexióny al proceso PMON para que realice la limpieza del proceso y los recursos en la Base de datos.

martes, 23 de agosto de 2011

Error ORA-01843: Not a Valid Month

Al tratar de realizar un import de un esquema

c:\>  imp system/prueba@prueba  file=prueba.dmp  log=prueba.log fromuser=scott touser=tiger
Recibimos el error
IMP-00017: following statement failed with ORACLE error 1843:
" ALTER TABLE "TABLA1" MODIFY ("FECHA" DEFAULT '01-01-2009' )"

IMP-00003: ORACLE error 1843 encountered
ORA-01843: not a valid month

Este error ocurre generalmente por que tenemos configurado el NLS_DATE_FORMAT diferente a como esta la tabla.

Para solucionarlo simplemente configuramos las variables (para sistemas unix)
export NLS_DATE_FORMAT=DD-MM-RRRR
export NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252

Si estamos en un sistema operativo windows debemos modificar estas entradas en el regedit :)

miércoles, 6 de julio de 2011

Iniciar y Detener Bases de Datos Oracle Automáticamente

Lo primero que debemos hacer si queremos iniciar y detener nuestras bases de datos Oracle automáticamente es modificar el archivo oratab, en éste archivo se almacena la información de las bases de datos instaladas además de indicar si las instancias deben iniciar automáticamente.


Editar el archivo oratab
editamos el archivo oratab con usuario root
vi  /etc/oratab
editamos la linea TEST:/oracle/app/oracle/10.2.0/db:N y la cambiamos a Y
TEST:/oracle/app/oracle/10.2.0/db:Y

martes, 28 de junio de 2011

Restaurar Base de Datos Master en SQL Server 2000

Mover bases de datos entre servidores en SQL SERVER es generalmente sencillo, pero cuando se trata de la base de datos Master, es un poco más complejo. Aquí va un ejemplo de cómo restaurar la base de datos master en otro servidor.

Vamos a asumir que el SQL SERVER 2000 ya esta instalado en la nueva máquina, y tiene los mismos service packs a nivel de base de datos de la maquina original, ahora seguiremos estos pasos:

1. En la nueva máquina vamos a detener los servicios del SQL SERVER 2000
net stop MSSQLServer

2. Iniciar  el servicio SQL SERVER en modo single-user
sqlservr -c -m

viernes, 13 de mayo de 2011

Matar sesiones de un usuario

En Oracle existen varias formas de Matar una sesión de usuario, Aquí va  un ejemplo de un procedimiento que puede hacerlo, sirve para versiones  10g y  anteriores, recibe como parametro el usuario a cancelar y elimina todas las sesiones

 CREATE OR REPLACE PROCEDURE Matar_una_sesion ( Usuario in varchar2)  AS
Sesion  varchar2(20);
Serial  varchar2(20);
Cursor_Sql integer;
Retorno integer;
Comando VARCHAR2(100);

viernes, 1 de abril de 2011

Error en Listener "The listener supports no services "

Hace poco estabamos realizando una instalación de Oracle 11g y cambiamos el puerto del listener, configuramos el listener.ora el tnsnames.ora pero aún asi no funcionaba.

Entrada en el tnsnames.ora
TEST11G =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =TEST)(PORT = 1523)))
    (CONNECT_DATA =
     (SERVICE_NAME = TEST11G)))


Entrada del listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = TEST)(PORT = 1523))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1523))
    )
  )
ADR_BASE_LISTENER = /oracle/app/oracle