Convertir una base de datos Stand Alone en una base de datos RAC



¿Convertir o no convertir? Esa es la cuestión...



En el siguiente documento, les explico paso a paso como convertir una base de datos Stand Alone en una base de datos en RAC, además se menciona como incorporarlo al clusterware de Oracle, tanto la base de datos como las instancias del RAC.

Haciendo click acá pueden descargar el documento

Espero les sirva

by Ligarius
31.08.15. 12:06:50. 63 words, 2450 views. Categories: Real Application Cluster ,

Cloud y Oracle



Se habla desde algunos años del Cloud Computing y de todas las ventajas que está posee y de siglas como Iaas y Saas y varias más, ¿pero qué significan esas siglas y que relación tienen con Oracle?



Recuerden que el concepto de Cloud Computing es ofrecer un servicio a través de internet, es literalmente un servicio más , que sólo se paga mientras se consume, si lo queremos acercar a la vida real es como la cuenta de electricidad, donde pagamos sólo lo que consumimos, si la empresa necesita una máquina, no tiene por que comprarla físicamente , pueden contratar un servicio de IaaS , que le proporciona una máquina a la medida que desee el cliente y el cliente a su vez, sólo se preocupa de utilizarla y no de todo lo que conlleva tener un servidor, por ejemplo, electricidad, respaldos, networking, etc.

Oracle posee un área especial llamada Cloud, que ha venido potenciando hace bastante tiempo y que resultan muy interesantes de analizar.
Algunas definiciones a tener en cuenta y que nos servirán para ubicarnos dentro del concepto de Cloud.

IaaS (Infraestructure as a Service )
Este concepto implica la entrega al usuario del nivel más bajo del Cloud, la infraestructura, capacidad de procesamiento, memoria, CPUs, redes , firewall, routers, etc. Si se necesita crecer, simplemente se contrata un servicio mayor y no me preocupo de todo lo relacionado con este crecimiento.

Quien posee un increíble servicio de IaaS , es Amazon, se puede ver lo que proporciona en el siguiente link
https://aws.amazon.com/es/ec2/?hp=tile




SaaS (Software as a Service)
Es como la palabra lo indica , el software como un servicio, si lo quisieramos simplificar, es como que desde un PC , sin muchas cualidades, nos conectamos a Internet y hacemos uso de toda la plataforma Microsoft Office , o desde el midmo PC hacemos uso de todos los software que nos proporciona Oracle, sin tener la necesidad de instalar nada, ni de hacer upgrades, ni de preocuparnos con nuestra capacidad de computo, simplemente pagamos por la cantidad de horas que utilicemos un software.

Oracle posee un servicio Cloud de Saas, el cual se puede ver en la URL https://cloud.oracle.com/tryit





DaaS (Database as a Service )
Simplemente lo que andabamos buscando, una base de datos que estuviese en el Cloud, que fuera administrada por terceros, pero que sólo nosotros accediéramos a los datos, sin necesidad de estar pensando en el tuning , el backup o la infraestructura que soporta esa base de datos.



by Ligarius
27.08.15. 17:13:35. 430 words, 9770 views. Categories: Base de datos, Cloud Oracle , • Send a trackback »

Oracle 12c New Features : SQL Loader Express



Siempre lo más complicado de cargar datos mediante SQL Loader, es general el archivo de control.. pues bien, eso hoy tiene una solución rápida y sencilla



Imaginate una situación así.

- Un archivo CSV con la siguiente estructura si lo abrimos mediante un notepad


- Y si lo vemos a través de Microsoft Excel


Pues bien , generar el archivo de control , debería ser algo así

OPTIONS(EXTERNAL_TABLE=EXECUTE, TRIM=LRTRIM)
LOAD DATA
INFILE 'objetos.csv'
APPEND
INTO TABLE OBJETOS
FIELDS TERMINATED BY ","
(
NOMBRE,
EDAD,
DIRECCION
)


Esto podría ser sencillo para un archivo más pequeño, pero imagínense un archivo más grande, con muchos más campos o estructuras más complejas, en esta actividad, en crear el archivo CTL podemos ocupar varias horas, con pruebas y errores.

Pues bien.. desde Oracle 12c, existe una característica que nos permite realizar la carga de un archivo sin necesidad del archivo de control, esta característica se llama SQL LOADER EXPRESS.

¿Cómo funciona? Pues bien, mediante ejemplos probaremos su funcinamiento

- Ejecutamos el comando de la forma más básica

sqlldr usuario/password tabla=nombre_tabla


Con lo anterior , se cumplirá lo siguiente :

- SQL Loader tratará de cargar un archivo llamado nombre_tabla.dat, es lo que buscará mediante la creación de una tabla externa.
- SQL Loader asumirá los campos y tipos que posea la tabla nombre_tabla dentro de nuestra base de datos.
- Se generará por defecto un archivo de control, esto lo podemos ver si buscamos en el archivo nombre_tabla.log
- Si existen registros malos, que no se puedan cargar, se creará por defecto un archivo llamado nombre_tabla.bad
- El formato de las fechas está dado por el seteo NLS existente, el sabrá si se asume YYYY-MM-DD o DD-MM-YYYY.
- Si la tabla posee datos, SQL Loader simplemente cargará los datos al final de los registros existentes (APPEND).

Si quisieramos cargar los datos expuestos en las primeras líneas, simplemente deberíamos ejecutar el comando

sqlldr usuario/pwd table=objetos data=objetos.csv

Y el comando generaría el siguiente archivo de log

SQL*Loader: Release 12.1.0.2.0 - Production on Sáb Ago 22 19:23:49 2015

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

Express Mode Load, Table: OBJETOS
Data File:      objetos.csv
  Bad File:     objetos_%p.bad
  Discard File:  none specified
 
 (Allow all discards)

Number to load: ALL
Number to skip: 0
Errors allowed: 50
Continuation:    none specified
Path used:      External Table

Table OBJETOS, loaded from every logical record.
Insert option in effect for this table: APPEND

   Column Name                  Position   Len  Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
NOMBRE                              FIRST     *   ,       CHARACTER            
EDAD                                 NEXT     *   ,       CHARACTER            
DIRECCION                            NEXT     *   ,       CHARACTER            

Generated control file for possible reuse:
OPTIONS(EXTERNAL_TABLE=EXECUTE, TRIM=LRTRIM)
LOAD DATA
INFILE 'objetos.csv'
APPEND
INTO TABLE OBJETOS
FIELDS TERMINATED BY ","
(
  NOMBRE,
  EDAD,
  DIRECCION
)
End of generated control file for possible reuse.

created temporary directory object SYS_SQLLDR_XT_TMPDIR_00000 for path C:\Hector

enable parallel DML: ALTER SESSION ENABLE PARALLEL DML

creating external table "SYS_SQLLDR_X_EXT_OBJETOS"

CREATE TABLE "SYS_SQLLDR_X_EXT_OBJETOS" 
(
  "NOMBRE" VARCHAR2(100),
  "EDAD" NUMBER,
  "DIRECCION" VARCHAR2(100)
)
ORGANIZATION external 
(
  TYPE oracle_loader
  DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR_00000
  ACCESS PARAMETERS 
  (
    RECORDS DELIMITED BY NEWLINE CHARACTERSET WE8MSWIN1252
    BADFILE 'SYS_SQLLDR_XT_TMPDIR_00000':'objetos_%p.bad'
    LOGFILE 'objetos_%p.log_xt'
    READSIZE 1048576
    FIELDS TERMINATED BY "," LRTRIM 
    REJECT ROWS WITH ALL NULL FIELDS 
    (
      "NOMBRE" CHAR(255),
      "EDAD" CHAR(255),
      "DIRECCION" CHAR(255)
    )
  )
  location 
  (
    'objetos.csv'
  )
)REJECT LIMIT UNLIMITED

executing INSERT statement to load database table OBJETOS

INSERT /*+ append parallel(auto) */ INTO OBJETOS 
(
  NOMBRE,
  EDAD,
  DIRECCION
)
SELECT 
  "NOMBRE",
  "EDAD",
  "DIRECCION"
FROM "SYS_SQLLDR_X_EXT_OBJETOS"

dropping external table "SYS_SQLLDR_X_EXT_OBJETOS"

Table OBJETOS:
  4 Rows successfully loaded.

Run began on Sáb Ago 22 19:23:49 2015
Run ended on Sáb Ago 22 19:23:50 2015

Elapsed time was:     00:00:00.82
CPU time was:         00:00:00.03

La documentación
http://www.oracle.com/technetwork/database/enterprise-edition/learnmore/sqlldr-express-mode-wp-1991038.pdf

Espero les sirva

by Ligarius
22.08.15. 17:33:16. 664 words, 5143 views. Categories: Oracle 12c , • Send a trackback »

Oracle 12c New Features : Comando VALIDATE de RMAN



En Oracle 12c existe un comando que nos puede hacer la vida muy sencilla, o ayudar en que sea más placentera.



El comando VALIDATE para RMAN (Recovery Manager), este comando puede hacer variadas cosas de utilidad para realizar chequeo de corrupción a nivel lógico de bloques (intrablock, o internamente de un sólo bloque) , como a nivel físico de bloques (interblock, o entre bloques).

Cada vez que se ejecuta el comando VALIDATE se chequea de forma manual alguna corrupción lógica o física , cada vez que ejecutamos una validación de por lo menos un datafile, RMAN chequea cada uno de los bloques del archivo y si en este análisis encuentra un bloque corrupto lógica o físicamente , se procede a actualizar la vista V$DATABASE_BLOCK_CORRUPTION, en esta vista queda inscrito el bloque que presenta problemas.

Lo que contiene el presente post.

  • Validación de datafiles
  • Validación de algún bloque en partícular de una datafile
  • Validación de base de datos completa
  • Validación de backupsets
  • Validación por secciones de datafiles

    El detalle de lo comentado :

  • Validación de datafiles : Para realizar el chequeo completo de un datafile, se ejecuta el siguiente comando, el cual arroja entre otras cosas la cantidad de bloques examinados y el valor del SCN más alto encontrado.

    VALIDATE DATAFILE "número datafile";

    Salida del comando :

    RMAN> validate datafile 1;

    Starting validate at 30/05/15
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting validation of datafile
    channel ORA_DISK_1: specifying datafile(s) for validation
    input datafile file number=00001 name=C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\O1_MF_SYSTEM_BDONOH43_.DBF
    channel ORA_DISK_1: validation complete, elapsed time: 00:00:15

    List of Datafiles
    =================
    File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
    ---- ------ -------------- ------------ --------------- ----------
    1    OK     0              18958        104974          18064429
      File Name: C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\O1_MF_SYSTEM_BDONOH43_.DBF
      Block Type Blocks Failing Blocks Processed
      ---------- -------------- ----------------
      Data       0              68354
      Index      0              13822
      Other      0              3826

    channel ORA_DISK_1: starting validation of datafile
    channel ORA_DISK_1: specifying datafile(s) for validation
    including current control file for validation
    including current SPFILE in backup set
    channel ORA_DISK_1: validation complete, elapsed time: 00:00:01
    List of Control File and SPFILE
    ===============================
    File Type Status Blocks Failing Blocks Examined
    ------------ ------ -------------- ---------------
    SPFILE OK 0 2
    Control File OK 0 612
    Finished validate at 30/05/15

    RMAN>



  • Validación de algún bloque en partícular de una datafile : También se puede realizar el chequeo de un sólo bloque dentro de un datafile, quizás por que en el archivo de alertas o un aplicativo nos indico que allí existe una corrupción.

    VALIDATE DATAFILE "número datafile" block "número de bloque";

    Salida del comando :

    RMAN> validate datafile 7 block 1;

    Starting validate at 30/05/15
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting validation of datafile
    channel ORA_DISK_1: specifying datafile(s) for validation
    input datafile file number=00007 name=C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
    channel ORA_DISK_1: validation complete, elapsed time: 00:00:01
    List of Datafiles
    =================

    
    File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
    ---- ------ -------------- ------------ --------------- ----------
    7    OK     0              0            1               0
      File Name: C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
      Block Type Blocks Failing Blocks Processed
      ---------- -------------- ----------------
      Data       0              0
      Index      0              0
      Other      0              1
    

    Finished validate at 30/05/15





  • Validación de base de datos completa : En la validación de la base de datos completa, simplemente se le indica que el VALIDATE será a nivel de base y el genera un informe con todos los bloques que ha recorrido y a que datafile corresponde.

    VALIDATE DATABASE;

    Salida del comando :

    RMAN> validate database;

    Starting validate at 30/05/15
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting validation of datafile
    channel ORA_DISK_1: specifying datafile(s) for validation
    input datafile file number=00007 name=C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
    ****Muestra todos los datafiles que están siendo analizados

    channel ORA_DISK_1: validation complete, elapsed time: 00:01:05

    **** Muestra un resumen por cada uno de los datafiles que han sido analizados, mostrando la cantidad de bloques procesados, con problemas y el tipo de bloques.


    List of Datafiles
    =================
    File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
    ---- ------ -------------- ------------ --------------- ----------
    7 OK 0 129369 131072 18061221
    File Name: C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
    Block Type Blocks Failing Blocks Processed
    ---------- -------------- ----------------
    Data 0 1542
    Index 0 0
    Other 0 161



  • Validación de backupsets : Se le puede indicar un número de backupsets para que sea analizado y nos muestra la misma información que los comandos anteriores, por ejemplo, la cantidad de bloques que ha leído y el máximo SCN que posee el datafile, con esto podemos validar que nuestro backupset es válido para realizar una restauración.

    VALIDATE BACKUPSET "número backupset" ;

    Salida del comando :

    RMAN> validate backupset 1;

    Starting validate at 31/05/15
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting validation of datafile backup set
    channel ORA_DISK_1: reading from backup piece C:\ORACLE12C\FAST_RECOVERY_AREA\PROD12C\BACKUPSET\2015_05_30\O1_MF_NNNDF_TAG20150530T205937_BPNMQ9WG_.BKP
    channel ORA_DISK_1: piece handle=C:\ORACLE12C\FAST_RECOVERY_AREA\PROD12C\BACKUPSET\2015_05_30\O1_MF_NNNDF_TAG20150530T205937_BPNMQ9WG_.BKP tag=TAG20150530
    7
    channel ORA_DISK_1: restored backup piece 1
    channel ORA_DISK_1: validation complete, elapsed time: 00:00:15
    Finished validate at 31/05/15

    RMAN>



  • Validación por secciones de datafiles : Podemos realizar la validación de un datafile , pero si este es muy grande , podemos dividir el trabajo en canales por paralelo, simplemente indicando un número o tamaño de sección para el datafile. Imaginense que poseen un sólo datafile de 100GB, pues bien un sólo canal será capaz de tomarlo y procesarlo, pero si lo dividimos en secciones de 10Gb, podríamos tener hasta 10 canales procesando las 10 partes de nuestro gran datafile.

    RUN
    {
    *** Se declaran los canales que serán utilizados para que en paralelo se tome un sólo datafile
    ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
    ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
    ALLOCATE CHANNEL c2 DEVICE TYPE DISK;

    *** Se le indica el tamaño de la sección a analizar por cada canal generado
    VALIDATE DATAFILE 7 SECTION SIZE 200M;
    }

    Salida del comando :

    RMAN> run
    2> {
    3> allocate channel c1 device type disk;
    4> allocate channel c2 device type disk;
    5> allocate channel c3 device type disk;
    6> validate datafile 7 section size 200m;
    7> }

    released channel: ORA_DISK_1
    allocated channel: c1
    channel c1: SID=7 device type=DISK

    allocated channel: c2
    channel c2: SID=367 device type=DISK

    allocated channel: c3
    channel c3: SID=6 device type=DISK

    *** Se muestran todas las secciones que serán analizadas por cada canal declarado en RMAN
    Starting validate at 30/05/15
    channel c1: starting validation of datafile
    channel c1: specifying datafile(s) for validation
    input datafile file number=00007 name=C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
    validating blocks 1 through 25600
    channel c2: starting validation of datafile
    channel c2: specifying datafile(s) for validation
    input datafile file number=00007 name=C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
    validating blocks 25601 through 51200
    channel c3: starting validation of datafile
    channel c3: specifying datafile(s) for validation
    input datafile file number=00007 name=C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
    validating blocks 51201 through 76800
    channel c1: validation complete, elapsed time: 00:00:08
    channel c1: starting validation of datafile
    channel c1: specifying datafile(s) for validation
    input datafile file number=00007 name=C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
    validating blocks 76801 through 102400
    channel c2: validation complete, elapsed time: 00:00:09
    channel c2: starting validation of datafile
    channel c2: specifying datafile(s) for validation
    input datafile file number=00007 name=C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
    validating blocks 102401 through 128000
    channel c1: validation complete, elapsed time: 00:00:03
    channel c1: starting validation of datafile
    channel c1: specifying datafile(s) for validation
    input datafile file number=00007 name=C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
    validating blocks 128001 through 131072
    channel c3: validation complete, elapsed time: 00:00:11
    channel c2: validation complete, elapsed time: 00:00:04
    channel c1: validation complete, elapsed time: 00:00:01
    List of Datafiles
    =================

    File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
    ---- ------ -------------- ------------ --------------- ----------
    7    OK     0              129369       131067          18061221
      File Name: C:\ORACLE12C\ORADATA\PROD12C\DATAFILE\DATOS01_01.DBF
      Block Type Blocks Failing Blocks Processed
      ---------- -------------- ----------------
      Data       0              1542
      Index      0              0
      Other      0              156

    Finished validate at 30/05/15
    released channel: c1
    released channel: c2
    released channel: c3




    En definitiva, el comando VALIDATE es muy poderoso para realizas chequeos rápidos y certeros sobre las condiciones de nuestros respaldos y de nuestras bases de datos, buscando de manera óptima los posibles bloques corruptos, ya sea , física como lógicamente.

    Documentación del comando VALIDATE
    https://docs.oracle.com/database/121/BRADV/rcmvalid.htm#BRADV90063
    https://docs.oracle.com/database/121/RCMRF/rcmsynta2025.htm#RCMRF162

  • by Ligarius
    30.05.15. 21:24:20. 1427 words, 5805 views. Categories: Oracle 12c, RMAN (Recovery Manager) ,

    Trabajos en el Banco Central de Chile



    Por cosas de la vida , fuí llamado para prestar apoyo en unas actividades relacionadas a creación de ambientes de bases de datos para unos Exalogic que se están instalando en el Banco Central de Chile.



    En realidad mi parte fue bastante sencilla, simplemente instalar unos motores Oracle, crear instancia de ASM, generación de Diskgroups y creación de bases, todo lo anterior aplicando los últimos CPU y PSU , además del típico parchado del OPatch :>>

    El tema es que me encontré con gente que había trabajado hace muchos años atrás como el Sr. Aguayo, creando bases de datos en DataGuard para el mismo Banco Central, con personas a las cuales les hice clases de Grid Control como el Sr. Jorquera en unos de los centros de Oracle University, ex colegas de trabajo en empresas de servicio de Chile como el Sr. Leal y me encontré con personas que leían mi blog , como el Sr. Toledo, la verdad me sentí como en casa, muy cómodo , compartiendo con personas que llevan años en el Banco Central y que son tremendos profesionales , los cuales me conocían directa o indirectamente.

    Lo que me causa gran alegría es que se van dejando grandes recuerdos y experiencias a medida que van pasando los años y se reconoce en parte lo que uno hace.

    Fue un día redondo... muy bueno y provechoso B) , contento señor contento.

    Link de información sobre el Banco Central de Chile
    http://es.wikipedia.org/wiki/Banco_Central_de_Chile

    by Ligarius
    18.04.15. 07:58:41. 263 words, 6154 views. Categories: Cosas varias , • Send a trackback »

    << 1 2 3 4 5 6 7 8 9 10 11 ... 44 >>