SlideShare una empresa de Scribd logo
1 de 11
SoluciónSSIS para ejecucionescentralizadasengrandesentornos SQL SERVER.
En lostiemposque correnesbastante comúnque un DBA que trabaje enuna gran compañía
administre decenas,cientosoinclusomilesde instanciasSQLSERVER,porlo que una tarea tan
sencillacomocambiarunparámetrode configuracióndel servidor,instalarunnuevoplande
mantenimientoomodificarlaprogramaciónde backupentodas ellaspuede resultarunatareade lo
más tediosa.
Para podercontrolary automatizarenla medida de loposible este tipode operacionesyoptimizar
nuestrovaliosotiempose hadiseñadoestasolución.
A grandesrasgosel objetivoestenerunlistadode servidoresenunatablaconun campo enel que
cargaremosel códigoTSQL que deseamosejecutarsobre cadainstancia.
Instancia SQL
VAIO select@@version
Después,conlaayuda de SQL SERVER DATA TOOLS (SSTD) crearemosunpaquete de intrgration
servicesconunaconexióndinámicaque recorrerádichatablayejecutaráel códigoTSQL encada
una de las instancias.
De estamanera,algocomo crear un LOGIN,un LINKEDSERVER, o modificarel valordel Remote
QueryTimeoutentodasnuestrasinstanciaspodrállevarnosunospocosminutos.
Elementosnecesarios:
1 -Base de datos de herramientas:
Para contenerlastablasde configuraciónyde LOG que vamosa utilizarcrearemosunabase de
herramientasllamadaDBA,personalmentesiempre me gustatenerestabase de datosenlas
instanciasque administroparaalbergarmistablas,reportesyprocedimientosalmacenadosde
administración.
2 –Tabla de instancias:
En la base de datos DBA crearemosunatablallamada SSIS_All_instancesque constaráde 2 campos,
Instancia (Nombre exactode cadainstanciaque queramosincluir) y SQL(CódigoTSQL a ejecutar).
USE DBA
GO
CREATE TABLE [dbo].[SSIS_All_instances](
[Instancia] [varchar](200) NOT NULL,
[SQL] [varchar](MAX) NULL
) ON [PRIMARY]
GO
3 –Tabla de LOG.
Al tenerque establecerconexionesconmuchosservidores,nonosinteresaque unfallode conexión
o de ejecuciónsobre unode ellosfinaliceel trabajo,perosíteneruncontrol de encualesse ha
ejecutadoyencuálesno.Para ello,tambiénenlabase de datos DBA crearemoslatabla
SSIS_exec_LOG que constará de doscampos name (Nombre de lainstancia) y result(Resultadode la
ejecución).
name result
VAIO Success
USE [DBA]
GO
CREATE TABLE [dbo].[SSIS_exec_LOG](
[name] [varchar](200) NOT NULL,
[result][varchar](50) NULL
) ON [PRIMARY]
GO
4 –Paquete SSIS.
Esta es laparte fundamental delproyecto,yse explicaradetalladamenteelementoporelemento.
ELEMENTOS DEL PAQUETE SSIS
1 –Variables:
Crearemoslastresvariablesque vamosanecesitar
2 -Connection manager:
Para este paquete vamosanecesitardos conexionesque enmi casoson:
1 Vaio.DBA_SA:Se conectade forma directaa mi servidorde administraciónyami base de datos
DBA. Es laque utilizaremosparahacerla consultaa latabla SSIS_All_instancesypara cargar los
resultadosenel LOG.
La configuramosconel usuarioSA o con unusuarioque seaSYSAdminenlainstanciadonde hemos
creadola base de datosDBA y lastablasde configuraciónyde LOG.
2- Dynamic_Server_SA: Esta conexiónlaconfiguraremosparaque de formadinamicase vaya
conectandoa cada servidorque tengamosenlatablaSSIS_ALL_INSTANCES.
La manerade darle este dinamismoescreandounaexpresiónenlaventanade propiedadestal y
como se muestraenla imagen,seleccionarlapropiedadServerName e introducirlaexpresión
@[User::Servername]
Tambiénlaconfiguramosconel usuarioSA o con un usuarioque seaSysadminentodaslas
instancias.
3 –Tarea execute SQL (Delete_Log_Table)
Utilizamosestatareapara eliminarlosregistrosde latablade LOG antesde cada ejecución.
truncate table SSIS_exec_LOG
Esta tarea utilizarálaconexiónalabase de datosDBA,en mi caso Vaio.DBA_SA
4 –Tarea execute SQL (Select Servidor)
Esta tarea tambiénutilizarálaconexión Vaio.DBA_SAyserála encargadade recopilarlalistade
instanciasde nuestratabla.El resultadoloalmacenaremosenlavariable ServerListque definimos
anteriormente pormediolapropiedadResultSet.
El SQLStamentde latarea será el siguiente:
SELECT Instancia, SQL from SSIS_All_instances
5 – Foreach Loop Container
Este bucle recibirálalistade instanciasdel resultsetde latareaanteriory la recorreráejecutándose
una vezpor cada una de ellas.
Debemosconfigurarel apartadocollectionde lasiguiente manera.
Y Variable Mappings,enel que le asignaremosuníndice acada variable que vamosa utilizar
mapeandoel resultadode laconsulta.
Con estoya tendríamosconfiguradoel Foreach LoopContainer,peroojo,porque al tratarse de un
listadoque puede sermuyamplioyenalgúncaso puede fallarlaconexiónoejecuciónenalgunade
lasinstancias,nonos interesaque estohagafinalizarel procesocompleto.
Para evitarestodebemosmodificarlapropiedad ForceExecutionResultdentrode laspropiedades
del ForeachLoop estableciéndolaen Success.De estamanera,aunque laejecuciónfalleenalguna
de las instanciasoni siquieraseacapazde conectarse a ella,continuaráconlasiguiente.
Lo que sí nosinteresaesregistrarenlatabla de LOG el resultadode laejecuciónencadainstancia
para poderrevisarloposteriormente,loveremosal final deldocumento.
6 -Tarea (Execute SQL):
Esta tarea nosservirápara ejecutarel comandointroducidoenel campoSQLde la tabla
SSIS_All_instancessobre cada instanciaporla que pase el bucle foreachLoop.
Esta sentenciahasidoalmacenadaanteriormente enlavariable llamadaSQLporlo que editamosla
tarea y laconfiguramosde lasiguiente manera
Conection:Dynamic_Server_SA (Conexióndinámica)
SQLSourceType:Variable
SourceVariable:User::SQL
7 –LOG_Successon table
Comohemoscomentadoanteriormente nosinteresaregistrarel resultadode laejecuciónencada
instanciaenunatabla de LOG, para elloenla líneade Workflow de éxitocolocaremosunatareaque
introduciráenlatabla SSIS_exec_LOG el nombre de lainstancia(obtenidode lavariable
Servername) yel texto"Success".
En la configuraciónde latareadebmoseditarel apartado ParameterMapping de lasiguiente
manera.
Añadimosunparámetromapeadoala variable Servername,loque nosdaráel nombre de la
instanciasobre laque se ha ejecutadolainstrucciónSQL,eneste caso de formaexitosa.
El SQL SourceTypeeneste casoserá DirectImput,ya que pondremosel códigoSQLdirectamente
En el apartado SQLStatementintroducimosel siguiente código:
insertinto SSIS_exec_LOG (name,result)
values(?,'Success')
Y configuramoslatarea con laconexiónestáticaala base de datos DBA en laque se encuentrala
tablaSSIS_exec_LOG(Vaio.DBA_SA).
8 –LOG_Error on table.
En el Workflowde failure correspondientealatarea Execute SQL colocaremosestatareaque
configuraremosde maneraidénticaala anteriorconla únicadiferenciade que el códigoTSQL
registraráenla tablade LOG el texto"Error" enlugar de "Success".
insertinto SSIS_exec_LOG (name,result)
values(?, 'Error')
Con estoya tendríamoscompletadoel paquete SSIS.
Por último,haremosdeploydel proyectoyconfiguraremosunJobdentrodel SQLServerque ejecute
el paquete dtsx al que enprincipionole asignaremosningunaprogramaciónyaque estápensado
para ejecucionesAdHoc.
En el siguiente ejemplovamosamodificarel parámetro ''costthresholdforparallelism''entodaslas
instanciasque tengamosenlatablainventario.
Primerocargamostodas lasinstanciasenlatablaSSIS_All_Instancesjuntoconel códigoSQL a
ejecutar.
insertinto SSIS_All_Instances(Instancia,SQL)
selectinstancia,
'USEmaster
GO
EXEC sys.sp_configure N''costthresholdfor parallelism'',N''25''
GO
RECONFIGUREWITH OVERRIDE
GO'
from inventario
Una vez cargada nuestratablade configuraciónejecutamosel Jobque llamaal paquete dtsx que
acabamos de crear.
Puede tardarun rato dependiendodelnúmerode instanciasque tengamos.
Finalmentepodemosrevisarlatabla SSIS_exec_LOG de nuestrabase de datos DBA para ver en
cuálesse ha ejecutadocorrectamente yencualeshahabidoalgúnerror.
Comoveis,conla ayudade estasolución,simplementemodificandonuestratablade configuración
podemoshacermodificacionesde formamasivaentodonuestroentornoenunospocossegundos.

Más contenido relacionado

La actualidad más candente

Curso sql server 2012 clase 2
Curso sql server 2012 clase 2Curso sql server 2012 clase 2
Curso sql server 2012 clase 2josealopezpastor
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion juandavid1118
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidorCincoC
 
Guía rápida de MySQL Server 5.5 y Workbench 5.2
Guía rápida de MySQL Server 5.5 y Workbench 5.2Guía rápida de MySQL Server 5.5 y Workbench 5.2
Guía rápida de MySQL Server 5.5 y Workbench 5.2andermijan
 
Crear conexion a servidor en MySQL Workbench
Crear conexion a servidor en  MySQL WorkbenchCrear conexion a servidor en  MySQL Workbench
Crear conexion a servidor en MySQL WorkbenchJair Ospino Ardila
 
Replicacion de base de datos
Replicacion de  base de datosReplicacion de  base de datos
Replicacion de base de datosAlex Yungan
 
Base de Datos Grupo Los Informaticos
Base de Datos Grupo Los InformaticosBase de Datos Grupo Los Informaticos
Base de Datos Grupo Los InformaticosPedroJunior178
 
Manual de conexión de base de datos distribuida
Manual  de conexión de base de datos distribuidaManual  de conexión de base de datos distribuida
Manual de conexión de base de datos distribuidaJorch Mendez
 
Manual de instalacion de mysql Server mysql-workbench-xamp server
Manual de instalacion de mysql Server mysql-workbench-xamp server Manual de instalacion de mysql Server mysql-workbench-xamp server
Manual de instalacion de mysql Server mysql-workbench-xamp server Jorge Saavedra
 
bdlink vistas materializadas
bdlink vistas materializadasbdlink vistas materializadas
bdlink vistas materializadasJuan Calvache
 
Instalacion de MySQL Workbench
Instalacion de MySQL  WorkbenchInstalacion de MySQL  Workbench
Instalacion de MySQL WorkbenchJair Ospino Ardila
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionhugoAlvidrez
 
Tutorial de como configurar y instalar Cassandra
Tutorial de como configurar y instalar Cassandra Tutorial de como configurar y instalar Cassandra
Tutorial de como configurar y instalar Cassandra Kevin Hinojosa
 
Oracle enterprise manager
Oracle enterprise managerOracle enterprise manager
Oracle enterprise managerla77rch
 
Pasos para Instalar MySQL server
Pasos para Instalar MySQL server Pasos para Instalar MySQL server
Pasos para Instalar MySQL server PEPE QH
 
Guia de my sql workbench 5 2
Guia de my sql workbench 5 2Guia de my sql workbench 5 2
Guia de my sql workbench 5 2Eduardo Perdomo
 

La actualidad más candente (20)

Curso sql server 2012 clase 2
Curso sql server 2012 clase 2Curso sql server 2012 clase 2
Curso sql server 2012 clase 2
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Guía rápida de MySQL Server 5.5 y Workbench 5.2
Guía rápida de MySQL Server 5.5 y Workbench 5.2Guía rápida de MySQL Server 5.5 y Workbench 5.2
Guía rápida de MySQL Server 5.5 y Workbench 5.2
 
Crear conexion a servidor en MySQL Workbench
Crear conexion a servidor en  MySQL WorkbenchCrear conexion a servidor en  MySQL Workbench
Crear conexion a servidor en MySQL Workbench
 
Replicacion de base de datos
Replicacion de  base de datosReplicacion de  base de datos
Replicacion de base de datos
 
Base de Datos Grupo Los Informaticos
Base de Datos Grupo Los InformaticosBase de Datos Grupo Los Informaticos
Base de Datos Grupo Los Informaticos
 
Manual de conexión de base de datos distribuida
Manual  de conexión de base de datos distribuidaManual  de conexión de base de datos distribuida
Manual de conexión de base de datos distribuida
 
Replicación con sql server
Replicación con sql serverReplicación con sql server
Replicación con sql server
 
Manual de instalacion de mysql Server mysql-workbench-xamp server
Manual de instalacion de mysql Server mysql-workbench-xamp server Manual de instalacion de mysql Server mysql-workbench-xamp server
Manual de instalacion de mysql Server mysql-workbench-xamp server
 
bdlink vistas materializadas
bdlink vistas materializadasbdlink vistas materializadas
bdlink vistas materializadas
 
Instalacion de MySQL Workbench
Instalacion de MySQL  WorkbenchInstalacion de MySQL  Workbench
Instalacion de MySQL Workbench
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacion
 
Tutorial de como configurar y instalar Cassandra
Tutorial de como configurar y instalar Cassandra Tutorial de como configurar y instalar Cassandra
Tutorial de como configurar y instalar Cassandra
 
Replicación de Bases de Datos con SQL Server 2008
Replicación de Bases de Datos con SQL Server 2008Replicación de Bases de Datos con SQL Server 2008
Replicación de Bases de Datos con SQL Server 2008
 
Oracle enterprise manager
Oracle enterprise managerOracle enterprise manager
Oracle enterprise manager
 
Transac sq ll
Transac sq llTransac sq ll
Transac sq ll
 
Pasos para Instalar MySQL server
Pasos para Instalar MySQL server Pasos para Instalar MySQL server
Pasos para Instalar MySQL server
 
Guia de my sql workbench 5 2
Guia de my sql workbench 5 2Guia de my sql workbench 5 2
Guia de my sql workbench 5 2
 
JDBC (Java Database Connectivity)
JDBC (Java Database Connectivity)JDBC (Java Database Connectivity)
JDBC (Java Database Connectivity)
 

Similar a Paquete SSIS para administración SQL centralizada

Similar a Paquete SSIS para administración SQL centralizada (20)

Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Ms SQL Server
Ms SQL ServerMs SQL Server
Ms SQL Server
 
Html,php
Html,phpHtml,php
Html,php
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Análisis y diseño ii sql php
Análisis y diseño ii sql phpAnálisis y diseño ii sql php
Análisis y diseño ii sql php
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Ambiente sql server 2008
Ambiente sql server 2008Ambiente sql server 2008
Ambiente sql server 2008
 
Ambiente sql server 2008
Ambiente sql server 2008Ambiente sql server 2008
Ambiente sql server 2008
 
Ambiente sql server 2008
Ambiente sql server 2008Ambiente sql server 2008
Ambiente sql server 2008
 
P2C1 - Configuración del Entorno
P2C1 - Configuración del EntornoP2C1 - Configuración del Entorno
P2C1 - Configuración del Entorno
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
 
Microsoft sql-server-2012
Microsoft sql-server-2012Microsoft sql-server-2012
Microsoft sql-server-2012
 
Microsoft sql server 2012
Microsoft sql server 2012Microsoft sql server 2012
Microsoft sql server 2012
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Mysql
MysqlMysql
Mysql
 
Conceptos de sql
Conceptos de sqlConceptos de sql
Conceptos de sql
 
Bases distribuidas en mysql
Bases distribuidas en mysqlBases distribuidas en mysql
Bases distribuidas en mysql
 

Último

La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresamerca6
 
Qué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaQué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaJoellyAlejandraRodrg
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria deCalet Cáceres Vergara
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciaferg6120
 
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de CyclisticAnálisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de CyclisticJamithGarcia1
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaSilvia García
 
obras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffffobras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffffJefersonBazalloCarri1
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalIngrid459352
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)estebancitoherrera
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfJC Díaz Herrera
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,juberrodasflores
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfJC Díaz Herrera
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitariachayananazcosimeon
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicaciónJonathanAntonioMaldo
 
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdfAnaBelindaArmellonHi
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...israel garcia
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfluisccollana
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfIrapuatoCmovamos
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfIrapuatoCmovamos
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechojuliosabino1
 

Último (20)

La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresa
 
Qué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaQué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problema
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria de
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescencia
 
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de CyclisticAnálisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y química
 
obras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffffobras-hidraulicas.docxfffffffffffffffffff
obras-hidraulicas.docxfffffffffffffffffff
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dental
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdf
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicación
 
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
2 PROCESO ESTADISTICO PARA LA INVESTIGACION.pdf
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derecho
 

Paquete SSIS para administración SQL centralizada

  • 1. SoluciónSSIS para ejecucionescentralizadasengrandesentornos SQL SERVER. En lostiemposque correnesbastante comúnque un DBA que trabaje enuna gran compañía administre decenas,cientosoinclusomilesde instanciasSQLSERVER,porlo que una tarea tan sencillacomocambiarunparámetrode configuracióndel servidor,instalarunnuevoplande mantenimientoomodificarlaprogramaciónde backupentodas ellaspuede resultarunatareade lo más tediosa. Para podercontrolary automatizarenla medida de loposible este tipode operacionesyoptimizar nuestrovaliosotiempose hadiseñadoestasolución. A grandesrasgosel objetivoestenerunlistadode servidoresenunatablaconun campo enel que cargaremosel códigoTSQL que deseamosejecutarsobre cadainstancia. Instancia SQL VAIO select@@version Después,conlaayuda de SQL SERVER DATA TOOLS (SSTD) crearemosunpaquete de intrgration servicesconunaconexióndinámicaque recorrerádichatablayejecutaráel códigoTSQL encada una de las instancias. De estamanera,algocomo crear un LOGIN,un LINKEDSERVER, o modificarel valordel Remote QueryTimeoutentodasnuestrasinstanciaspodrállevarnosunospocosminutos. Elementosnecesarios: 1 -Base de datos de herramientas: Para contenerlastablasde configuraciónyde LOG que vamosa utilizarcrearemosunabase de herramientasllamadaDBA,personalmentesiempre me gustatenerestabase de datosenlas instanciasque administroparaalbergarmistablas,reportesyprocedimientosalmacenadosde administración. 2 –Tabla de instancias: En la base de datos DBA crearemosunatablallamada SSIS_All_instancesque constaráde 2 campos, Instancia (Nombre exactode cadainstanciaque queramosincluir) y SQL(CódigoTSQL a ejecutar). USE DBA GO CREATE TABLE [dbo].[SSIS_All_instances]( [Instancia] [varchar](200) NOT NULL, [SQL] [varchar](MAX) NULL ) ON [PRIMARY] GO 3 –Tabla de LOG. Al tenerque establecerconexionesconmuchosservidores,nonosinteresaque unfallode conexión o de ejecuciónsobre unode ellosfinaliceel trabajo,perosíteneruncontrol de encualesse ha ejecutadoyencuálesno.Para ello,tambiénenlabase de datos DBA crearemoslatabla SSIS_exec_LOG que constará de doscampos name (Nombre de lainstancia) y result(Resultadode la ejecución).
  • 2. name result VAIO Success USE [DBA] GO CREATE TABLE [dbo].[SSIS_exec_LOG]( [name] [varchar](200) NOT NULL, [result][varchar](50) NULL ) ON [PRIMARY] GO 4 –Paquete SSIS. Esta es laparte fundamental delproyecto,yse explicaradetalladamenteelementoporelemento. ELEMENTOS DEL PAQUETE SSIS 1 –Variables: Crearemoslastresvariablesque vamosanecesitar
  • 3. 2 -Connection manager: Para este paquete vamosanecesitardos conexionesque enmi casoson: 1 Vaio.DBA_SA:Se conectade forma directaa mi servidorde administraciónyami base de datos DBA. Es laque utilizaremosparahacerla consultaa latabla SSIS_All_instancesypara cargar los resultadosenel LOG. La configuramosconel usuarioSA o con unusuarioque seaSYSAdminenlainstanciadonde hemos creadola base de datosDBA y lastablasde configuraciónyde LOG. 2- Dynamic_Server_SA: Esta conexiónlaconfiguraremosparaque de formadinamicase vaya conectandoa cada servidorque tengamosenlatablaSSIS_ALL_INSTANCES.
  • 4. La manerade darle este dinamismoescreandounaexpresiónenlaventanade propiedadestal y como se muestraenla imagen,seleccionarlapropiedadServerName e introducirlaexpresión @[User::Servername] Tambiénlaconfiguramosconel usuarioSA o con un usuarioque seaSysadminentodaslas instancias. 3 –Tarea execute SQL (Delete_Log_Table) Utilizamosestatareapara eliminarlosregistrosde latablade LOG antesde cada ejecución. truncate table SSIS_exec_LOG Esta tarea utilizarálaconexiónalabase de datosDBA,en mi caso Vaio.DBA_SA 4 –Tarea execute SQL (Select Servidor) Esta tarea tambiénutilizarálaconexión Vaio.DBA_SAyserála encargadade recopilarlalistade instanciasde nuestratabla.El resultadoloalmacenaremosenlavariable ServerListque definimos anteriormente pormediolapropiedadResultSet.
  • 5. El SQLStamentde latarea será el siguiente: SELECT Instancia, SQL from SSIS_All_instances 5 – Foreach Loop Container Este bucle recibirálalistade instanciasdel resultsetde latareaanteriory la recorreráejecutándose una vezpor cada una de ellas. Debemosconfigurarel apartadocollectionde lasiguiente manera.
  • 6. Y Variable Mappings,enel que le asignaremosuníndice acada variable que vamosa utilizar mapeandoel resultadode laconsulta.
  • 7. Con estoya tendríamosconfiguradoel Foreach LoopContainer,peroojo,porque al tratarse de un listadoque puede sermuyamplioyenalgúncaso puede fallarlaconexiónoejecuciónenalgunade lasinstancias,nonos interesaque estohagafinalizarel procesocompleto. Para evitarestodebemosmodificarlapropiedad ForceExecutionResultdentrode laspropiedades del ForeachLoop estableciéndolaen Success.De estamanera,aunque laejecuciónfalleenalguna de las instanciasoni siquieraseacapazde conectarse a ella,continuaráconlasiguiente.
  • 8. Lo que sí nosinteresaesregistrarenlatabla de LOG el resultadode laejecuciónencadainstancia para poderrevisarloposteriormente,loveremosal final deldocumento. 6 -Tarea (Execute SQL): Esta tarea nosservirápara ejecutarel comandointroducidoenel campoSQLde la tabla SSIS_All_instancessobre cada instanciaporla que pase el bucle foreachLoop. Esta sentenciahasidoalmacenadaanteriormente enlavariable llamadaSQLporlo que editamosla tarea y laconfiguramosde lasiguiente manera Conection:Dynamic_Server_SA (Conexióndinámica) SQLSourceType:Variable SourceVariable:User::SQL
  • 9. 7 –LOG_Successon table Comohemoscomentadoanteriormente nosinteresaregistrarel resultadode laejecuciónencada instanciaenunatabla de LOG, para elloenla líneade Workflow de éxitocolocaremosunatareaque introduciráenlatabla SSIS_exec_LOG el nombre de lainstancia(obtenidode lavariable Servername) yel texto"Success". En la configuraciónde latareadebmoseditarel apartado ParameterMapping de lasiguiente manera.
  • 10. Añadimosunparámetromapeadoala variable Servername,loque nosdaráel nombre de la instanciasobre laque se ha ejecutadolainstrucciónSQL,eneste caso de formaexitosa. El SQL SourceTypeeneste casoserá DirectImput,ya que pondremosel códigoSQLdirectamente En el apartado SQLStatementintroducimosel siguiente código: insertinto SSIS_exec_LOG (name,result) values(?,'Success') Y configuramoslatarea con laconexiónestáticaala base de datos DBA en laque se encuentrala tablaSSIS_exec_LOG(Vaio.DBA_SA). 8 –LOG_Error on table. En el Workflowde failure correspondientealatarea Execute SQL colocaremosestatareaque configuraremosde maneraidénticaala anteriorconla únicadiferenciade que el códigoTSQL registraráenla tablade LOG el texto"Error" enlugar de "Success". insertinto SSIS_exec_LOG (name,result) values(?, 'Error')
  • 11. Con estoya tendríamoscompletadoel paquete SSIS. Por último,haremosdeploydel proyectoyconfiguraremosunJobdentrodel SQLServerque ejecute el paquete dtsx al que enprincipionole asignaremosningunaprogramaciónyaque estápensado para ejecucionesAdHoc. En el siguiente ejemplovamosamodificarel parámetro ''costthresholdforparallelism''entodaslas instanciasque tengamosenlatablainventario. Primerocargamostodas lasinstanciasenlatablaSSIS_All_Instancesjuntoconel códigoSQL a ejecutar. insertinto SSIS_All_Instances(Instancia,SQL) selectinstancia, 'USEmaster GO EXEC sys.sp_configure N''costthresholdfor parallelism'',N''25'' GO RECONFIGUREWITH OVERRIDE GO' from inventario Una vez cargada nuestratablade configuraciónejecutamosel Jobque llamaal paquete dtsx que acabamos de crear. Puede tardarun rato dependiendodelnúmerode instanciasque tengamos. Finalmentepodemosrevisarlatabla SSIS_exec_LOG de nuestrabase de datos DBA para ver en cuálesse ha ejecutadocorrectamente yencualeshahabidoalgúnerror. Comoveis,conla ayudade estasolución,simplementemodificandonuestratablade configuración podemoshacermodificacionesde formamasivaentodonuestroentornoenunospocossegundos.