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


domingo, 20 de marzo de 2011

Recuperar Base de Datos Oracle Sin Backup

Esta nota pretende mostrar un ejemplo de cómo recuperar una base de datos cuando no tenemos un backup y por ejemplo perdemos un disco ó tenemos un datafile corrupto; tal vez no logremos recuperar la información del disco, pero podremos poner de nuevo la base de datos en uso, aunque sin algún(os) tablespace(s).

Cuando encontramos una base de datos abajo e intentamos darle startup nos encontraremos con algo como:

SQL> startup
ORACLE instance started.

viernes, 4 de marzo de 2011

Cambiando El Puerto de Listener

Las bases de datos Oracle trabajan por defecto por el Puerto 1521 , si quieres que no sea tan obvio para alguien hallar tu base de datos, puedes probar cambiando el puerto del listener, he aquí un ejemplo.

En la ruta
/oracle/app/oracle/10.2.0/db/network/admin
Hallamos el archivo de configuración del listener, llamado listener.ora
allí cambiamos el numero del puerto al que queremos.

LISTENER_TEST =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = TEST1)(PORT = 4543))
    )
 )


Luego en nuestra base de datos debemos cambiar el parametro local_listener
sqlplus / as sysdba
SQL>  show parameter local_listener
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string

jueves, 17 de febrero de 2011

Migrando desde Sql Server 2005 Hacia Oracle

Algunos hemos tenido la necesidad de migrar desde Bases de datos de SQL Server hacia Oracle,  cuando son tablas sencillas, bastaría un DTS pero en esquemas más complejos esta opción no es viable, Oracle ha ampliado su herramienta de Oracle SQL developer para incorporar esta  funcionalidad.
Aquí va un pequeño Ejemplo con la base de datos de Sql Server AdventureWorks :).

El primer paso es descargar el sql developer de la página de oracle http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

Luego vamos a necesitar un driver JDBC para SQL Server, lo podemos descargar de la pagina  http://sourceforge.net/projects/jtds/files/jtds/1.2.5/

Despues de abrir el SQL Developer vamos a la opción Preferences del menu Tools

lunes, 7 de febrero de 2011

Instalando Oracle 11g R2 en ASM en HP-UX

En dias pasados, vimos como instalar el  ASM 11g R2 ahora sobre este ASM, realizaremos la instalación de la base de datos Oracle 11g R2. 

De nuevo asumimos que el usuario Oracle y los grupos DBA y Oinstall se encuentran creados y con sus respectivos permisos

PREREQUISITOS

Memoria

-- Requisitos Minimos de Memoria: Al menos 1 Gb de RAM
-- Requisitos de memoria swap
  • Entre 1024 MB and 2048 MB 1.5 del tamaño de la memoria RAM
  • Entre 2049 MB and 8192 MB Igual al tamañao de la memoria RAMMas de 
  • 8192 MB 0.75 del tamaño de la memoria RAM
Parches de Sistema Operativo
PHSS_35979: s700_800 11.23 linker + fdp cumulative patch
PHSS_35978: s700_800 11.23 ac++ runtime (ia: a.06.14, pa: a.03.76)
PHCO_35524: s700_800 11.23 lvm commands patch
PHKL_35478: s700_800 11.23 shmget(2) cumulative patch
PHCO_36673: s700_800 11.23 libc cumulative patch
PHKL_35029: s700_800 11.23 ksleep cumulative patch For HPIA 11.31:
PHKL_35900: 11.31 evacd performance, kvaddr leak panic
PHKL_36248: 11.31 esctl cumulative patch
PHKL_36249: 11.31 esdisk cumulative patch
PHKL_35936: 11.31 call to read(2) or write(2) may incorrectly return -1

miércoles, 19 de enero de 2011

Implementando Oracle Virtual Private Database

Virtual Private Database (VPD) es una de las funcionalidades que nos brinda Oracle Enterprise Edition  para poder realizar restricciones a nivel de filas esto también se podría realizar con vistas o variables de contexto, pero es mucho más simple con VPD. Aquí va un ejemplo de cómo podemos realizarla





**** Nos conectamos como usuarios Sys
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jan 13 13:04:06 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Release 10.2.0.1.0 - Production

sábado, 8 de enero de 2011

Instalando Oracle ASM 11g R2 en HP-UX

En versiones anteriores, el ASM hacia parte del instalador de la base de datos, a partir de Oracle 11g R2, el ASM(Automatic Storage Management)  hace parte de Oracle Grid Infrastructure, así que si queremos que nuestra base de datos use ASM, debemos instalar Oracle Grid Infrastructure antes de instalar la base de datos.aquí va una guia de como hacerlo para un servidor standalone.


PREREQUISITOS
Memoria
-- Requisitos Minimos de Memoria : 4Gigas  Para ver la memoria en HP-UX
 /usr/contrib/bin/machinfo | grep -i Memory
-- Requisitos Minimos de Memoria Swap : 4Gigas Para ver la memoria swap en HP-UX
/usr/sbin/swapinfo –a

Parches de Sistema Operativo
HP-UX 11iV3 patch Bundle Sep/ 2008 (B.11.31.0809.326a) tal vez lo encuentres como PHKL_40682
PHCO_40381 11.31 Disk Owner Patch
PHKL_38038 vm cumulative patch
PHKL_38938 11.31 SCSI cumulative I/O patch
PHKL_39351 Scheduler patch : post wait hang
PHSS_36354 11.31 assembler patch
PHSS_37042 11.31 hppac (packed decimal)
PHSS_37959 Libcl patch for alternate stack issue fix (QXCR1000818011)
PHSS_39094 11.31 linker + fdp cumulative patch
PHSS_39100 11.31 Math Library Cumulative Patch
PHSS_39102 11.31 Integrity Unwind
PHSS_38141 11.31 aC++ Runtime+

Creación de Links
# cd /usr/lib
# ln -s libX11.3 libX11.sl
# ln -s libXIE.2 libXIE.sl
# ln -s libXext.3 libXext.sl
# ln -s libXhp11.3 libXhp11.sl
# ln -s libXi.3 libXi.sl
# ln -s libXm.4 libXm.sl
# ln -s libXp.2 libXp.sl
# ln -s libXt.3 libXt.sl
# ln -s libXtst.2 libXtst.sl++

Creamos el Oracle Home para la instalación
/oracle/app/oracle/product/11.2.0/grid
Configuramos los discos fisicos para el ASM
Para asegurarnos que los discos estan disponibles, ingresamos a la carpeta /dev/rdisk como usuario root y con la instrucción 
/usr/sbin/ioscan -fun -C disk podemos verlo
y cambiamos los permisos sobre los discos que usaremos

 



Instalador
Iniciamos el Instalador para un servidor standalone

La redundancia sera externa, por que sera manejada por Hardware con un RAID 10, así que no necesitamos que el ASM lo haga



Eligiendo en ORACLE_BASE y el ORACLE_HOME
 
Con esto hemos finalizado la instalacion del ASM :)


jueves, 6 de enero de 2011

Instalando Web Logic 10.32 en HP-UX

Instalando Web Logic 10.32 en HP-UX 11.31
Lo primero son los prerequisitos de sistema operativo 
Prerequisitos

Parches de Sistema Operativo
PHKL_35900:11.31 evacd performance, kvaddr leak panic
PHKL_36248:11.31 esctl cumulative patch
PHKL_36249:11.31 esdisk cumulative patch
PHKL_35936:11.31 call to read(2) or write(2) may incorrectly return -l
PHSS_36354
PHSS_37042
PHSS_37959
PHSS_39100
PHSS_39102
PHCO_40381

Para verificar utilice la opción como usuario root
Swlist –l patch |grep PHCO_40381


Crear links 
En  /usr/lib como root










Parametros de Kernel
Para verificar utilice la opción como usuario root
kcweb


ksi_alloc_max (nproc*8)
executable_stack 0
max_thread_proc 1024
maxdsiz 1073741824 (1 GB)
maxdsiz_64bit 2147483648 (2 GB)
maxssiz 134217728 (128 MB)
maxssiz_64bit 1073741824 (1 GB)
maxuprc ((nproc*9)/10)
msgmap (msgtql+2)
msgmni (nproc)
msgseg 32767
msgtql (nproc)
ncsize (ninode+1024)
ncsize (ninode+1024)
nfile (15*nproc+2048)
nflocks (nproc)
ninode (8*nproc+2048)
nkthread (((nproc*7)/4)+16)

Comprobando la version de JAVA 

cd /opt/java6/bin
./java -version
java version "1.6.0.01"
Java(TM) SE Runtime Environment (build 1.6.0.01-jinteg_06_jun_2008_13_24-b00)
Java HotSpot(TM) Server VM (build 1.6.0.01 jinteg:06.07.08-04:50 IA64, mixed mode)

 
Creamos el directorio home
/oracle/app/oracle/product/wl_10.32

Exportar la Variable del JAVA_HOME
export JAVA_HOME=/opt/java6/jre

Asumimos que el usurario Oracle y los grupos ya estan creados, tambien 
que tenemos suficiente memoria y espacio en disco y en  carpeta temporal.

Iniciando la instalación en entorno grafico
$JAVA_HOME/bin/java -d64 -jar wls1032_generic.jar





Sin actualizaciones de seguridad



















Al final podemos continuar el instalador si queremos crear o actualizar  el dominio :)