Oracle Live

25/08/2016

Database – Migrate SQL Profiles

Filed under: Database — mogukiller @ 3:36 pm
Tags:

Durante las migraciones y para evitar que las queries pierdan los profiles fijados es necesario migrarlos de forma manual siguiendo el siguiente procedimiento.

— Crear tabla intermedia para los profiles.
— Almacenar los profiles en la tabla intermedia.
— Exportar con DataPump la tabla intermedia.
— Enviar el export al nuevo sistema.
— Importar con DataPump la tabla intermedia.
— Desempaquetar los profiles.

SQL>SELECT NAME, SQL_TEXT, CATEGORY, STATUS, TYPE FROM   DBA_SQL_PROFILES;

NAME                           SQL_TEXT                                 CATEGORY   STATUS   TYPE
------------------------------ ---------------------------------------- ---------- -------- -------
SYS_SQLPROF_024d04c5ba580001   SELECT /*+ RULE */ C.COD_USUENVIO,C.COD_ DEFAULT    ENABLED  MANUAL
                               CORREO,COD_LLAMADA,IND_TRATADO,IND_TIPOE

SYS_SQLPROF_034aa9ca5ca10000   SELECT /*+ INDEX(P AC_PASOS_PK)  INDEX(T DEFAULT    ENABLED  MANUAL
                               P AC_TRAMIPASOS_I1) */ P.DES_PASO FROM A

SYS_SQLPROF_043f3c4f5bbe0000   SELECT /*+ INDEX(N AC_NOTAS_I6)*/        DEFAULT    ENABLED  MANUAL
                                      N.COD_NOTA, N.COD_DEPARTAMENTO, N

SYS_SQLPROF_044c98af4a5a0000   SELECT /*+ RULE */ C.COD_USUENVIO,C.COD_ DEFAULT    ENABLED  MANUAL
                               CORREO,COD_LLAMADA,IND_TRATADO,IND_TIPOE

SYS_SQLPROF_03537f1298630000   SELECT F.COD_DEPARTAMENTO, F.COD_TRAMITA DEFAULT    ENABLED  MANUAL
                               CION, F.DES_TRAMITACION, F.COD_PATRONACT

SYS_SQLPROF_014c98ffaec50000   SELECT C.COD_USUENVIO,C.COD_CORREO,COD_L DEFAULT    ENABLED  MANUAL
                               LAMADA,IND_TRATADO,IND_TIPOENT,C.IND_TIP

-- Creamos una tabla donde almacenar nuestros profiles.							   
SQL> BEGIN
     DBMS_SQLTUNE.CREATE_STGTAB_SQLPROF ( 
       table_name  => 'MIG_PROFILE'
   ,   schema_name => 'UOG_MIGRA' 
   );
   END;
   /

-- Almacenamos nuestros profiles en la tabla
SQL> BEGIN
    DBMS_SQLTUNE.PACK_STGTAB_SQLPROF (  
      profile_name         => '%'
  ,   staging_table_name   => 'MIG_PROFILE'
  ,   staging_schema_owner => 'UOG_MIGRA' 
  );
  END;
  / 

-- Exportamos la tabla con DataPump
# cat>exp_profile.par
USERID='UOG_MIGRA/temporal'
DUMPFILE=exp_profile.dmp
DIRECTORY=MIGRACION
TABLES=MIG_PROFILE
LOGFILE=exp_profile.log

# expdp parfile=exp_profile.par
/*
Export: Release 11.2.0.4.0 - Production on Jue May 12 13:05:54 2016

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Iniciando "UOG_MIGRA"."SYS_EXPORT_TABLE_01":  UOG_MIGRA/******** parfile=exp_profile.par 
Estimación en curso mediante el método BLOCKS...
Procesando el tipo de objeto TABLE_EXPORT/TABLE/TABLE_DATA
Estimación total mediante el método BLOCKS: 312 KB
Procesando el tipo de objeto TABLE_EXPORT/TABLE/TABLE
. . "UOG_MIGRA"."MIG_PROFILE"                   66.52 KB      14 filas exportadas
La tabla maestra "UOG_MIGRA"."SYS_EXPORT_TABLE_01" se ha cargado/descargado correctamente
******************************************************************************
El juego de archivos de volcado para UOG_MIGRA.SYS_EXPORT_TABLE_01 es:
  /aplicaciones/nfs_ebil/lmds/exp_profile.dmp
*/
  
-- Enviamos el contenido por scp

-- Importamos con DataPump nuestra tabla con los profiles en el nuevo entorno.
# cat>imp_profile.par
DUMPFILE=exp_profile.dmp
DIRECTORY=MIGRACION
TABLES=UOG_MIGRA.MIG_PROFILE
LOGFILE=imp_profile.log

# impdp \'/ as sysdba\' parfile=imp_profile.par
/*
Import: Release 12.1.0.2.0 - Production on Thu May 12 15:41:06 2016

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
La tabla maestra "SYS"."SYS_IMPORT_TABLE_08" se ha cargado/descargado correctamente
Iniciando "SYS"."SYS_IMPORT_TABLE_08":  "/******** AS SYSDBA" parfile=imp_profile.par 
Procesando el tipo de objeto TABLE_EXPORT/TABLE/TABLE
Procesando el tipo de objeto TABLE_EXPORT/TABLE/TABLE_DATA
. . "UOG_MIGRA"."MIG_PROFILE"                   66.52 KB      14 filas importadas
El trabajo "SYS"."SYS_IMPORT_TABLE_08" ha terminado correctamente en Jue May 12 15:41:08 2016 elapsed 0 00:00:01
*/

-- Desempaquetamos los profiles

SQL>BEGIN
    DBMS_SQLTUNE.UNPACK_STGTAB_SQLPROF(
       replace            => true
  ,    staging_table_name => 'MIG_PROFILE'
  );
  END;
  /
 
-- Comprobamos que se hayan importado correctamente.
 
 SQL> COLUMN category FORMAT a10
 SQL> COLUMN sql_text FORMAT a40
 SQL> SELECT NAME, SQL_TEXT, CATEGORY, STATUS, TYPE FROM   DBA_SQL_PROFILES;
 
 NAME
 ----------------------------------------------------------------------
 SQL_TEXT                                 CATEGORY   STATUS   TYPE
 ---------------------------------------- ---------- -------- -------
 SYS_SQLPROF_0138e14424ce0003
 SELECT /*+ ordered  */ DISTINCT E.COD_EX DEFAULT    ENABLED  MANUAL
 PEDIENTE,E.COD_DEPARTAMENTO,E.DES_EXPEDI
 
 SYS_SQLPROF_044c98af4a5a0000
 SELECT /*+ RULE */ C.COD_USUENVIO,C.COD_ DEFAULT    ENABLED  MANUAL
 CORREO,COD_LLAMADA,IND_TRATADO,IND_TIPOE
 
 SYS_SQLPROF_014c98ffaec50000
 SELECT C.COD_USUENVIO,C.COD_CORREO,COD_L DEFAULT    ENABLED  MANUAL
 LAMADA,IND_TRATADO,IND_TIPOENT,C.IND_TIP
 
 SYS_SQLPROF_024d04c5ba580001
 SELECT /*+ RULE */ C.COD_USUENVIO,C.COD_ DEFAULT    ENABLED  MANUAL
 CORREO,COD_LLAMADA,IND_TRATADO,IND_TIPOE
 
 SYS_SQLPROF_03537f1298630000
 SELECT F.COD_DEPARTAMENTO, F.COD_TRAMITA DEFAULT    ENABLED  MANUAL
 CION, F.DES_TRAMITACION, F.COD_PATRONACT

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: