taller oracle intermedio 22032009

Upload: matthew-cooper

Post on 03-Jun-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 Taller Oracle Intermedio 22032009

    1/64

    1

    Taller de Administracin deOracle Database 10g (Intermedio)

    Instructor:Ing. Francisco Riccio.OCA Oracle Database 10g

    OCP Oracle Database 10gMCTS SQL Server 2005

    Email:[email protected]

    Fecha:22 de Marzo del 2009.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    2/64

    2

    Temario

    Migracin............................................................................................................................ 3

    Teora.............................................................................................................................. 3

    Mtodos........................................................................................................................... 4Mtodo 1 - Migracin de Oracle 9i a 10g en una misma plataforma........................ 4

    Mtodo 2 - Migracin de Oracle 9i a 10g en misma plataforma .............................. 14

    Mtodo 3 - Migracin de Oracle 9i a 10g utilizando export / import....................... 17Notas para una instalacin de Oracle 9i sobre Linux Red Hat Enterprise 4............. 18

    Instalacin de Parches....................................................................................................... 19

    Diferentes tipos de parches para Oracle Database........................................................ 19

    Instalacin de un Patchset............................................................................................. 21Actualizacin del Opatch a la versin ms reciente ..................................................... 27

    Instalacin del CPU (Oracle Critical Patch Update Enero 2009).............................. 29

    Overview Parches en Oracle e-Business Suite ............................................................. 31Demo de instalacin de un Parche en e-Business Suite................................................ 33

    Oracle Configuration Manager ..................................................................................... 36

    Exportacin e Importacin de Datos................................................................................. 37Uso del exp / imp .......................................................................................................... 37

    EXP........................................................................................................................... 37

    IMP ........................................................................................................................... 38

    Uso del Export Datapump e Import Datapump ............................................................ 40EXPDP...................................................................................................................... 40

    IMPDP ...................................................................................................................... 41

    Desfragmentacin ............................................................................................................. 42Mtodos de desfragmentacin ...................................................................................... 46

    Mtodo 1 Move...................................................................................................... 46

    Mtodo 2 Exp / Imp ............................................................................................... 46Mtodo 3 - Shrink..................................................................................................... 47

    Utilizacin del Enterprise Manager .............................................................................. 48

    Shared Server.................................................................................................................... 52Arquitectura Dedicated y Shared Server....................................................................... 52

    Implementacin............................................................................................................. 55

    Monitoreo...................................................................................................................... 56

    Afinamiento .................................................................................................................. 57Ventas y Desventajas .................................................................................................... 59

    Clonacin.......................................................................................................................... 60

    Tcnicas ........................................................................................................................ 60

    Creando un ambiente con RMAN............................................................................. 60Clonacin del ORACLE_HOME ............................................................................. 63

    Overview Clonaciones en e-Business Suite............................................................... 64

  • 8/12/2019 Taller Oracle Intermedio 22032009

    3/64

    3

    Migracin

    Teora

    Antes de cualquier migracin debemos verificar la matriz que nos indica Oracle(Nota: 316889.1).

  • 8/12/2019 Taller Oracle Intermedio 22032009

    4/64

    4

    Mtodos

    Mtodo 1 - Migracin de Oracle 9i a 10g en una misma plataforma(Asistente)

    Instalacin del motor Oracle 10gR2 con su ltimo patchset y parche deseguridad.

    Utilizar la herramienta Pre-Upgradescript que nos permite analizar labase de datos a migrar (9iR2).

    o Copiar el archivo $ORACLE_HOME/rdbms/admin/utlu102i.sql(Ubicado en el ORACLE_HOME del motor 10gR2).

    o En el servidor a ser migrado (Apuntando al correctoORACLE_HOME a migrar) debemos correr el script como sysdba(Previamente haciendo un pool para visualizar el resultado).

    o Aplicar los cambios solicitados por la herramienta antes de realizarla migracin. Asimismo parmetros obsoletos deben ser removidos

    de la base de datos a migrar. Puntos a considerar adicionalmente antes de la migracin y son:

    o Role CONNECT, en la versin 10g este rol solo tendr el privilegiode crear una sesin, as que debemos identificar que usuariostienen este rol y hacer un anlisis en la base de datos a migrar.

    o Database Link con Password, al migrar a Oracle10g los passwordsse encriptarn por lo tanto se tendr que remover todos los dblinksque estn protegidos por password.

    o Esto aplica solamente de Oracle 10gR1 a Oracle 10gR2, sitenemos tablas con campos TIMESTAMP WITH TIMEZONEdebemos correr un script adicional llamado utltzuv2.sql en

    $ORACLE_HOME/rdbms/admin ubicado en el ORACLE_HOMEdel Oracle 10gR2.El resultado se aprecia en la tabla sys.sys_tzuv2_temptab, dondenos indica que tabla y columna se ver afectada, por lo tantodebemos realizar un export de la tabla y luego cuando acabe lamigracin la importamos.

    o Debemos considerar asimismo el character set del origen debe sercompatible con los character set escogido para la migracin.

    o Verificar que no tengamos objetos invlidos en lo posible, de locontrario. (Ejecutar el script @?/rdbms/admin/utlrp.sql si tenemosobjetos invlidos).

    o Verificar si la tabla dba_registry contiene registros, en casocontrario ejecutar los siguientes scripts (Aplica solamente siestamos migrando de un Oracle 9iR2):

    @/rdbms/admin/catalog.sql @?/rdbms/admin/catproc.sql @?/rdbms/admin/utlrp.sql

    o Revisin del data dictionary, nos podemos apoyar del siguientescript:

  • 8/12/2019 Taller Oracle Intermedio 22032009

    5/64

    5

    set verify offset space 0set line 120set heading off

    set feedback offset pages 1000spool analyze.sql

    select 'analyze cluster "'||cluster_name||'" validate structurecascade;'from dba_clusterswhere owner='SYS'unionSelect 'analyze table "'||table_name||'" validate structurecascade;'

    from dba_tableswhere owner='SYS' and partitioned='NO' and (iot_type='IOT'or iot_type is NULL)unionSelect 'analyze table "'||table_name||'" validate structurecascade into invalid_rows;'from dba_tableswhere owner='SYS' and partitioned='YES';spool off

    SQL> @$ORACLE_HOME/rdbms/admin/utlvalid.sqlSQL> @analyze.sql

    o Importante tambin tener seteado las variablesUNDO_MANAGMENT=AUTO y mantener mapeado el valor delDB_BLOCK_SIZE. (Opcional)

    o Si estamos trabajando con vistas materializadas debemosasegurarnos que el ltimo snapshot sea correcto:

    select distinct(trunc(last_refresh)) fromdba_snapshot_refresh_times;

    o Debemos verificar que ningn tablespace est en modo backup yadems que ningn datafile necesite recover:

    select * from v$recover_file; select * from v$backup where status!='NOT ACTIVE';

    o Si tenemos la auditoria habilitada debemos asegurarnos que latabla aud$ est en el tablespace SYSTEM:

    select tablespace_name from dba_tables wheretable_name='AUD$';

    o Si estamos migrando desde una versin 10gR1 debemos borrar lasiguiente tabla: XDB.MIGR9202STATUS (Nota: 356082.1).

  • 8/12/2019 Taller Oracle Intermedio 22032009

    6/64

    6

    o Respecto a las estadsticas Oracle nos recomienda queejecutemos las estadsticas antes de migrar la base de datos de talmodo que el downtime en la migracin disminuye ya que Oracle10gR2 tratar de recolectar estadsticas de las tablas del datadictionary que no tienen o necesitan despus de la migracin.

    Si migramos de Oracle10gR1 a Oracle10gR2 debemos ejecutar elpackage en la base de datos origen:

    exec DBMS_STATS.GATHER_DICTIONARY_STATS;(Esto toma las estadsticas del SYSTEM, SYS, OUTLN, DBSNMP, etc).

    Si migramos de Oracle 9i a Oracle10gR2 debemos ejecutar elsiguiente package:

    exec DBMS_STATS.GATHER_SCHEMA_STATS('Esquema');Para los esquemas: SYS, OLAPSYS, DMSYS, DBSNMP, OUTLN,SYSTEM, SYSMAN, EXFSYS, ORDSYS, ORDPLUGINS,SI_INFORMTN_SCHEMA, LBACSYS, MDSYS, MDDATA,CTXSYS, WKSYS, MKPROXY, WK_TEST, WMSYS y XDB.

    Debemos tener ya configurado un listener.ora de la base de datos amigrar. (netca), donde explcitamente este registrado el SID.

    Debemos tener una entrada en el oratab hacia la base de datos a migrar,

    ejemplo: BDDEMO:/u01/oracle/app/db/9.2:N Debemos copiar el pfile del Oracle Home del Oracle 9 al Oracle Home delOracle 10g.

    Ejecutar el comando DBUA ubicado en el ORACLE_HOME del Oracle10gR2.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    7/64

    7

    Figura 1

    Figura 2

  • 8/12/2019 Taller Oracle Intermedio 22032009

    8/64

    8

    Figura 3

    Figura 4

  • 8/12/2019 Taller Oracle Intermedio 22032009

    9/64

    9

    Figura 5

    Figura 6

  • 8/12/2019 Taller Oracle Intermedio 22032009

    10/64

    10

    Figura 7

    Figura 8

  • 8/12/2019 Taller Oracle Intermedio 22032009

    11/64

    11

    Figura 9

    Figura 10

  • 8/12/2019 Taller Oracle Intermedio 22032009

    12/64

    12

    Figura 11

    Figura 12

  • 8/12/2019 Taller Oracle Intermedio 22032009

    13/64

    13

    Figura 13

  • 8/12/2019 Taller Oracle Intermedio 22032009

    14/64

    14

    Mtodo 2 - Migracin de Oracle 9i a 10g en misma plataforma.(Manualmente)

    Backup de la base de datos. (Recomendable offline).

    Ejemplo:rman target / nocatalogBACKUP DATABASE FORMAT '/samba/publico/backup_db_%d%T';BACKUP CURRENT CONTROLFILE;

    Instalacin del motor Oracle 10gR2 con su ltimo patchset y parche deseguridad.

    Utilizar la herramienta Pre-Upgradescript que nos permite analizar a labase de datos a migrar (9iR2). Vistos en la primera parte.

    Tener presente los Puntos a considerar adicionalmente antes de la

    migracinen la primera parte. Debemos tener una entrada en el oratab hacia la base de datos a migrar,

    ejemplo: BDDEMO:/u01/oracle/app/db/9.2:N Crear el pfile de la base de datos. El pfile y el password file copilarlo a una nueva ruta. Ajustar el pfile.

    o Remover todos los parmetros obsoletos y modificar losparmetros despreciados.

    o Modificar el parmetro COMPATIBLE a la versin 10. (En nuestrocaso 10.2.0.1)

    o Ajustar los valores recomendados por el script pre-upgrade.o Debemos asegurarnos que las rutas del pfile sea correcta.

    Actualizacin de la base de datos:o Debemos tener nuestros redo logs con un tamao mayor a 4 MB.o En el caso de Windows, debemos crear el servicio de Windows

    con el oradim del ORACLE_HOME del motor Oracle 10g.(Previamente eliminando el servicio anterior.

    o En el caso de Linux / Unixdebemos asegurarnos que lassiguientes variables estn correctamente seteadas al nuevo motorOracle 10g:

    ORACLE_HOME PATH (PATH=$PATH:$ORACLE_HOME/bin) ORA_NLS10 (Opcional) LD_LIBRARY_PATH ($ORACLE_HOME/lib)

    o Debemos asegurarnos que la base de datos est abajo (Esrecomendable hacerlo con un ps -ef)

    o Debemos comenzar una sesin en el sqlplus y apuntar al pfile paracomenzar en modo nomount. (Debemos hacerlo como sysdba) yluego bajar la base de datos.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    15/64

    15

    o Ejecutar STARTUP UPGRADE (Esto abre la base de datos comoun pre versin 10g, solo habilitando conexiones como sysdba, ydeshabilita triggers y cualquier operacin. Esto ejecuta operacionesespeciales para preparar el ambiente para la actualizacin).

    o Debemos crear el tablespace SYSAUX (Si estamos migrando de la

    versin 9.2 hacia abajo). Este tablespace debe ser online,permanente, read write, extent managment local y ASSM.Ejemplo:CREATE TABLESPACE sysauxDATAFILE '/u02/oradata/BDDEMO/sysaux01.dbf'SIZE 500MEXTENT MANAGEMENT LOCALSEGMENT SPACE MANAGEMENT AUTOONLINE; Opcional: BLOCKSIZE 8192;

    o Ejecutar el catupgrd.sql, esto crea y altera ciertas tablas deldiccionario de datos adems de actualizar los siguientes

    componentes de base de datos: Oracle Database Catalog Views Oracle Database Packages and Types JServer JAVA Virtual Machine Oracle Database Java Packages Oracle XDK Oracle Real Application Clusters Oracle Workspace Manager Oracle interMedia Oracle XML Database OLAP Analytic Workspace Oracle OLAP API OLAP Catalog Oracle Text Spatial Oracle Data Mining Oracle Label Security Messaging Gateway Expression Filter Oracle Enterprise Manager Repository

    o Ejecutar el script utlu102s.sql, el cual permite mostrar el status decada componente y la hora del upgrade.

    o Debemos bajar la base de datos y subirla.o Si utilizamos Label Security Polices debemos ejecutar el script

    olstring.sqlo Debemos compilar todos los objetos invlidos con el script: utlrp.sqlo Revisar cuantos objetos invlidos nos queda para su

    troubleshooting. Tareas Post Upgrade:

    o Todos los campos LONG cambiarlos a LOB (Opcional):

  • 8/12/2019 Taller Oracle Intermedio 22032009

    16/64

    16

    select owner, table_name from dba_tab_columns wheredata_type='LONG';ALTER TABLE Long_tab MODIFY ( long_col CLOB );

    o Actualizar los datos timestamp (Solamente si la migracin es de10gR1 como origen):

    UPDATE tztab tSET t.y =(SELECT to_timestamp_tz(t1.y,'YYYY-MM-DD HH24.MI.SSXFF

    TZR') FROM tztab_back t1WHERE t.x=t1.x);

    o Actualizar las estadsticas:EXECUTEDBMS_STATS.UPGRADE_STAT_TABLE('owner','nombre_tabla');

    o Si estamos utilizando usuarios autentificados con SSL debemosactualizarlos: $ORACLE_HOME/rdbms/bin/extusrupgrade --dbconnectstring

    --dbuser --dbuserpassword -a Si en caso el upgrade nos falla y debemos realizar un restore del backup,

    ejecutamos lo siguiente:rman target / nocatalogSTARTUP NOMOUNTRUN{

    RESTORE CONTROLFILE FROM '/smb/publico/controlfile.bk';;ALTER DATABASE MOUNT;RESTORE DATABASE;

    ALTER DATABASE OPEN RESETLOGS;}

  • 8/12/2019 Taller Oracle Intermedio 22032009

    17/64

    17

    Mtodo 3 - Migracin de Oracle 9i a 10g utilizando export / import.Migracin en diferentes plataformas de S.O

    Exportar la base de datos con exp. (Debemos asegurarnos que seaconsistente de tal modo que ningn usuario pueda conectarse).

    Instalar el motor Oracle 10g y crear la base de datos con el mismonombre de la base de datos a migrar. Tener presente los Puntos a considerar adicionalmente antes de la

    migracin de la primera parte. Levantar la nueva base de datos. Crear los tablespaces en la nueva base de datos (Esto es opcional pero

    es recomendable porque as adquiere la ventaja de tener los tablespacescon caractersticas propias de Oracle 10g tales como ASSM).

    Importacin de la data. (Si hemos creado los tablespaces debemosutilizar la opcin IGNORE=Y y si estamos actualizando en el mismoservidor debemos contar con la opcin DESTROY=N para que no

    chanque los datafiles originales). Realizar las tareas de post upgrade ya vistas en el punto anterior.

    Notas para una migracin:

    1. Como primer punto debemos primero validar que tenemos instalado elltimo patchset instalado en el motor de la base de datos que vamos amigrar en preferencia.

    2. Si nuestra base de datos tiene tablespaces en offline debemos colocarlosen read only si nuestra migracin es en plataformas diferentes, ejemplode Windows a AIX.

    3. Se recomienda revisar la nota: 316889.14. Crear el repositorio para el Enterprise Manager:

    emca -config dbcontrol db -repos create

  • 8/12/2019 Taller Oracle Intermedio 22032009

    18/64

    18

    Notas para una instalacin de Oracle 9i sobre Linux Red HatEnterprise 4

    Para una versin Linux Red Hat 4 debemos instalar los paquetes decompatibilidad para Oracle. (Parche 4198954)

    Para una versin Linux Red Hat 3 o superior de 32 bits debemos haberinstalado el parche 3006854como usuario root. Realizar las siguientes configuraciones a nivel de sistema operativo:

    mv /usr/bin/gcc /usr/bin/gcc.origmv /usr/bin/g++ /usr/bin/g++.origln -s /usr/bin/i386-redhat-linux-gcc32 /usr/bin/gccln -s /usr/bin/i386-redhat-linux-g++32 /usr/bin/g++

    Adicional debemos tener seteado las siguientes variable de ambiente:LD_ASSUME_KERNEL=2.4.19.ORACLE_BASEORACLE_HOME

    LD_LIBRARY_PATH

    Abrir el cdigo fuente del dbca y aproximadamente la lnea 124reemplazar la lnea por esta: $JRE_DIR/bin/jre -native-DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m

    -classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca$ARGUMENTS.-native es lo que se agrega.

    Cuando estemos creando la base de datos con el DBCA y conseguimosel siguiente mensaje (figura 14), debemos omitirlo segn la nota:237486.1

    Figura 14

    Ojo: Debeos recordar que para una instalacin de 64 bits, elORACLE_HOME tendr 2 carpetas lib y lib32 donde la variableLD_LIBRARY_PATH debe apuntar a lib y la variable LIBPATH debeapuntar a lib32. Para el caso de 32 bits solo existe la carpeta lib.Esto se debe setear cuando vamos a usar relink.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    19/64

    19

    Instalacin de Parches

    Diferentes tipos de parches para Oracle Database

    Oracle a nivel de Base de Datos tiene 2 categoras de parches: Patch yPatchset.

    El primero es un parche que resuelve un bug determinado o mejora algnproblema de performance etc. Un patch puede agruparse por ms parches, porejemplo los parches de critical patch update.

    Cada 3 meses Oracle lanza un Critical Patch Update (CPU), que deberamosinstalarlo para nuestra seguridad, ya que estos parches parchan algunasvulnerabilidades y adems comprenden un conjunto de parches de bugs.

    Un patchset es un conjunto de parches, pero a diferencia del patch normal, estenos sube de versin ejemplo de la versin 10.2.0.1 a la 10.2.0.4.

    Sea cual sea el parche, estos son descargados de metalink(www.metalink.oracle.com) y ah descargamos los parches necesarios.

    Para descargar los parches se ingresa a www.metalink.oracle.com

    Figura 1

    Escogemos Patch Number.Si tenemos el nmero del parche ingresamos a la mano derecha y damos clic enGO.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    20/64

    20

    Figura 2

    En caso contrario nos presenta la siguiente pantalla:

    Figura 3

    Clic en Quick Links, y podremos descargar por producto sus parchesrespectivos.

    Figura 4

  • 8/12/2019 Taller Oracle Intermedio 22032009

    21/64

    21

    Instalacin de un Patchset

    Siempre que vamos a instalar el parche siempre debemos leer su README.

    En este ejercicio se va a instalar el Patchset 3 el cual nos permitir llevar nuestra

    versin 10.2.0.1 a la versin 10.2.0.4 (La ltima versin del Oracle 10gR2).

    Pasos para instalar el patchset (En un single node):

    Debemos tener seteado las variables ORACLE_HOME y ORACLE_SID. Bajamos servicios. Oracle recomienda sacar un backup a todo el motor y a la base de datos. Ejecutamos el ./runinstaller y seguimos las siguientes pantallas:

    Figura 5

  • 8/12/2019 Taller Oracle Intermedio 22032009

    22/64

    22

    Figura 6

    Figura 7

  • 8/12/2019 Taller Oracle Intermedio 22032009

    23/64

    23

    Figura 8

    Figura 9

  • 8/12/2019 Taller Oracle Intermedio 22032009

    24/64

    24

    Figura 10

    Actualizacin de la base de datos manualmente:o Subir la base de datos: STARTUP UPGRADEo Validacin antes del upgrade: @?/rdbms/admin/utlu102i.sqlo Actualizacin de la metadata a la versin 10.2.0.4:

    @?/rdbms/admin/catupgrd.sqlo Bajar y subir la base de datos: shutdown immediate / startupo Recompilacin de objetos invlidos: @?/rdbms/admin/utlrp.sqlo Revisn de los componentes: SELECT COMP_NAME, VERSION,

    STATUS FROM SYS.DBA_REGISTRY;(Esto debe devolver todos los registros con VALID)

    Cuidado:

    Cuando instalemos un patchset determinado, no nos debemos guiar delREADME para estar seguros si pertenece el parche a una plataformadeterminada.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    25/64

    25

    Por ejemplo:

    Para el Patchset 3 de Oracle 10gR2 para 64 bits sobre Linux el Readme d ice:

    Figura 11

    Figura 12

  • 8/12/2019 Taller Oracle Intermedio 22032009

    26/64

    26

    Figura 13

    Tener presente la siguiente nota de Oracle para un Standard Edition:

    When the 10.2.0.4 patch set is applied to an Oracle Database 10gStandard Edition database, there may be 54 invalid objects after theutlrp.sql script runs. These objects belong to the unsupported componentsand do not affect the database operation.Ignore any messages indicating that the database contains invalid recyclebin objects similar to the following:

    BIN$4lzljWIt9gfgMFeM2hVSoA==$0

  • 8/12/2019 Taller Oracle Intermedio 22032009

    27/64

    27

    Actualizacin del Opatch a la versin ms reciente

    El Opatch es un ejecutable que viene en el motor de Base de Datos.Se encuentra en $ORACLE_HOME/Opatch

    Este ejecutable es responsable de llevar un control de los parches instalados,asimismo de la instalacin de un parche y sus desinstalacin.

    Cuando instalamos un parche, el README del parche nos indica que versin deOpatch debemos tener instalado.

    Para saber la versin del opatch que tenemos instalado: (opatch version)

    Figura 14

    Para saber que parches tenemos instalados: (opatch lsinventory)

    Figura 15

  • 8/12/2019 Taller Oracle Intermedio 22032009

    28/64

    28

    Para instalar el OPatch ms reciente:

    Descargamos de la pgina de metalink el parche: 6880880 y luegoseleccionamos la plataforma que estamos actualmente.

    Descargado el parche (en formato zip), lo descomprimimos y

    reemplazamos toda la carpeta OPatch por los nuevos files.Ejemplo:

    Figura 16

    Como experiencia personal, si el README de un parche indica una versin deopatch determinada, debemos tener al menos esa versin que indica, puedecausar problemas en la base de datos.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    29/64

    29

    Instalacin del CPU (Oracle Critical Patch Update Enero 2009)

    Pasos:

    Descargar el parche de metalink. Descomprimir el archivo zipeado. Agregar a nuestro path la ruta del OPatch, ejemplo:

    PATH=$PATH:$ORACLE_HOME/OPatch Leer el README

    o Estar seguros de la versin del OPatch que nos solicitan: En esteescenario es: 10.2.0.4.2 o superior.

    o Bajar la base de datos.o Ejecutar: opatch napply -skip_subset -skip_duplicate

    Figura 1

    o Si hay conflictos con otros parches se debe abrir un SR en OracleSupport.

    o Oracle indica que si no hemos instalado ningn parche desde Abrildel 2008 y como el nico CPU de Enero del 2008 (Estuvo incluidoen el Patchset 3) debemos ejecutar el siguiente comando: Ejecutarcomo root el comando cpu_root.sh (Previamente setear elORACLE_HOME como root).

    o Aplicar el cutbundle (Esto permite aplicar los parchesacumulativos):

    cd $ORACLE_HOME/rdbms/admin. connect / as sysdba

  • 8/12/2019 Taller Oracle Intermedio 22032009

    30/64

    30

    startup @catbundle.sql cpu apply Revisar el log en: $ORACLE_HOME/cfgtoollogs/catbundle

    (2 files APPLY y GENERATE)o Recompilacin de vistas:

    SHUTDOWN IMMEDIATE STARTUP MIGRATE view_recompile_jan2008cpu.sql

    ($ORACLE_HOME/cpu/view_recompile) $ORACLE_HOME/rdbms/admin/utlrp.sql SHUTDOWN STARTUP

    Este paso de recompilacin de vistas se omite si se ha hecho estepaso en una instalacin de CPU antes si la base de datos fuecreada con Oracle Database 11g. Validarlo con el puntosiguiente.

    o

    Verificacin de la recompilacin de vistas: SELECT * FROMregistry$history where ID = '6452863'; (Debe devolver al menos 1fila)

  • 8/12/2019 Taller Oracle Intermedio 22032009

    31/64

    31

    Overview Parches en Oracle e-Business Suite

    Oracle e-Business Suite es el segundo ERP ms vendido y compitedirectamente con SAP.Este ERP en el tiempo va necesitando una serie de parches tanto para

    problemas funcionales como tcnicos.Cuando tenemos un Oracle Database y encima corriendo un Oracle e-BusinessSuite debemos validar la gua de Oracle e-Business Suite si la instalacin deun patchsetse puede realizaro de lo contrario que parches necesita el ERPpara soportar un cambio de actualizacin de la base de datos.

    A diferencia de Oracle Database, e-Business Suite tiene categorizado susparches en diferentes tipos, pero los ms comunes son:

    One-off patch: Es un simple bug para resolver un problema especfico. Minipack patch: Es una coleccin de One-off patches y mejora un

    relacionado mdulo. Su notacin es: Siglas del Modulo y la versin estdesignada por letras, ejemplo: AD.I, el cual indica: Modulo paraApplications DBA versin I.

    Family Pack patch: Es una coleccin de Minipack patches para unmdulo. Su denotacin es: Siglas del modulo _ PF. Versin, ejemplo:HR_PF.J (Modulo de Recursos Humanos, Family Pack versin J).

    Maintenance Pack patch: Es una coleccin de Family Pack que sube deversin al e-Business Suite, por ejemplo de la versin 11.5.9 a la11.5.1.10, en este caso el Maintenance Pack versin 10.

    Existen as mismo otros tipos de parches especiales:

    Consolidated Patch: Es una coleccin de one-off fix patches para unFamily Pack o Maintenance Pack determinado. Esto sera como subiruna micro versin, Ejemplo: Oracle Applicaton 11.5.10 CU2(Consulidated Update 2)

    Interoperability Patch: Es un parche que se aplica cuando la capa detecnologa es actualizada. Por ejemplo: Si actualizamos la versin debase de datos de 9i a 10g debemos aplicar los correspondientesInteroperabilities Patches.

    NLS patch: Es un parche que actualiza la informacin de un especficoidioma.

    Rollup Patch: Es una collecin de one-off patches que actualizan el nivelde cdigo de un particular producto y es como si subiera tambien demicro versin.

    Legislative Patch: Es un especial patch que contiene informacin de lasnormas legislativa de un pas determinado.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    32/64

    32

    Para saber que parches tenemos instalados en el e-Business Suite:

    $AD_TOP/patch/115/sql/adphrept.sql = Genera un reporte de los parches de lainstancia de Aplicacin.

    Ejemplo:$sqlplus apps/password @adphrept.sql 2 ALL ALL ALL ALL ALL ALL ALL ALLALL N N N N N patches.txt

    Los parmetros enviados son descritos en la nota: 162498.1Pero enviando los parmetros indicados lneas arriba se estara extrayendo todala informacin posible.

    Otro mtodo es consultando la tabla AD_BUGS visualizandolo por el OracleApplication Manager.

    Existe un script de Oracle llamado: patchsets.sh, el cual nos indica que FamilyPack requerimos aplicar en nuestro ambiente.Este archivo debe ser descargado de la web de Oracle para obtener la ltimaversin. (Nota: 139684.1)

    Recomendable realizar un dos2unix porque viene con caracteres raros:Nota: 314442.1

    Ejemplo de su uso:

    sh patchsets.sh applptch=/applptch_11i.txt sh patchsets.sh applptch=/applptch_11i.txt htmlout=Report.html

  • 8/12/2019 Taller Oracle Intermedio 22032009

    33/64

    33

    Demo de instalacin de un Parche en e-Business Suite

    Instalacin del parche 4632932 que es obligatorio en una instalacin de e-Business Suite 11.5

    Nos ubicamos en el directorio de la carpeta deszipeada (del parche). Debemos tener cargado las variables de entorno de la capa Tecnologa. Revisar el README para saber si tiene prerrequisitos.

    Figura 17

  • 8/12/2019 Taller Oracle Intermedio 22032009

    34/64

    34

    Ejecutamos adadmin para colocar el sistema en modo mantenimiento. (Sinuestra versin de e-Business Suite lo tiene).

    Figura 18

  • 8/12/2019 Taller Oracle Intermedio 22032009

    35/64

    35

    Ejecutamos adpatch

    Figura 19

    Figura 20

  • 8/12/2019 Taller Oracle Intermedio 22032009

    36/64

    36

    Quitamos al e-Business Suite en modo mantenimiento.

    Oracle Configuration Manager

    Es una suite de administracin proactiva que nos permite saber cual es elestado de nuestros servidores e instancias directamente y de esta maneraOracle nos apoyar con comentarios de mejora.Es necesario realizar la instalacin de un agente en cada servidor para que serealizara la obtencin de los datos y sea enviada por una comunicacin segura aMetalink.Tambin es posible realizar una instalacin segura para aquellos servidores queno tienen acceso a Internet, esta opcin se realiza manualmente y se generanarchivos de salida los cuales deben enviados a Metalink como un ServiceRequest.

    Existe una demo del Oracle Configuration Manager en:

    http://oukc.oracle.com/static05/opn/region_lob_specific/46869/New/49795/030708_49795_source/030708_49795_demo.html

  • 8/12/2019 Taller Oracle Intermedio 22032009

    37/64

    37

    Exportacin e Importacin de Datos

    Uso del exp / imp

    EXP

    Exp es una herramienta de Oracle para extraer data y metadata de una base dedatos a un file de sistema operativo. Su propsito principal es de transportarinformacin de una base de datos a otra.

    Parmetros importantes

    Feedback = Muestra cada n registros su progreso en pantalla.

    Buffer = Tamao en bytes (Indica el tamao del buffer para leer ciertacantidad de filas en una pasada). Lo recomendable que el valor sea alto. Direct (N) = Indica que no debe pasar por un plan de ejecucin los comandos

    de consulta lanzados por el exp al momento de exportar, es recomendablecolocarlo con el valor Y. (El valor del NLS_LANG del cliente debe ser igual alcharacter set de la base de datos).

    Consistent (N) = Indica que se tomar una foto de todas la tablas y sobre esainformacin se realizar el export, nuevos registros en el transcurso de laexportacin no sern incluidas.

    Full (N) = Exporta toda la base de datos. Tablespaces = Lista de tablespaces.

    Owner = Exportacin de todo un esquema. Tables = Lista de tablas a exportar. Indexes (Y) = Lista de indices a exportar. Grant (Y) = Indica que los grants de los objetos tambin se exportar. Triggers (Y) = Si los triggers tambin se exportarn. Constraints (Y) = Si los constraints sern exportados. Userid = El usuario con privilegios de exportacin. File = Archivo dmp que contendr la exportacin, si ponemos una lista de

    files estos se irn utilizando conforme se vayan llenando, y esto se especificacon el parmetro FILESIZE.

    Resumable (N) = Suspende cuando se quedo corto de espacio en laexportacin, se mantendr en este estado hasta 2 horas por default, peroesto puede ser especificado en el parmetro RESUMABLE_TIMEOUT = # desegundos y el nombre del statement de tipo resumable se especifica con elparmetro RESUMABLE_NAME.

    QUERY = Especfica un where para 1 tabla especificada en Tables, pero elparmetro DIRECT debe ser igual a N. Ejemplo: query=where valor > 0

    Parfile = Indica un file que tendr la configuracin del export.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    38/64

    38

    Ejemplos:

    Exportando el esquema HR

    exp userid=system/oracle statistics=none owner=hr file=exp_esquemahr.dmp

    log=exp_esquemahr.logExportando la tabla COUNTRIES del esquema HR

    exp userid=system/oracle statistics=none tables='HR.COUNTRIES'file=exp_tablahrcountries.dmp log=exp_tablahrcountries.log

    Exportando toda la metada del usuario que se loguea al exp

    exp userid=system/oracle statistics=none rows=yfile=exp_esquemasystemconrows.dmp log=exp_esquemasystemconrows.log

    Exportacin full de base de datos sin data

    exp userid=system/oracle statistics=none full=y rows=n file=exp_fullsindata.dmplog=exp_fullsindata.log

    Exportacin del tablespace SYSAUX

    exp userid=system/oracle statistics=none tablespaces=SYSAUX file=exp_tablespacesysaux.dmp log=exp_tablespacesysaux.log

    IMP

    Parmetros importantes:

    Commit (N) = Indica que por cada arreglo de insercciones har un commit,en su defecto lo har cuando la tabla sea importada completamente.

    Compile (Y) = Indica si despus de finalizar la importacin se compilar losobjetos.

    Statistics (Always) = Esto permite importar las estadsticas de la exportacin.Podemos colocar RECALCULATE para recalcular las estadsticas.

    Fromuser = Especifica una lista de esquemas a importar. Touser = Especifica una lista de esquemas que recibirn la importacin. Ignore = Indica que si un objeto ya existe no pare con la importacin y siga

    con el proceso.

    Ejemplos:

    Importacin de la tabla countries del esquema HR hacia el esquema friccio.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    39/64

    39

    imp userid=system/oracle statistics=recalculate ignore=y fromuser=hrtouser=friccio file=exp_tablahrcountries.dmp log=imp_tablahrcountries.log

    Importacin de los objetos del esquema HR hacia el esquema friccio.

    imp userid=system/oracle statistics=recalculate ignore=y fromuser=hrtouser=friccio file=exp_esquemahr.dmp log=imp_tablahrcountries.log

    Importando solo metadata del esquema HR hacia el esquema friccio

    imp userid=system/oracle statistics=recalculate ignore=y fromuser=hrtouser=friccio rows=n indexes=n file=exp_fullsindata.dmp log=imp_fullsindata.log

  • 8/12/2019 Taller Oracle Intermedio 22032009

    40/64

    40

    Uso del Export Datapump e Import Datapump

    Datapump es la nueva herramienta mejorada de exp/imp para Oracle 10g, estomantiene una mejora enorme respecto a las facilidades que tiene y laperformance que entrega. Trabaja con una nueva arquitectura donde el servidor

    lanza Server Process para atender las peticiones del expdp o impdp.Adems cada export se realiza en el servidor como un proceso el cual podemosmonitorearlo con la vista: dba_datapump_jobs;

    EXPDP

    Nuevos parmetros:

    Content (ALL) = DATA_ONLY, METADATA_ONLY y ALL. Dumpfile = Indica cual es el archivo que almacenar la exportacin. Directory = Indica cual es el directorio. Sample = Porcentaje de data hacer exportada. Exclude / Include = Excluye o incluye ciertos objetos a exportar (tablas,

    vistas, triggers, procedures, etc). Shema = Esquema a exportar. Parallel = # (Esto debe ir asociado a un nmero determinado de files, se

    debe colocar dumpfile=nombre_%U.dmp REMAP_DATAFILE / REMAP_SCHEMA / REMAP_TABLESPACE =

    Permite renombrar al momento de importar. NOLOGILE = No genera redo logs al momento de importar.

    Como requisito debemos primero crear un directorio:create directory MIDIRECTORIO as '/samba/publico';

    grant read, write on directory MIDIRECTORIO to friccio;

    Exportando toda la base de datos.

    expdp userid=system/oracle directory=MIDIRECTORIO full=ydumpfile=expdp_fulldb.dmp

    Exportando toda la base de datos omitiendo al esquema HR.expdp userid=system/oracle directory=MIDIRECTORIO schemas=hrdumpfile=expdp_hr.dmp logfile=expdp_hr.log

  • 8/12/2019 Taller Oracle Intermedio 22032009

    41/64

    41

    Exportando el esquema HR sin la tabla EMPLOYEES

    expdp userid=system/oracle directory=MIDIRECTORIO schemas=hrdumpfile=expdp_hrexcluyendoemp.dmp logfile=expdp_hrexcluyendoemp.logexclude=TABLE:"LIKE'EMPLOYEES'"

    Exportando el esquema HR sin la tabla EMPLOYEES y sin las tablas quecomiencen con JOBS

    expdp userid=system/oracle directory=MIDIRECTORIO schemas=hrdumpfile=expdp_hrexcluyendoempjob.dmplogfile=expdp_hrexcluyendoempjob.logexclude=TABLE:"LIKE'EMPLOYEES'",TABLE:"LIKE'JOB%'"

    Exportando el esquema HR sin la tabla EMPLOYEES sin la vista EMP

    expdp userid=system/oracle directory=MIDIRECTORIO schemas=hrdumpfile=expdp_hrexcluyendoempviewemp.dmplogfile=expdp_hrexcluyendoempviewemp.logexclude=TABLE:"LIKE'EMPLOYEES'",VIEW:"LIKE'EMP'"

    IMPDP

    Importaremos el esquema HR y se lo asignaremos al esquema friccio

    impdp userid=system/oracle dumpfile=expdp_fulldb.dmp

    directory=MIDIRECTORIO schemas=hr REMAP_SCHEMA=hr:friccio nologfile=Nlogfile=impdp_esquemahr.log

  • 8/12/2019 Taller Oracle Intermedio 22032009

    42/64

    42

    Desfragmentacin

    Cuando una tabla o un ndice tiene alto movimiento de transacciones delete esbastante probable que este pasando por un alto ndice de fragmentacin.Lo que sucede es que Oracle cuando ingresa nuevas transacciones no reutiliza

    los bloques que estn vacos, sino sigue escribiendo en nuevos bloques.

    Este sera el escenario despus de n transacciones delete en este datafile:

    Figura 1

    HWM (High Water Mark) es una marca que indica a Oracle donde se haquedado de tal modo que cuando ocurran ms transacciones insert continu yas el HWM se va a ir corriendo.

    La idea de la desfragmentacin es recuperar ese espacio vaci y llevar el HWMhacia la izquierda.

    Con esto ganamos espacio y asimismo mejora al consultar una tabla ya que enuna operacin de I/O solo conseguiremos bloques con data y no bloques llenosy vacos como ocurrira en un escenario fragmentado.

    La idea es conseguir este escenario:

    Figura 2

  • 8/12/2019 Taller Oracle Intermedio 22032009

    43/64

    43

    Para saber cuanto espacio vamos a recuperar aproximadamente despus deuna desfragmentacin, se realiza el siguiente clculo:

    select sum(RECLAIMABLE_SPACE)/1024/1024/1024 "Espacio recuperado enGB" from table (dbms_space.asa_recommendations());

    Si queremos determiner si nuestra base de datos necesita un plan dedesfragmentacin debemos realizar lo siguiente (Nota: 1020182.6):

    Aplicamos el siguiente query:

    create table SPACE_TEMP (TABLESPACE_NAME CHAR(30),CONTIGUOUS_BYTES NUMBER)

    /

    declarecursor query is select *

    from dba_free_spaceorder by tablespace_name, block_id;

    this_row query%rowtype;previous_row query%rowtype;

    total number;

    beginopen query;fetch query into this_row;previous_row := this_row;total := previous_row.bytes;loop

    fetch query into this_row;exit when query%notfound;if this_row.block_id = previous_row.block_id + previous_row.blocks then

    total := total + this_row.bytes;insert into SPACE_TEMP (tablespace_name)values (previous_row.tablespace_name);

    elseinsert into SPACE_TEMP values (previous_row.tablespace_name,

    total);total := this_row.bytes;

    end if;previous_row := this_row;

    end loop;insert into SPACE_TEMP values (previous_row.tablespace_name,

    total);end;./

    set pagesize 60set newpage 0set echo offttitle center 'Contiguous Extents Report' skip 3break on "TABLESPACE NAME" skip page duplicatespool contig_free_space.lisremcolumn "CONTIGUOUS BYTES" format 999,999,999column "COUNT" format 999column "TOTAL BYTES" format 999,999,999

  • 8/12/2019 Taller Oracle Intermedio 22032009

    44/64

    44

    column "TODAY" noprint new_value new_today format a1remselect TABLESPACE_NAME "TABLESPACE NAME",

    CONTIGUOUS_BYTES "CONTIGUOUS BYTES"from SPACE_TEMPwhere CONTIGUOUS_BYTES is not nullorder by TABLESPACE_NAME, CONTIGUOUS_BYTES desc;

    select tablespace_name, count(*) "# OF EXTENTS",sum(contiguous_bytes) "TOTAL BYTES"

    from space_tempgroup by tablespace_name;

    spool off

    drop table SPACE_TEMP/

    El siguiente query nos entrega 2 tipos de resultados.

    El primero nos entrega por cada extent de cada tablespace el size que ocupa:

    Ejemplo:

    Figura 3

  • 8/12/2019 Taller Oracle Intermedio 22032009

    45/64

    45

    El segundo tipo de resultado es el siguiente:

    Figura 4

    El cual nos indica cuantos extents tiene cada tablespace y el total ocupado.

    El escenario ideal para no desfragmentar un tablespace es que tienda a 1 elnmero de extents. Asimismo si un tablespace tiene pocos extents pero eltamao de los extents es grande debemos tambin pensar en desfragmentar.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    46/64

    46

    Mtodos de desfragmentacin

    Mtodo 1 Move

    Est tcnica se basa en mover las tablas de un tablespace fragmentado a otrotablespace.

    Ejemplo: alter table hr.employees move tablespace example;

    Mtodo 2 Exp / Imp

    Aplicar un export e import por esquema o por tablespaces.

    Ejemplo:

    SQL> create tablespace TEST datafile '/u02/oradata/BDDEMO/test.dbf' size10M;Tablespace created.

    SQL> connect friccio/oracleSQL> create table demo (valor int) tablespace TEST;Table created.SQL> insert into demo values (1);1 row created.SQL> commit;

    expdp userid=system/oracle directory=MIDIRECTORIO TABLESPACES=TESTdumpfile=expdp_tablespace.dmp;

    SQL> drop tablespace test including contents and datafiles;

    impdp userid=system/oracle directory=MIDIRECTORIO full=ydumpfile=expdp_tablespace.dmp;

    Aplicando: REMAP_TABLESPACE=viejo_tablespace:nuevo_tablespace

    impdp userid=system/oracle directory=MIDIRECTORIO full=ydumpfile=expdp_tablespace.dmp remap_tablespace=TEST:TEST_NUEVO

  • 8/12/2019 Taller Oracle Intermedio 22032009

    47/64

    47

    Mtodo 3 - Shrink

    Aplicar shrink, este mtodo solo est disponible desde Oracle 10g.

    alter table tabla enable row movement; alter table tabla shrink space;

    Esto generar alto trabajo de I/O, entonces es preferible que primero reordenelos espacios vacos y cuando el CPU este bajo de consumo generar elmovimiento de HWM, entonces:

    alter table tabla enable row movement; alter table tabla shrink space compact; alter table tabla shrink space;

    Cualquier fragmentacin en ese intervalo de tiempo es desfragmentado y se

    mueve el HWM.

    Para desfragmentar todos los objetos dependientes de la tabla, podemosdesfragmentarlo utilizando:

    alter table tabla shrink space cascade;

    Para desfragmentar indices:

    alter index indice shrink space;

    Como experiencia este mtodo es bastante bueno pero tiene el problema que noest permitido para tablas que tengan un campo LONG. Ah debemos aplicar elmtodo exp/imp. Recordando que el tipo de LONG se mantiene porcompatibilidad y es remplazado por LOB (CLOB y BLOB).

  • 8/12/2019 Taller Oracle Intermedio 22032009

    48/64

    48

    Utilizacin del Enterprise Manager

    Clic en la pestaa de Administracin:

    Clic en el link tables:

    Figura 5

    Escoger un esquema:

    Figura 6

    Entramos al detalle a una tabla y luego nos vamos a la parte inferior de lasopciones:

    Figura 7

  • 8/12/2019 Taller Oracle Intermedio 22032009

    49/64

    49

    Figura 8

    Elegimos la opcin que ms nos convenga en ese instante:

    Se enviar como un job:

    Figura 9

  • 8/12/2019 Taller Oracle Intermedio 22032009

    50/64

    50

    Utilizando el Segment Advisor

    Es nuestro asesor para desfragmentacin y se basa en las estadsticas tomadaspor AWR.

    Clic en Advisor Central:

    Figura 10

    Clic en Segment Advisor

    Figura 11

    Tenemos 2 caminos:

    Escogemos las recomendaciones:

    Figura 12

    optamos por un anlisis que puede ser por tablespace esquema.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    51/64

    51

    Figura 13

    Clic en el botn ADD para agregar un tablespace o esquema:

    Figura 14

    Clic en Next y luego lo enviamos como un job.

    Figura 15

  • 8/12/2019 Taller Oracle Intermedio 22032009

    52/64

    52

    Shared Server

    Arquitectura Dedicated y Shared Server

    Un ambiente dedicated es cuando una sesin de base de datos es atendida porun proceso del servidor.Es decir a mayor cantidad de sesiones demandar fuertemente una mayorcantidad de utilizacin de recursos del servidor.

    Shared Server

    La idea del shared Server bsicamente es que para 1 proceso del servidoratender varias sesiones.

    Figura 1

    En est imagen podemos apreciar como trabaja un Oracle en un ambienteShared Server. Una sesin solicita un requerimiento y un nuevo proceso llamado

    Dispatcher toma el requerimiento. (Como si fuera un mozo cuando vamos a unrestaurante y solicitamos nuestro pedido).Luego el dispatcher lo colocar en un pool de requerimientos.Luego un shared Server process (Como si fuera el cocinero) ejecuta la peticin yel resultado lo coloca en la cola de solicitudes atendidas del dispatcher.El dispatcher (mozo) le devuelve el resultado a la sesin (cliente).

  • 8/12/2019 Taller Oracle Intermedio 22032009

    53/64

    53

    Arquitectura:

    En un ambiente dedicated, esta es su arquitectura:

    Figura 2

    En un ambiente shared Server, esta son las variaciones:

    Figura 3

    En el SGA se crearn algunas estructuras: Request queue = Ser utilizada por los shared Server para tomar las

    solicitudes.

    Dispatcher response queue (n) = Existirn n response queue y es paracada dispatcher y es donde el shared Server coloca la informacin delresultado.

    El Large Pool ahora va a mantener informacin de cada sesin.

    El listener tambin tiene un nuevo rol en esta nueva arquitectura, y es la deentregar la informacin a la sesin de que dispatcher lo va a atender.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    54/64

    54

    El listener mantiene una lista de dispatchers disponibles en un ambiente SharedServer. El PMONahora tambin es responsable de indicarle al listener cuandoun dispatcher tomo la solicitud y esto le sirve al listener para saber cuantassolicitudes estn atendiendo cada dispatcher para realizar el balanceo.

    Figura 4

    El trabajo realizado sera el siguiente:

    El cliente se conecta a la base de datos resolviendo por su service name. El listener valida el service name y valida que dispatcher est ms libre. El listener enva la informacin al cliente para se redireccione al

    dispatcher indicado. El dispatcher comienza atender al cliente. El PMON registra la informacin en el listener.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    55/64

    55

    Ambiente mixto:

    Figura 5

    Implementacin

    Debemos definir los dispatchers que atendern:

    alter system setDISPATCHERS="(PRO=PROTOCOLO)(DIS=#)(LIST=ALIAS_TNSNAMES_LISTENER)";

    Ejemplo:

    alter system setDISPATCHERS="(PRO=TCP)(DIS=10)(LIST=BDDEMO)";

    Un buen punto de partida es que un dispatcher atienda 50 sesiones.

    Debemos guiarnos de est formula:

    # de dispatchers = Maximo nmero de conexin concurrentes /conexiones concurrentes por dispatcher

    Configuracin del pooling (opcional):

    Esto permite a Oracle trabajar alto nmero de conexiones, de tal modoque las conexiones las mantiene inactivas si no se estn usando.Este escenario es ideal si manejamos largo nmero de conexiones declientes y tambin largo nmero de conexiones ociosas.

    Aplicaciones Web con buenos candidatos para estos escenarios.

    Implementacin:

    Al dispatcher se le debe agregar 2 atributos (POOL=ON)(TICK=n)Donde ese n esta expresado en 10 minutos, es decir si coloco 2 sera 20minutos, y sera 20 minutos que si la sesin no hace nada se consideraociosa.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    56/64

    56

    alter system setdispatchers="(PRO=TCP)(DIS=15)(LIST=BDDEMO)(POOL=on)(TICK=1)";

    Debemos definer el shared server

    alter system set shared_servers = n;

    Esto definir la cantidad de shared servers que Oracle inicializar cuandoinicie la instancia, y podr aumentar el nmero hasta llegar a un mximoindicado en el max_shared_server y asimismo si necesita los ir liberandohasta no bajar del nmero indicado en el shared_server. Basta solosetear este parmetro para indicar que estamos en Shared Server.

    alter system set max_shared_server = m;

    Debemos definer el shared_server_session

    alter system set shared_server_session = n;

    Aqu definimos el nmero de sesiones que mximo se podrn amarrar alambiente shared. Por ejemplo si definimos el parametro sessions a 1000y definimos el parmetro shared_server_session a 900, solo 100 sesionesestarn disponibles para usar conexiones dedicadas.

    Monitoreo

    Para consultar el estado de los dispatchers.

    lsnrctl services

    Informacin detallada de cada dispatcher:

    select name,status,messages,idle,busy,bytes,breaks from v$dispatcher;

    Campos:

    IDLE y BUSY = Estn en milisegundos.BYTES y MESSAGE = Son valores entregados desde la instancia estarriba.BREAK = Cuando el cliente cerro su sesin abruptamente (Ejemplo:CRTL+C)

    Informacin histrica:

  • 8/12/2019 Taller Oracle Intermedio 22032009

    57/64

    57

    select name,cur_event_rate,cur_msg_rate,cur_svr_byte_ratefrom v$dispatcher_rate

    Debemos tener en cuenta que CUR = Valores actuales, AVG y MAX sonestadsticas.

    CUR_MSG_RATE, nos indica cuantos requerimientos ha colocado alshared Server por segundo.

    Consultar las colas

    select * from v$queue;

    COMMON = Es el queue de los shared Server.

    El resto son las colas para cada dispatcher. Consultar los shared Server

    select name,status,messages,bytes,idle,busy,requests from v$shared_server;

    Saber el nmero de sesiones y conexiones desde que se levanto lainstancia:

    select maximum_connections "MAX CONN",maximum_sessions "MAX

    SESS",servers_started "STARTED" from v$shared_server_monitor;

    Afinamiento

    Configuracin del Shared Pool

    Para saber el espacio libre del Large Pool:

    select * from v$sgastatwhere pool = 'large pool';

    Como generalmente aproximadamente cada conexin consume entre 2 a3 MB de RAM pero esto puede exceder dependiendo del tipo de actividadque realiza.

    El siguiente query es importante ya que nos determina cual es el tamaomximo de un UGA desde que se levanto la instancia:

  • 8/12/2019 Taller Oracle Intermedio 22032009

    58/64

    58

    select sum(value) "Max MTS Memory Allocated"from v$sesstat ss, v$statname stwhere name = 'session uga memory max' and ss.statistic# = st.statistic#;

    En mi ejercicio salio:

    Max MTS Memory Allocated8507172

    Lo cual indica que debo setear al menos el Large Pool a 8.5 MB x lacantidad de usuarios concurrentes.

    Determinar el nmero de Dispatchers

    Indica el porcentaje de trabajo de cada dispatcher:

    select name, (busy / (busy + idle))*100 "Dispatcher % busy Rate"from V$DISPATCHER;

    Si vemos que un dispatcher est ms del 50% de ocupado debemosconsiderar en agregar un dispatcher ms.

    Asimismo debemos calcular cuanto es el tiempo que una sesin esperapara que sea atendido por un dispatcher.

    SELECT decode(sum(totalq),0,No Responses,

    sum(wait)/sum(totalq)) Average Wait timeFROM V$QUEUE q, V$DISPATCHERdWHERE q.type = DISPATCHERAND q.paddr = d.paddr;

    Si el nmero incrementa debemos pensar en agregar otro dispatcher.

    Determinar si contamos con suficientes Shared Server

    select decode(totalq,0,No Requests) Wait Time,Wait/totalq || hundredths of seconds

    Average Wait time per requestfrom V$QUEUEwhere type = COMMON

    Indica cuanto tiempo est el requerimiento en la cola del Shared Serveren segundos. La idea es que este nmero no suba.

    Otra consulta significativa es realizar el siguiente query:

  • 8/12/2019 Taller Oracle Intermedio 22032009

    59/64

    59

    select name, busy from v$shared_server;

    El cual nos indica en milisegundos la cantidad de tiempo que ha estadotrabajando desde que la instancia de BD estuvo arriba.

    Ventas y Desventajas

    Ventajas:

    Cuando el servidor est cayendo en un problema de performance debidoa la falta de recursos, es una buena solucin para ahorrar dinero encompra de nuevo hardware.

    Soportar el mismo nmero de conexiones que un ambiente Dedicated ymuchas ms conexiones sin perjudicar mucho los recursos del servidor.

    Permite connection pooling, de tal modo que permite a Oracledesconectar Oracle Shared Server que estn ociosos y los reactivacuando viene una nueva solicitud.

    Desventaja:

    Aplicaciones que generen grandes resultados en sus selects no sonbuenos candidatos para Shared Server. (Es como si furamos a unrestaurante y vamos con 15 personas la solicitud del mozo y el tiempo deejecucin del cocinero va hacer que demore el proceso).Lo ideal es que cada sesin no genere ms de 16 KB en cada solicitud.

    No podemos levantar y bajar la base de datos en una conexin shared. No deberamos reconstruir ndices, analizar tablas, hacer cargas de data

    en una conexin shared.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    60/64

    60

    Clonacin

    Clonacin se refiere en base a un ambiente armar un ambiente que sea idntico.Ejemplo crear un ambiente QA basado en el Productivo.A diferencia de una restauracin, la clonacin es igual a su copia origen pero

    tiene otro nombre de instancia. La restauracin mantiene el nombre de lainstancia de la base de datos.

    Tcnicas

    Creando un ambiente con RMAN

    Estar en modo archiver.

    Lanzar un backup completo:rman target /RMAN> backup database plus archivelog;

    Crear un listener dedicado a la nueva instancia:

    Abrimos el listener.ora

    Figura 1

    Le aumentamos ambos SID.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    61/64

    61

    Figura 2

    Agregamos una entrada al tnsnames.ora para que apunte a la nuevainstancia:

  • 8/12/2019 Taller Oracle Intermedio 22032009

    62/64

    62

    Figura 3

    Crear un init.ora que va hacer para el nuevo ambiente.

    *.compatible='10.2.0.4'

    *.control_files='/u02/oradata/BDQAS/control01.ctl','/u02/oradata/BDQAS/control02.ctl'*.db_block_size=8192*.db_file_name_convert='/u02/oradata/BDDEMO/','/u02/oradata/BDQAS/'*.db_name='BDQAS'*.log_file_name_convert='/u01/oracle/oradata/BDDEMO/','/u02/oradata/BDQAS/'*.remote_login_passwordfile='exclusive'*.sga_max_size=209715200*.sga_target=209715200

    Al duplicar RMAN crear los controlfiles y copiar los redo logs y losdatafiles segn est establecido en el log_file_name_convert y en eldb_file_name_convert.

    Crear los passwords files de cada ambiente:

    orapwd file=orapwBDDEMO password=oracle entries=5orapwd file=orapwBDQAS password=oracle entries=5

  • 8/12/2019 Taller Oracle Intermedio 22032009

    63/64

    63

    Ingresar al rman para duplicar:

    rman target sys/oracle@BDDEMO auxiliary sys/oracle@BDQASRMAN> DUPLICATE TARGET DATABASE TO BDQAS;

    RMAN> DUPLICATE TARGET DATABASE TO BDQAS UNTIL TIME'SYSDATE-#;;

    La base de datos es abierta como resetlogs. Comentar en el pfile y spfile las entradas db_file_name_convert y

    log_file_name_convert. Si conseguimos un error de PL-561, significa que los 2 ambientes tienen

    un diferente NLS_LANG y deben ser iguales.

    Nota: Este mtodo sirve cuando los ambientes son de la misma plataforma,inclusive si estamos usando una plataforma de 32 bits a 64 bits. En eseescenario necesitamos despus de ejecutar la clonacin, hay que correr elutlrp.sql para convertirlo al nuevo sistema operativo.

    Clonacin del ORACLE_HOME

    Est clonacin nos permite clonar el ORACLE_HOME hacia otro ambiente y nosda las siguientes ventajas:

    Crea una copia del ORACLE_HOME en otro ambiente (QA DEV)contando con todos los parches y configuracin que ya tiene elproductivo.

    Cuando clonamos con clone.pl automticamente es como si hubieramosinstalado una instalacin del motor con todos sus parches, con susrelinkeos y actualiza el inventario.

    En caso no exista el orainventory el mismo lo crea en todo caso loactualiza.

    Es el mtodo ms rpido.

    Desventaja:

    Solo podemos clonar en S.O iguales.

    Pasos:

    Bajar las bases de datos, listeners asociados al ORACLE_HOME. Copiar el ORACLE_HOME hacia otra ruta.

  • 8/12/2019 Taller Oracle Intermedio 22032009

    64/64

    En la nueva copia realizar:o cd $ORACLE_HOME_NUEVOo perl clone.pl ORACLE_HOME=$ORACLE_HOME_NUEVO

    ORACLE_HOME_NAME=NOMBRE_ORACLE_HOME_NUEVO

    Overview Clonaciones en e-Business Suite

    Tcnica PRECLON POSTCLON

    Est mtodo solo aplica cuando la base de datos est en una solucin del e-Business Suite.Es decir esta tcnica es para realizar clonaciones para e-Business Suite.

    Los pasos son los siguientes:

    Tener configurado el AUTOCONFIG (Nota: 165195.1) Preparar a la instancia de BD y APP que van ha servir para una

    clonacin:o cd $ORACLE_HOME (BD)/appsutil/scripts/

    Ejecutar: perl adpreclone.pl dbTiero cd $COMMON_TOP/admin/scripts/

    Ejecutar: perl adpreclone.pl appsTier Realizar una copia consistente de BD y APP hacia el servidor hacer

    clonado. Restaurado la capa de BD y APP debemos postclonar:

    o cd $ORACLE_HOME (BD)/appsutil/scripts/

    Ejecutar: perl adcfgclone.pl dbTiero cd $COMMON_TOP/admin/scripts/

    Ejecutar: perl adcfgclone.pl appsTier Si estamos clonando de un multinodo a single nodo debemos ejecutar

    la siguiente nota: 434613.1