Plataforma de datos

Plataformas de gestión de datos, bases de datos y almacenamiento

Sincronización de la base de datos de Microsoft Dynamics AX 2009 sobre Sql Server 2008

Para aquellos administradores de bases de datos que deban tratar con un tal Dynamics Ax 2009 y sus secuaces (desarrolladores, consultores, etc ) dejo aquí un par de cosillas que se deben saber(o te deben decir) cuando unimos ax2009 y sql server 2008. A veces se puede apuntar a la base de datos como fuente del problema pero no siempre es así.  Algunos requerimientos a tener en cuenta para la instalación de Ax2009 son que el usuario con el que quieran acceder para hacer la instalación debe ser usuario de DOMINIO y en sql server debe ser miembro de rol dbcreator y securityadmin para poder crear la nueva base  de datos desde el instalador de Ax. Una vez instalado (o durante el proceso de instalación) los problema con la base de datos que nos podemos encontrar pueden ser:

Caso 1:
Otro problema conocido en la sincronización de datos puede producirse por la falta de permisos. El mensaje dice algo así:

Exportar fácilmente datos de Oracle a un fichero plano

Una manera muy simple de exportar datos de una consulta, tabla, etc. de una base de datos oracle a un fichero plano es utilizar el comando SPOOL de SQLPlus. De esta manera no es necesario depender de herramientas visuales, que no siempre están disponibles, o no siempre funcionan como queremos.

Además, se pueden utilizar las funciones de formato de Oracle en la misma sentencia SELECT para que los datos se generen ya en el formato que necesitemos.

Ejemplo de exportación de datos a un fichero plano desde SQLPlus

Si, por ejemplo, queremos recuperar algunos datos de todos los registros de una tabla de clientes ordenados por fecha de alta, sólo hay que abrir una sesión de SQLPlus y ejecutar esta serie de comandos:

Oracle 10g: Estadísticas artesanales de nuestra base de datos en el tiempo

Normalmente para analizar lo que pasa unas horas antes bastaría con consultar los datos históricos del Enterprise Manager pero no tenemos datos como el detalle de sesiones activas (si la cantidad total) o el estado o programa de cada una de ellas. También consultar las instantáneas en la consola web pero el problema sigue siendo el mismo, la falta de detalle. Pero no todo es insalvable y podemos en tres pasos completar esta información con algo más de detalle.

 

Paso 1: Crear una tabla con los datos que necesitaremos con un campo fecha.

Paso 2: Crear un procedimiento para alimentar la tabla con datos.

Paso 3: Crear un job con el usuario indicado para acumular datos.

 

Esta técnica puede ser “cutre” pero muchas veces sirve para analizar con más detalle y a nuestro gusto ciertas estadísticas que son visibles mediante vistas v$ que muestran el estado actual de la base de datos y que directamente no muestran un estado anterior en el tiempo.

 

Oracle 10g: Posible optimización de volcado masivo de datos

 

Optimizacion de sentencias de Oracle SQL

En Oracle SQL, se pueden optimizar ejecuciones batch que hagan un volcado masivo de datos en una misma tabla usando sentencias de insert o update por registro dentro de un bloque. Se pueden optimizar con el uso de parámetros (si el cliente lo permite) o si usamos odbc con bind variables.

Oracle 10g: Resumir tablespaces transportando tablas e indices

Por el motivo que sea nos podemos encontrar que en nuestra base de datos Oracle tenemos muchos tablespace y para hacer un poquito de limpieza decidamos resumir los que estén duplicados. Entoces nos dirigimos a OEM y vemos una maravillosa liista de 50 tablespace con nombres sin sentido, algunos vacíos y otros por triplicado por que han llegado al tamaño que consideran máximo (en lugar de tres datafiles) etc etc... Llega el momento de ponerse manos a la obra.

Recordar que para ver el contenido de un tablespace nos podemos dirigir a Oracle Enterprise Manager y en la sección Administración>tablespaces marcar el que queramos, seleccionar en el desplegable Mostrar Dependencias y luego pulsando Ir. Luego veremos una segunda pestaña Dependientes. Ahí se muestran todos los objetos dependientes del tablespace (contenidos, vamos).

Terminado el manual de Base de datos del Master de Software Libre de la UOC

Por fin hemos terminado con la publicación del manual online sobre Bases de datos, material docente editado por la UOC para su Master de Software Libre.

Comentábamos su contenido en el post Material sobre bases de datos 'libres', Master de la UOC.

Flujo de datos y control de una base de datos

Como podréis ver en los contenidos es un material docente de gran calidad, donde se pueden encontrar tanto los conocimientos teóricos necesarios para entender y trabajar seriamente con cualquier tipo de base de datos relacional como conocimientos más técnicos y específicos para manejarse con bases de datos Open Source como MySQL y PostgreSQL. Altamente recomendable.

Agradecemos a la UOC que hayan sido consecuentes con la filosofía abierta del master que están impartiendo y hayan publicado el documento bajo una licencia GNU

Oracle 10g: OPEN_CURSORS y SHARED_OPEN_CURSORS

Pasos que sigue Oracle para procesar una consulta:

1) Validación Sintáctica
2) Validación Semántica
3) Optimización
4) Generación del QEP (Query Execution Plan)
5) Ejecución del QEP (Query Execution Plan)

En algunos entornos nos podemos encontrar con aplicaciones que realizan ciertas consultas (y digo consultas) de forma muy reetiva de forma continua. Cuando el catálogo es muy amplio, continuo e inevitable debemos tener en cuenta dos parámetros de inicialización de la base de datos: open_cursors y session_cached_cursors.

Open_cursors nos permite establecer el límite de cursores por sesión y su seteo es muy directo. Si se necesitan 1000 y no hay nada que optimizar pues 1000 pondremos. En cambio Session_cached_cursors es algo más complejo y requiere analizarse en base al número máximo de cursores (open_cursors) y la cantidad actual de cursores que se mantienen en "cache" actualmente.

Consulta:

Acceder a MySql desde Sql Server 2008

Se puede dar el caso que necesitemos acceder a MySql desde Sql Server 2008. Para hacerlo podemos crear un servidor vinculado que use una conexión odbc. Como hacerlo paso a paso:

1. Descargar el cliente ODBC de Mysql para la plataforma del sevidor sql. Lo podeis hacer aquí.

2. Instalarlo (siguiente, siguiente, siguiente) y configurar un DSN de sistema. Para ello en el Administrador de orígenes de datos ODBC, en la pestaña DSN de sistema pulsamos Agregar y seleccionamos MySQL ODBC 5.1 driver. Acepatemos y aparece un formulario como el siguiente. Lo rellenaremos y probaremos pulsando Test para comprobar que funciona.

 

3. Añadir el servidor vinculado en la base de datos. Para ello nos conectamos a la base de datos y en el árbol de objetos vamos a  Objetos de servidor, pulsamos botón derecho en Servidores vinculados y clickamos en Nuevo Servidor Vinculado, rellenamos los datos y ya lo tenemos.

Cómo solventar el error 'No se permite guardar los cambios' en SQL Server 2008

Impedir guardar cambios en SQL Server 2008Dado que es algo que se suele repetir y ya me lo han comentado más de una vez, creo oportuno crear un post donde se describa el problema y la solución en Sql server 2008 para newbies. Más que nada para que no perdaís tiempo buscando...

Problema:
Al modificar el tipo de campo en una tabla ya creada (pero vacía) o al añadir alguna clave foránea me aperece un mensaje como el siguiente:"No se permite guardar los cambios. Los cambios que ha realizado requieren que se quiten y se vuelvan a crear las tablas".

Exportar datos de una tabla de SQL Server

Para importar y exportar datos de SQL Server Microsoft proporciona la herramienta bpc, que funciona por linea de comandos. Aunque sería de agradecer que SQL Server Management Studio proporcionara alguna utilidad gráfica de importación/exportación que nos evitara tener que recurrir a utilizar la línea de comandos, bpc es muy fácil de utilizar, al menos para hacer cosas sencillas. También es de los métodos más eficientes para exportar o importar datos en SQL Server.

La sintaxis básica de este comando es esta:

bcp {tabla o consulta} {in/out} nombre_del_fichero [opciones]

Las opciones se pueden complicar bastante, e incluso se pueden construir y utilizar ficheros de formato, pero para la mayoría de los casos puede ser suficiente con utilizar las opciones más básicas que nos permitan utilizar un fichero para exportar/importar los datos de una tabla: