SQL Server, ideas y experiencias

Creando un instalador del SQL Server 2008 con el SP1 incorporado

por Jose Mariano Alvarez 29. junio 2009

Como les comente en el artículo SQL Server 2008 Service Pack 1 y actualizaciones de abril 2009es posible crear un instalador que incorpore el service pack para instalar en un solo paso el SQL Sever 2008 actualizado. En esa ocasión les había dejado un link con el detalles de como hacerlo.

Hace unos días, se ha actualizado el documento que explica como hacer el instalador del SQL Server 2008 con el Service pack 1 incorporado. Como varios me han preguntado les dejo el enlace nuevamente con los detalles (en inglés) en el siguiente link:

SQL Server Setup : Creating a merged (slipstreamed) drop containing SQL Server 2008 RTM + Service Pack 1

Tags: , , ,

Artículos

Cómo instalar el .NET Framework 3.5 en Windows 7 (pre requisito del SQL Server 2008)

por Jose Mariano Alvarez 29. junio 2009

El instalador del SQL Server 2008 instala como parte de los pre-requisitos el .NET Framework 3.5. Los cambios introducidos en Windows 7 pueden impedir la instalación del SQL Server 2008 debido a que no se permite instalar el .NET Framework 3.5 desde el instalador del SQL Server, el cual es un pre-requisito indispensable sin el cual el SQL Server 2008 no funciona. Por lo tanto se deberá instalar el .NET Framework 3.5 por separado antes de instalar el SQL Server 2008 en lugar de hacerlo desde el instalador del SQL Server 2008.

Para ello existen dos alternativas:

  1. Instalar el .NET Framework 3.5 que viene incluido como componente del Windows 7.
  2. Descargar el .NET Framework 3.5 desde el sitio de Microsoft al disco local. Seleccionar el archivo descargado, generalmente dotNetFx35setup.exe, y usando el menú de contexto cambiarle las propiedades del modo de compatibilidad (solapa compatibilidad) a Vista SP1. Luego se deberá ejecutar el instalador como administrador

Descarga del .NET Framework 3.5

Tags: ,

Artículos

System.Data.OracleClient obsoleto en .NET 4.0

por Jose Mariano Alvarez 25. junio 2009

El cliente Oracle para .NET, el System.Data.OracleClient estará disponible en la próxima versión 4.0 de. NET Framework pero será marcado como obsoleto. Esto significa que en Visual Studio 2010 será posible el desarrollo de nuevas aplicaciones que utilizan este cliente, pero aparecerán advertencias (únicamente al momento de compilar el código) si se lo compila como Net 4.0.

Por lo tanto en futuras versiones no estará disponible el cliente ADO.NET para Oracle de Microsoft y por dicho motivo no se recomienda su uso para el desarrollo de aplicaciones nuevas y se recomienda utilizar los provistos por otras empresas.

Microsoft seguirá dando soporte normalmente así como generando actualizaciones críticas y correcciones de errores (bugs)

Pueden encontrar el detalle en:

System.Data.OracleClient Update

Tags: ,

Novedades

Soporte de failover clustering de SQL Server sobre virtualización con Hyper-V

por Jose Mariano Alvarez 25. junio 2009

Ya está disponible el soporte de las arquitecturas de fileover cluster de SQL Server en un entorno de virtualización. Esto significa que ahora existe soporte cuando se crea los nodos del clúster de SQL Server corriendo como máquinas virtuales.

De esta manera se puede lograr alta disponibilidad del SQL Server cuando se ejecuta en un entorno virtualizado con los beneficios de ambos, la virtualización y la alta disponibilidad del fileover cluster.

El cluster esta soportado para SQL Server 2005 y SQL Server 2008 en una máquina virtual Windows Server 2008 con Hyper-V, Microsoft Hyper-V Server 2008 y configuraciones certificadas por el Server Virtualization Validation Program (SVVP) siempre se cumplen los siguientes requisitos:

El sistema operativo corriendo en la máquina virtual es Windows Server 2008 o superior

El entorno de virtualización cumple con los requisitos tal como se documenta en “La Política de soporte técnico de Microsoft para Windows Server 2008 Failover Clusters”.

Mas detalles en:

Support policy for Microsoft SQL Server products that are running in a hardware virtualization environment

Tags: , ,

Novedades

Como ejecutar programáticamente un paquete de Integration Services

por Jose Mariano Alvarez 13. junio 2009

Introducción

En una reciente conferencia en la que participé como orador, uno de los comentarios me hizo notar que no se conoce como funciona el SQL Server Integration Services (SSIS) ni cual es rol que cumplen cada uno de los componentes que lo integran.

Quizá uno de las preguntas más habituales es saber cómo se puede ejecutar un paquete en forma programática, ya sea localmente o remotamente. Este artículo intenta mostrar algunas de las alternativas que están disponibles para ejecutar los paquetes del SSIS desde un programa NET 1.1, NET 2.0, desde una página ASP.NET o ASP o desde Visual Basic 6 y otras tecnologías.

Revisando información disponible en la web pude encontrar un excelente artículo de Michael Entin en su Blog en el cual me basé para escribir este artículo, 

http://blogs.msdn.com/michen/archive/2007/03/22/running-ssis-package-programmatically.aspx

Este artículo reproduce parte de ese contenido en español y agrega detalles relacionados a las preguntas que habitualmente se realizan en los foros respecto de SQL Server Integration Services.

 

El rol del servicio de Integration Services.

Existe una creencia de que el servicio de Integration Services permite la ejecución de los paquetes. Entender la función del servicio Integration Services es esencial para tomar una decisión correcta respecto del mecanismo de ejecución de los paquetes.

El servicio de Integration Services soporta la interfaz administrativa de SQL Server Management Studio para enumerar, iniciar, detener, supervisar, importar y exportar paquetes de Integration Services. El servicio Integration no se lo usa para ejecutar paquetes. Aun si el servicio de Integration Services no se está ejecutando se pueden realizar las siguientes tareas:

  • Diseñar y ejecutar paquetes en Business Intelligence Development Studio.
  • Ejecutar paquetes utilizando DTEXEC (dtexec.exe).
  • Ejecutar paquetes utilizando el Agente SQL Server o el Asistente para importación y exportación de SQL Server.
  • Enumerar los paquetes almacenados en la base de datos msdb utilizando T-SQL.
  • Enumerar los paquetes almacenados en el sistema de archivos utilizando el Explorador de Windows.
  • Crear y ejecutar trabajos y planes de mantenimiento desde el Agente del SQL Server.

 

Ejecutar los paquetes

Una de las cosas que debemos tener en cuenta es que los paquetes siempre se ejecutan localmente en el contexto del proceso que invoca su ejecución, por lo tanto si queremos ejecutar remotamente un paquete debemos implementar un mecanismo de indirección que permita a un proceso remoto lanzar la ejecución de dicho paquete.  Por lo tanto es necesario instalar SSIS en la misma máquina donde se ejecuta la aplicación que invoca la ejecución del paquete.

 

Ejecutar el paquete utilizando el modelo de objetos de SSIS.

Existe un documento en la ayuda del SQL Server que explica esta alternativa en detalle:

http://msdn2.microsoft.com/en-us/library/ms136090.aspx

Ventajas

  • Se ejecuta dentro del proceso que lo invoca por lo que es muy fácil de configurar o modificar antes de ejecutar.
  • Se puede recibir eventos de los progresos de ejecución de paquete o pedir que se detenga la ejecución.

Desventajas:

  • Estos objetos solo se pueden utilizar en NET 2.0 y posteriores versiones.
  • En ASP.NET el mecanismo de “impersonation” no funciona cuando el paquete crea otros threads por ejemplo en los data sources.
  • Como ASP.NET se puede configurar para reciclar el proceso en caso de que consuma demasiada memoria y existe la probabilidad de que SSIS consuma una gran cantidad de memoria, entonces puede suceder que este mecanismo no tenga tanta fiabilidad.

 

Ejecutar local mediante DTEXEC.EXE

DTEXEC es la utilidad de línea de comando para la ejecución de paquetes SSIS.  Existe una aplicación similar DTEXECUI,EXE que es similar y permite ejecutar y construir la línea de comandos de forma gráfica como si fuera un asistente. Para ver las opciones de línea de comandos puede ver el siguiente link.

http://msdn2.microsoft.com/en-us/library/ms162810.aspx

Ventajas:

  • Como el paquete se ejecuta en un contexto de ejecución diferente del proceso invocante de la línea de comandos aumenta la fiabilidad del mismo.
  • Se puede utilizar desde cualquier lenguaje de programación y tecnología para invocarlo.
  • se puede pasar parámetros fácilmente mediante la asignación de valores a las variables en la invocación.

Desventajas

  • Es mas difícil obtener información sobre el progreso y debe usarse el logging del SSIS.
  • Sobrecarga en la invocación por el inicio del nuevo proceso (probablemente sea despreciable en comparación con el tiempo de ejecución de los paquetes)..
  • En ASP.NET para generar un proceso que se ejecuta en el contexto de otro usuario, no se puede utilizar el método System.Diagnostics.Process.Start. Esto se debe a que en ASP.NET, la suplantación de identidad se realiza a nivel del thread y no a nivel de proceso. Por lo tanto se debe utilizar el método descripto en el siguiente artículo: Http://support.microsoft.com/kb/889251

 

Ejecución local mediante el Agente del SQL Server

Se puede configurar un Job del Agente SQL para ejecutar el paquete. La invocación del Job puede ser automática o manual mediante SMO o mediante el stored procedure (procedimiento almacenado) sp_start_job.  El contexto de invocación del paquete es el correspondiente al proceso del agente del SQL Server.

El siguiente artículo muestra algunos de los posibles problemas que se pueden presentar cuando se invoca la ejecución de un paquete de SSIS desde el agente del SQL Server.

http://support.microsoft.com/kb/918760

Beneficios:

  • Puede ejecutar el paquete con otra cuenta de usuario con suficientes permisos (cuenta proxy).

Desventajas:

  • No se puede pasar parámetros directamente y se requiere modificar los jobs o la utilización de la configuración del paquete (tablas, variables de ambiente, archivos XML, etc).

En la ayuda del SQL Server hay un ejemplo de como se puede invocar local o remotamente la ejecución del Job desde código NET usando el procedimiento sp_start_job. Lo más importante es que esta invocación es asincrónica y fuera del contexto del proceso que invoca la ejecución del Job y dentro del contexto del agente SQL.

http://msdn2.microsoft.com/en-us/library/ms403355.aspx

NOTA: Si bien se puede planificar al DTEXEC como uno de los pasos del Agente SQL es recomendable utilizar un paso del tipo SSIS.

 

Invocación remota

Para poder invocar remotamente un paquete debemos encontrar mecanismo remoto para 

  • Ejecutar DTEXEC
  • Usar el modelo de objetos del SSIS
  • Invocar un Job de SSI del agente SQL

Quizá el mecanismo más simple de ejecución remota sea la invocación de un Job del agente ya que requiere una mínima programación como puede verse en el ejemplo de la ayuda del SQL Server ya mencionado. Si no desea utilizar el Agente por alguna razón Se puede utilizar cualquier otro programador de tareas genéricas en lugar de Agente SQL que termine invocando el Job de inicio o la ejecución del DTEXEC ola ejecución de una aplicación que instancie el modelo de objetos de SSIS..

El otro método requiere al menos de un mecanismo de invocación remota mediante dos procesos que se comunican en contextos de ejecución diferentes. Se debe por lo tanto crear una aplicación personalizada que utilice el modelo de objetos de Integration Services o el DTEXEC. Dos de los mecanismos mas habituales son exponer un servicio web, un servicio windows o un objeto COM+ que pueda invocarse desde desde el programa cliente.

La ayuda del SQL Server tiene un ejemplo que se puede utilizar un web service (servicio Web) para invocar la ejecución de un paquete.

http://msdn2.microsoft.com/en-us/library/ms403355.aspx

Tags: ,

Artículos

Materiales - El data warehouse en la estrategia de inteligencia de negocio –13 Junio 2009

por Jose Mariano Alvarez 13. junio 2009

UBA-FCEEn esta presentación que realicé en el salón de actos de la Facultad de Ciencias Económicas de la UBA (Universidad de Buenos Aires) con el patrocinio del Grupo de Usuarios Microsoft, estuve exponiendo sobre el data warehouse en la estrategia de inteligencia de negocio. Esta presentación estuvo orientada a mostrar al data warehouse como la estrategia central en la construcción de una solución de inteligencia de negocios, las alternativas para su construcción y la relación con la tecnología OLAP, la minería de datos, los portales de información y los tableros de comando. En todos los casos se trato de reforzar los factores de éxito y los riesgos más importantes en este tipo de proyectos.

Estuve muy a gusto con el auditorio, con los asistentes y los organizadores. Espero que lo hayan podido aprovechar. Les dejo para que puedan descargarse las diapositivas de la presentación en el siguiente link:

El data warehouse en la estrategia de inteligencia de negocio

Video Run09 – SQL Server Programmability

por Jose Mariano Alvarez 5. junio 2009

En el sitio de RUN09 se encuentran disponibles los videos y los materiales del evento.

Todas las sesiones grabadas se encuentran en http://www.puertadeenlace.net/run09/Sesiones_Grabadas

Si hacen clic en la imagen de abajo podrán ver la presentación de programación que presente junto a Emilio Boucau con las novedades y aspectos no muy difundidos en materia de desarrollo.

  • Los nuevos tipos de datos
  • Los parámetros “Table-valued”
  • La sentencia MERGE
  • La clausula OUTPUT
  • Las novedades en INSERT y VALUES
  • Los operadores compuestos
  • La asignación e inicialización de variables
  • La posibilidad de utilizar Sparse Columns y Column Set

Para ver el video debes hacer clic  en la imagen a continuación

Run09videoEmilioMariano

Tags: , ,

Eventos y conferencias

Powered by SQL Total Consulting


View Jose Mariano Alvarez's profile on LinkedIn

 Add to Technorati Favorites 

Calendar

<<  mayo 2017  >>
lumamijuvido
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar

Locations of visitors to this page

Widget Twitter not found.

Root element is missing.X


Valid XHTML 1.0 Transitional

Valid CSS!