Mar 24, 2008

Rename Database name Oracle (db_name)

--para renombrar una base de datos

sql> alter system switch logfile;

sql> alter database backup controlfile to trace;

-- si la instancia está administrada por spfile
-- (show parameter pfile)
sql> create pfile from spfile;

sql> shutdown immediate


--luego abrimos el último trace generado en la carpeta udump:
hasta encontrar algo similar a lo siguiente:



--copiamos esa parte del archivo a un nuevo archivo *.sql
Cambiamos en el la línea CREATE CONTROLFILE REUSE DATABASE "xxxxx" RESETLOGS NOARCHIVELOG
a
CREATE CONTROLFILE SET DATABASE "xxx" RESETLOGS NOARCHIVELOG
--en el caso anterior esta base de datos se encuentra
--en modo noarchived log

-- el script luciria algo similar a (Sería bueno guardarlo
en un script y luego correrolo con @script.sql desde sqlplus "/as sysdba":

--esto lo añadimos nosotros, indicandole el nuevo pfile
--en ese pfile hay que modificar los parámetros:
--db_name, control_files, user_dump_dest, audit_file_dest, background_dump_dest y
--core_dump_dest con los nuevos valores.
STARTUP NOMOUNT PFILE=/u01/app/oracle/product/10.2.0/db_1/dbs/initlab.ora

--Cuando se setea un nuevo nombre de base de datos se deben
--resetear las secuencias de redolog
CREATE CONTROLFILE SET DATABASE "DUOC" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u02/oradata/duoc/redo01.log' SIZE 50M,
GROUP 2 '/u02/oradata/duoc/redo02.log' SIZE 50M,
GROUP 3 '/u02/oradata/duoc/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/u02/oradata/duoc/system01.dbf',
'/u02/oradata/duoc/undotbs01.dbf',
'/u02/oradata/duoc/sysaux01.dbf',
'/u02/oradata/duoc/users01.dbf',
'/u02/oradata/duoc/example01.dbf'
CHARACTER SET WE8ISO8859P1
;

-- Database can now be opened normally.
ALTER DATABASE OPEN RESETLOGS;
--tempfile

ALTER TABLESPACE TEMP ADD TEMPFILE '/u02/oradata/duoc/temp01.dbf'
SIZE 22020096 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;

--creamos las nuevas rutas de los datafiles, redolog, bdump, udump, controlfiles, etc,
--editamos desde el .bash_profile el ORACLE_SID
--ahora corremos el script

sqlplus "/as sysdba" @script.sql

luego sólo nos queda eliminar las antiguas carpetas que estaban asociadas
al antiguo nombre.

Mar 10, 2008

Forms migration Application Server

Una Simple Receta en 4 simples pasos

Cuando tengamos que migrar una aplicación desarrollada con el modulo forms del Application Server de Oracle, hay que modificar los siguientes archivos en el nuevo servidor.

Primero que todo encargate de copiar todos los archivos relacionados con la aplicación (forms, imágenes, etc..) al nuevo servidor. Una herramienta bastante útil para estos casos es scp, siempre y cuando tengas el demonio arriba en el servidor:

scp -rp /tmp/carpeta_forms oracle@nuevo_servidor:/ruta_nuevos_forms

Los siguientes archivos que se deben tener en cuenta son:

1.- Fijarse en el archivo $ORACLE_HOME/forms/server/default.env en ella existe una línea FORMS_PATH ella es la que apunta a la dirección dónde están almacenados los forms en especial el forms que se utiliza en el paso 2 (Dentro de este archivo también es posible configurar el tipo de lenguaje).

2.- Revisar las últimas líneas del archivo $ORACLE_HOME/forms/server/formsweb.cfg. esto es para la ubicación de la url cuando se invoque desde http://host:puerto/forms/frmservlet?config=ejemplo

#son similares a estas
[ejemplo]
form=ejemplo01
#Probablemente ocupe alguna configuración de tnsnames para conectarse a alguna instancia
userid=ejemplo/ejemplo@ejemplo
separateframe=true
debug_messages=no
otherparams=term=/u01/app/oracle/product/ias10gR2/midtier/forms/admin/resource
/US/fmrpcweb.res

3.- Revisar los alias para las imágenes $ORACLE_HOME/forms/server/forms.conf
#esto es para cuando se invoca una imagen desde la url web
AliasMatch ^/forms/imagenes/(..*) "/ruta_nuevos_forms/imagenes/$1"

4.- Revisar el path de los iconos en $ORACLE_HOME/forms/java/oracle/forms/registry/Registry.dat la línea default.icons.iconpath, esta línea utilizará la url web completa.

Saludos.