15 junio 2011

Acceso a una bbdd MS SQLServer desde Oracle.


Es posible acceder a bases de datos no Oracle (Si, hay gente que no cree, en Oracle y adquiere "bases de datos" de otros fabricantes) de forma transparente con Oracle Transparent Gateway, usando una la arquitectura de servicios heterogéneos.




La arquitectura de servicios heterogéneos se basa en la siguiente configuración:

Se especifica una entrada de TNS en el fichero
 tnsnames.ora que resuelva una conexión al servidor, puerto y nombre de servicio determinado, con el parámetro HS=OK.. En este ejemplo vamos a suponer que queremos extraer datos de una bbdd MS SQL Server 2008 R2, mediante la ejecución de una función PL/SQL.

Pasos a seguir:

  • Instalar en el diccionario los servicios heterogéneos.
  • Configurar el tnsnames.ora.
  • Configurar el listener.ora.
  • Comprobar que ambos ficheros funcionan correctamente.
  • Configurar el ODBC para la bbdd MS server.
  • Crear el DBLINK hacia la bbdd MS Server
  • Ejecutar una consulta mediante ese dblink. 

 Instalar en el diccionario los servicios heterogéneos.

Hay que ejecutar el siguiente código, como usuario SYS.:

@? $ORACLE_HOME/rdbms/admin/caths.sql

Para verificar que se han instalado correctamente el diccionario de servicios heterogéneos lo podemos  verificar de la siguiente manera:

SQL> DESCRIBE HS_FDS_INST;

Si no devuelve error alguno se ha ejecutado/instalado el catálogo de servicios heterogéneos adecuadamente.


 Configurar el fichero listener.ora

# listener.ora Network Configuration File: /opt/oracle/product/11gR2/db/network/admin/listener.ora
# Generated by Oracle configuration tools.
 LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = server_name)(PORT = 1521))
    )  
)
SID_LIST_LISTENER=
   (SID_LIST=
      (SID_DESC= 
         (SID_NAME=dg4msql)
         (ORACLE_HOME=/opt/oracle/product/11gR2/db)
          (ENVS=LD_LIBRARY_PATH=/usr/lib64:/opt/oracle/product/11gR2/db/dg4msql/driver/lib)
         (PROGRAM=dg4msql)       
      )
)
ADR_BASE_LISTENER = /opt/oracle

dg4msql es el Oracle Database Gateway for MS SQL Server, se puede instalar en el nodo Linux, el nodo Windows o en un  tercer nodo independiente. DG4MSQL 11i R2 esta soportado para  Windows 2008 R2 64bit.

 Configurar el fichero TNSNAMES.ora



# tnsnames.ora Network Configuration File: /opt/oracle/product/11gR2/db/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

#Maquina donde se haya el MS SQLServer
MSSQL=
   (DESCRIPTION=
      (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=gdlsndb001pre)
         (PORT=1521)
      )
      (CONNECT_DATA=
         (SID=MSSQL))
      (HS=OK))
 
# Maquina que tiene el Oracle Transparent Gateway 
dg4msql=
   (DESCRIPTION=
      (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=gdlsndb001pre)
         (PORT=1521)
      )
      (CONNECT_DATA=
         (SID=dg4msql))
      (HS=OK))
 
LISTENER_SID =
  (ADDRESS = (PROTOCOL = TCP)(HOST = hostname01)(PORT = 1521))

15 noviembre 2010

Método de mejora del rendimiento de Oracle.


Introducción a la mejora de rendimiento


La metodología del rendimiento nos ayudará a identificar problemas de rendimiento en el sistema Oracle. Esto implica la identificación de cuellos de botella y cómo solucionarlo.
La mejora del rendimiento, por su naturaleza, es iterativa. Por esta razón, la eliminación de los primeros cuellos de botella no podría conducir a la mejora del rendimiento inmediato, debido a que otro cuello de botella puede ser revelado. Con la experiencia, y siguiendo un riguroso método de eliminación de cuellos de botella, las aplicaciones pueden ser depuradas y hacerlas escalables.
Los problemas de rendimiento general, el resultado ya sea una falta de rendimiento, de uso inaceptable del tiempo de respuesta, o ambos. El problema puede estar localizado entre los módulos de aplicación, o puede ser que sea para todo el sistema.
Antes de buscar en cualquier base de datos o estadísticas de funcionamiento del sistema, es crucial obtener retroalimentación de los componentes más importantes del sistema: los usuarios del sistema.
Donde deberíamos dirigir nuestros esfuerzos encaminados a mejorar el rendimiento de una plataforma Oracle:
  • Diseño de la base de datos
    • Normalización
    • Desnormalización selectiva
    • Partición, ajustándose a la versión de motor de base de datos a optimizar.
  • Ajuste de las aplicaciones.
    • Ajuste de sentencias SQL
  • Ajuste de la memoria.
    • Ajuste de los database buffers (shared pool, buffer cache, log buffer, etc)
  • Ajuste de la I/O de disco.
    • Mejorar el rendimiento del sistema de discos
  • Eliminar la contención en la base de datos.
    • Estudiar y solventar los bloqueos.
  • Ajuste del sistema operativo.
    • Monitorizar el rendimiento de las CPU, I/O, entrada y salida de memoria.
Herramientas que disponemos.
  • ADDM (Automated Database Diagnostics Monitor) Oracle 10g
  • TKProf
  • Statspack
  • Oracle Enterprise Manager - Tuning Pack (Si tienen licencia)
  • Old UTLBSTAT.SQL y UTLESTAT.SQL

07 octubre 2010

¿Que puedo hacer con cada edición de Oracle Database?



Desde que trabajo en esto llega un día en que surge siempre este tipo de pregunta: 


"Pero ¿Esto lo puede hacer la Standard Editon de Oracle, no?"


Y me toca mirar que se puede hacer con cada edición de a base de datos. Pero después de meter la pata mas de una vez decidí hacerme con un esquema como el que viene a continuación.


Características claves
Máximos
1 CPU
2 Sockets
4 Sockets
No
RAM
1GB
OS Max
OS Max
OS Max
Tamaño de la base de datos
4GB
No
No
No
Windows
X
X
X
X
Linux
X
X
X
X
Unix

X
X
X
Soporte 64 Bit

X
X
X
Alta disponibilidad 




Total Recall



Opción
Active Data Guard



Opción
Fail Safe. 

X
X
X
Flashback Query
X
X
X
X
Flashback Table, Database and Transaction Query



X
Oracle Secure Backup
Es un producto que se ejecuta en cada base de datos
Server Managed Backup and Recovery

X
X
X
Escalabilidad




Real Application Clusters


X
Opción
Real Application Clusters One Node



Opción
Integrated Clusterware

X
X
X
Automatic Workload Management


X
X
Java, PL/SQL Native Compilation
PL/SQL
X
X
X
In-Memory Database Cache



Opción
Seguridad




Oracle Database Vault



Opción
Oracle Audit Vault. 
Es un producto que se ejecuta en cada base de datos
Oracle Advanced Security



Opción
Oracle Label Security



Opción
Secure Application Roles



X
Virtual Private Database



X
Fine-Grained Auditing



X
Proxy Authentication

X
X
X
Data Encryption Toolkit
X
X
X
X
Desarrollo de aplicaciones




Oracle SQL Developer
X
X
X
X
Application Express
X
X
X
X
Java Support

X
X
X
Comprehensive XML Support
X
X
X
X
PL/SQL and Java Server Pages
PL/SQL
X
X
X
Comprehensive Microsoft .Net Support, OLE DB, ODBC
X
X
X
X
Gestionabilidad




Real Application Testing



Opción
Enterprise Manager

X
X
X
Automatic Memory Management
X
X
X
X
Automatic Storage Management

X
X
X
Automatic Undo Management
X
X
X
X
Data Warehousing  




Advanced Compression



Opción
OLAP



Opción
Partitioning



Opción
Advanced Analytics



Opción
Transportable Tablespaces, Including Cross-Platform



X
Star Query Optimization
PL/SQL
X
X
X
Information Lifecycle Management



X
Summary Management - Materialized View Query Rewrite



X
Integración




Advanced Queuing
X
X
X
X
Distributed Queries/Transactions.
X
X
X
X
Gestión de contenidos




XML DB
X
X
X
X
Multimedia

X
X
X
Text
X
X
X
X
Locator
X
X
X
X
Spatial



Opción
Secure Enterprise Search
Es un producto que se ejecuta en cada base de datos