Análisis tristemente realista de la que se nos viene encima.
    Se han publicado 152 historias y se han recibido 680 comentarios y opiniones.

Google


Script de creación de índices usando el catalogo de sistema.
Cuando se crea un objeto en una base de datos, la definición y características de estos objetos son guardadas en el catalogo del sistema de la base de datos. En concreto cuando creamos un índice, disponemos de varias vistas de sistema que nos permiten conocer sus caracteristicas, tanto de definición como de estado actual en la base de datos, estadísticas y un largo etc.

A continuación os adjunto un script que leyendo de las vistas dba_indexes y dbs_ind_columnsnos permite disponer del script de creación de ese índices, con las cláusula más comunes utilizadas para la creación del índice.

Esto puede ser util, por ejemplo, si deseamos hacer una carga masiva en una tabla, que dispone de varios índices, la tarea de la carga se hace bastante más agil si primero de eliminan los índices, lo cual nos obliga a volver a crearlos una vez terminada la carga.

Espero que os sea de utilidad.

set server output on;
DECLARE
CADENA VARCHAR2(1000) := ’’;
CADENA2 VARCHAR2(1000) := ’’;
I_NAME VARCHAR2(200) := ’’;

BEGIN
I_NAME := ’Nombre_Indice’;

SELECT ’(’ ||SUBSTR(SUBSTR(MAX(column_name),0),0,LENGTH(MAX(COLUMN_NAME))-1)|| ’)’ INTO CADENA
FROM ( SELECT SYS_CONNECT_BY_PATH(column_name, ’ ’) column_name
FROM ( SELECT ’"’ || column_name || ’",’ column_name, ROW_NUMBER() OVER (ORDER BY column_position) FILA
FROM DBA_IND_COLUMNS
where index_name = I_NAME )

START WITH FILA = 1
CONNECT BY PRIOR FILA = FILA - 1 ) ;

SELECT ’CREATE ’ || UNIQUENESS || ’ INDEX "’ || OWNER || ’"."’ || INDEX_NAME || ’" ON "’ || OWNER || ’"."’ || table_name || ’" ’ || CADENA || ’ PCTFREE ’ || PCT_FREE || ’ INITRANS ’ || INI_TRANS || ’ MAXTRANS ’ || MAX_TRANS || ’ COMPUTE STATISTICS ’ || ’ STORAGE(INITIAL ’ || INITIAL_EXTENT || ’ NEXT ’ || NVL(NEXT_EXTENT, 1048576) || ’ MINEXTENTS ’ || MIN_EXTENTS
|| ’ MAXEXTENTS ’ || max_extents || ’ PCTINCREASE ’ || NVL(PCT_INCREASE,0) || ’ FREELISTS ’ || NVL(FREELISTS,1)
|| ’ FREELIST GROUPS ’ || FREELIST_GROUPS || ’ BUFFER_POOL ’ || BUFFER_POOL || ’) TABLESPACE "’ || TABLESPACE_NAME || ’";’ INTO CADENA2
FROM DBA_INDEXES
WHERE INDEX_NAME = I_NAME ;
DBMS_OUTPUT.put_line (CADENA2);
END;




Publicado por almondiguilla el dia 08-05-09 a las 08:38:50
0 comentarios Enlace permanente

Como determinar la versión de SQL Server Instalada.
En función del servidor Instalado, 2005, 2000, 7, 6.5 ó 6 existen dos funciones básicas con las que podemos consultar la versión de software de SQL Server instalada. estas son:

· Para versiones posteriores a SQL Server 2000:
SELECT SERVERPROPERTY(’productversion’), SERVERPROPERTY (productlevel’),                              SERVERPROPERTY (’edition’)
La salida de esta instrucción queda así: 8.00.2039 || SP4 || Standard Edition.

· Para versiones anteriores se usa la siguiente consulta:
SELECT @@VERSION
La salida de esta instrucción es algo así: Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)

Aquí os adjunto un listado de los distintos serials de cada una de las variantes del software:

SQL Server 2005.
Versión                                 Serial
RTM                                                   2005.90.1399
SQL Server 2005 Service Pack 1 2005.90.2047
SQL Server 2005 Service Pack 2 2005.90.3042
SQL Server 2005 Service Pack 3 2005.90.4035

SQL Server 2000.
Versión                                  Serial
RTM                                 2000.80.194.0
SQL Server 2000 SP1  2000.80.384.0
SQL Server 2000 SP2  2000.80.534.0
SQL Server 2000 SP3  2000.80.760.0
SQL Server 2000 SP3a 2000.80.760.0
SQL Server 2000 SP4   2000.8.00.2039

SQL Server 7.

Serial                                  Service Pack
7.00.1063                 Service Pack 4 (SP4)
7.00.961                    Service Pack 3 (SP3)
7.00.842                    Service Pack 2 (SP2)
7.00.699                    Service Pack 1 (SP1)
7.00.623                                                  RTM

SQL Server 6.5

Serial                                Service Pack
6.50.479               Service Pack 5a (SP5a) Update
6.50.416                           Service Pack 5a (SP5a)
6.50.415                       Service Pack 5 (SP5)
6.50.281                       Service Pack 4 (SP4)
6.50.258                       Service Pack 3 (SP3)
6.50.240                       Service Pack 2 (SP2)
6.50.213                       Service Pack 1 (SP1)
6.50.201                                                    RTM









Publicado por almondiguilla el dia 06-03-09 a las 10:40:50
0 comentarios Enlace permanente

Upgrade Oracle from 10.2.0.2 to 10.2.0.4
1 INDICE 2
2 INTRODUCCIÓN 3
3 Operaciones previas. 3
4 Instalación Software. 3
5. Operaciones posteriores a la instalación. 3
6. Instalación Opatch y Cliente de Oracle..……………………………………………......6



2 INTRODUCCIÓN
Este documento consiste en los pasos a seguir para realizar correctamente el upgrade de Oracle 10.2.0.2 a Oracle 10.2.0.4, está basado en nuestras experiencias en tales tareas y en los documentos oficiales de Oracle, los cuales debemos consultar para resolver cualquier duda que nos pueda surgir.

3 OPERACIONES PREVIAS.
Con anterioridad a la instalación del software es necesario realizar una serie de operaciones preparatorias, que hay que realizar conectados como usuario oracle.
• Parar todos los procesos de Oracle
o La base de datos : sqlplus / as sysdba : shutdown immediate.
o El Listener: lsnrctl stop
o La Consola de Enterprise Manager : emctl stop dbconsole
• Eliminamos cualquier bloqueo que puedan tener las librerías de Oracle debido al funcionamiento de la base de datos.
o /usr/sbin/slibclean.
• Exportamos el display a la máquina remota desde la que hacemos la instalación, y lanzamos la instalación del software.
o Setenv DISPLAY ip:0.0
o cd /dir_soft_patchset/Disk1
o ./runInstaller.

4 INSTALACIÓN SOFTWARE.
La instalación de software consiste en ir avanzando por las pantallas del instalador con la flecha de siguiente. Como paso final de esta instalación debemos acceder como root al directorio donde se ha producido la instalación ($ORACLE_HOME) y ejecutar el script root.sh, respondiendo las preguntas que va generando el script de manera afirmativa.
Cuando termina esta tarea volvemos a la pantalla del instalador y pulsamos en siguiente para posteriormente pulsar en finalizar.

5. OPERACIONES POSTERIORES A LA INSTALACIÓN.
Una vez finalizada la instalación del software, debemos proceder a actualizar los esquemas de sistema de la base de datos, para ello debemos seguir la siguiente secuencia de operaciones.
• Ejecutar la herramienta de información de pre_upgrade. Siguiendo el siguiente procedimiento.
o Arrancar la base de datos en modo UPGRADE.
 SQL> STARTUP UPGRADE;
o Configurar la salida del sistema a un fichero de log.
 SQL> SPOOL INFO_UP.LOG;
o Ejecutar la herramienta de información de pre_upgrade.
 SQL> @$ORACLE_HOME/rdbms/admin./utlu102i.sql;
o Al finalizar la ejecución liberar el spool para poder visualizar el constando del fichero de log.
 SQL> SPOOL OFF;
• A continuación visualizamos el fichero de log generado por la herramienta anteriormente ejecutada, la salida debe corresponderse aproximadamente con lo siguiente:

Oracle Database 10.2 Upgrade Information Utility 02-04-2008 11:48:11
.
**********************************************************************
Database:
**********************************************************************
--> name: X102040
--> version: 10.2.0.1.0
--> compatible: 10.2.0.1
--> blocksize: 8192
.
**********************************************************************
Tablespaces: [make adjustments in the current environment]
**********************************************************************
--> SYSTEM tablespace is adequate for the upgrade.
.... minimum required size: 505 MB
.... AUTOEXTEND additional space required: 15 MB
--> UNDOTBS1 tablespace is adequate for the upgrade.
.... minimum required size: 401 MB
.... AUTOEXTEND additional space required: 376 MB
--> SYSAUX tablespace is adequate for the upgrade.
.... minimum required size: 265 MB
.... AUTOEXTEND additional space required: 15 MB
--> TEMP tablespace is adequate for the upgrade.
.... minimum required size: 58 MB
.... AUTOEXTEND additional space required: 38 MB
--> EXAMPLE tablespace is adequate for the upgrade.
.... minimum required size: 69 MB
.
**********************************************************************
Update Parameters: [Update Oracle Database 10.2 init.ora or spfile]
**********************************************************************
WARNING: --> "shared_pool_size" needs to be increased to at least 167772160
WARNING: --> "java_pool_size" needs to be increased to at least 67108864
.
**********************************************************************
Components: [The following database components will be upgraded orinstalled]
**********************************************************************
--> Oracle Catalog Views [upgrade] VALID
--> Oracle Packages and Types [upgrade] VALID
--> JServer JAVA Virtual Machine [upgrade] VALID
--> Oracle XDK for Java [upgrade] VALID
--> Oracle Java Packages [upgrade] VALID
--> Oracle Text [upgrade] VALID
--> Oracle XML Database [upgrade] VALID
--> Oracle Workspace Manager [upgrade] VALID
--> Oracle Data Mining [upgrade] VALID
--> Messaging Gateway [upgrade] VALID
--> OLAP Analytic Workspace [upgrade] VALID
--> OLAP Catalog [upgrade] VALID
--> Oracle OLAP API [upgrade] VALID
--> Oracle interMedia [upgrade] VALID
--> Spatial [upgrade] VALID
--> Oracle Ultra Search [upgrade] VALID
--> Oracle Label Security [upgrade] VALID
--> Expression Filter [upgrade] VALID
--> EM Repository [upgrade] VALID
--> Rule Manager [upgrade] VALID
PL/SQL procedure successfully completed.
• En la salida anterior podemos observar que todos los prerequisitos para la actualización se cumplen, si no fuera así debemos tomar las acciones correctoras necesarias y una vez tomadas volver a completar el ciclo expuesto en el punto anterior. Comprobando con posterioridad si se cumplen los prerrequisitos.
• Una vez que los prerrequisitos son cumplidos pasamos a la actualización propiamente dicha, completando el siguiente ciclo de tareas.
o Iniciamos sesión con el usuario oracle.
o Iniciamos el listener de la base de datos.
 Lsnrctl start
o A continuación conectamos a la base de datos con perfil de dba.
 Sqlplus / as sysdba
o Iniciamos la base de datos en modo upgrade.
 SQL> STARTUP UPGRADE;
o Redirigimos la salida del sistema a un fichero de log.
 SQL> SPOOL UPGRADE.LOG;
o Ejecutamos el script de actualización.
 SQL>@$ORACLE_HOME/rdbms/admin./catupgrd.sql;
o Una vez terminada la ejecución liberamos el spool para poder acceder al fichero de log.
 SQL> SPOOL OFF;
o Revisamos el fichero de log generado por la ejecución de script.
 Si encontramos algún error volveremos a ejecutar el citado script.
o Reiniciamos la base de datos.
 SQL> SHUTDOWN IMMEDIATE;
 SQL> STARTUP;
o Ejecutamos el script utlrp.sql para recompilar todos aquellos paquetes que hayan quedado invalidados por el proceso de actualización.
 SQL> @$ORACLE_HOME/rdbms/admin./utlrp.sql
o Ejecutamos la siguiente consulta para comprobar el estado de los componentes después de al actualización.
 SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
 Si en la salida del comando nos salen todos los objetos con STATUS VALID, el proceso ha sido un éxito, en caso contrario deberemos repetir el proceso de actualización desde el principio.







6. INSTALACIÓN OPatch

Opatch

dry run mode para verificar

/bin/sh $ORACLE_HOME/MOpatch/mopatch.sh -v -d

si todo ok:

Nota: En cuanto al catproc y catlog, yo lo pasaría por separado, pero supongo que es lo mismo que hacerlo todo junto.

SQL>@catalog
SQL>@catproc
SQL>@ultrp



Publicado por almondiguilla el dia 05-03-09 a las 11:28:25
1 comentarios Enlace permanente

Parámetro _FIX_CONTROL de Oracle
El parámetro _FIX_CONTROL, oculto para versiones 10R2 y posteriores nos habilita en Oracle la posibilidad de desactivar alguna corrección fallida de bug’s.
Como parámetro oculto de Oracle, debemos ser muy cuidadosos de modificarlo sin la supervisión del soporte de Oracle, ya que un cambio en este parámetro puede suponer que la sistema vaya lentísimo.
El cambio se puede hacer a nivel de sesion o bien a nivel de sistema.
     alter session set “_fix_control”=<número de fix>:ON|OFF’;
     alter system set “_fix_control”=<número de fix>:ON|OFF’ scope=spfile;



Publicado por almondiguilla el dia 23-02-09 a las 11:07:32
0 comentarios Enlace permanente

Export DataPunp de Oracle
Expdp:
La utilidad de exportación de Oracle 10g para extraer datos y metadatos de una base de datos Oracle a un fichero de sistema operativo para proceder a transportar los datos a otra base de datos oracle, copiar objetos y datos entre distintos esquemas o simplemente detectar corrupciones de bloques en la base de datos.

Queda registrado en el sistema como un trabajo, cuyo status puede ser modificado durante la ejecución de manera que podemos pausarlo para más tarde seguir con su ejecución, además nos permite modificar el grado de paralelismo, esto último es muy util si se dispone de un cluster con varias instancias físicas, ya que acelera el proceso de exportación de una manera sorprendente.

A continuación un ejemplillo sencillo y después la sintaxis de uso:

C:> expdp scout/tigre dumpfile=expdp_scott1.dmp directory=data_pump logfile=expdp_scott.log job_name=expdp_scott

Si durante la ejecución de este proceso pulsamos crtl+c nos aparece la consola interactiva de la aplicación, desde donde podemos parar la ejecución

Export> stop_job_immediate
Are you sure you wish to stop this job ([y|n]): y
C:>

Para reanudar el trabajo ...
C:>expdp scott/tiger attach=expdp_scott
Export>start_job



Sintaxis:
expdp [login / sysdba_login] [parámva1] [paramva1]…

login ::= username[/password][@net_service_name]]

sysdba_login ::= ’username/password AS SYSDBA’

paramva1::= {parametro=valor
[parameter=(valor1[,valor2...]]) }

Parámetros ::= {
Attach=[nombre_esquema.]expdp_job
|content={ALL | DATA_ONLY | METADATA_ONLY }
|directory=dir_name
|dumpfile=[directory_name:]file_name [,...]
|estimate={BLOCKS | STATISTICS}
|estimate_only= { y | n}
|exclude=object_type[:name_filter] [,...]
|filesize=tamaño[ B | K | M | G ]
|flashback_scn=fscn
|flashback_time=ftime
|full={y|n}
|help={y|n}
|include=object_type[:name_filter] [,...]
|job_name=expdp_job
|logfile=[directory_name:]file_name [,...]
|network_link=source_db_link
|nologfile={y|n}
|parallel=numero_entero
|parfile=parfile_name
|query=q
|schemas=schema_name [, ...]
|status=interval
|tables=[schema.]table[:partition] [, ...]
|tablespaces=tablespace_name [, ...]
|transport_full_check={y|n}
|trasport_tablespaces=tablespace_name [, ...]
versión={COMPATIBLE | LATEST | version_string}



Publicado por almondiguilla el dia 15-01-09 a las 13:04:17
0 comentarios Enlace permanente