Anuncios

lunes, 27 de septiembre de 2010

Instalación de SQL Server en Clusters.


Para gente que tiene problemas al instalar SQL Server en Cluster.

Para instalar SQL Server 2008 en cluster vea el siguiente link:

Para instalar SQL Server  2005 en cluster ve el siguiente link:

Hoy en día, instalar SQL Server en Cluster no es mucha ciencia. Simplemente hay que endender bien los conceptos. Lo que más cuesta es tener el cluster listo. La instalación de SQL en cluster es casi transparente.
Lo primero, es que los 2 nodos estén en el dominio. Luego que los cluster services funcionen.
Un error típico es el siguiente:

Setup failed to start on the remote machine. Check the Task scheduler event log on the remote machine.

Si usted tiene este problema al instalar SQL Server en Cluster, el problema es que el otro nodo (la remote machine) está utilizando algunos procesos del task scheduler.

Solución. Cerrar la sesión del nodo en el cual no se está instalando el sql server.

Imágenes

viernes, 24 de septiembre de 2010

Errores al instalar SQL Server MSDE

Para gente que necesita volver al pasado y tiene necesidades y dudas con el SQL Server 2000 MSDE

Esto es para gente que todavía trabaja por algún motivo SQL Server 2000 MSDE. MSDE era la opción gratuita de SQL Server 2000. Es la versión más liviana. Ya no tiene soporte. Si realmente no necesitan usar, no la usen ¡!. Cambien a SQL Server Express Edition 2005 o 2008.
Instaladores de MSDE:

Instaladores de SQL Express edition 2005:

Instaladores de SQL Express edition 2008:
A continuación compilo algunos errores típicos para la pobre gente que todavía necesita instalarlo (fue divertido volver y recordar el pasado):


Pregunta 1
Me sale el siguiente error al tratar de instalar el MSDE de SQL:
A strong SA password is required for security reasons.
Please use SAPWD switch to supply the same. Refer to readme for more details.
Setup will now exit.
Qué debo hacer ?

 Respuesta. 
Vaya al instalador del MSDE donde está el setup y asigne un password al SA corriendo la siguiente sentencia en la línea de comandos:
   setup SAPWD="Contrasena123!"
Donde Contrasena123! es la contraseña. Que puede variar
 Pregunta 2

Cuando instalo el MSDE obtengo el siguiente error:
SQLDUMPER library failed initialization. Your instalation is either corrupt or has been tampered with.  Please uninstall then re-run setup to correct this problem.
Qué debo hacer ?

Debe cambiar el servicio SQL Server VSS Writer a manual. Para ello:
  1. Vaya a la línea de comandos y escriba services.msc
  2. En la ventana de services busque el servicio VSS Writer y haga doble click en el.
  3. En la opción startup type, cambie de automatic a manual


 Tienes dudas sobre SQL Server 2000, 2005 y 2008 ?, escribe a este blog.

miércoles, 22 de septiembre de 2010

Oda al copy paste


Ooohh, copy paste, copy paste tu siempre estás ahí a nuestro alcance.
Ayudándonos a todos. En las buenas o en las malas.
Siempre estás ahí para ayudarnos.

Ayudas a los flojos para no hacer la tarea si no simplemente copiar todo de internet e imprimir.

Ayudas a los trabajadores que simplemente extraen un poco de ayuda de ti.

Habrá habido un mejor invento después de ti ?.
Tu no generas millones de dólares como invento. Estás ahí callado y desinteresado para ayudarnos en todo.

Es que hay algo más simple que hacer copy y luego paste ?.

Al programar, al crear documentación, al agregar imágenes, al distribuir música. El mundo debe darte un aplauso.

Yo agradezco tu existencia y aplaudo a tu inventor.





Grandes inventos de la humanidad.

La imprenta por Johannes Gutenberg


El avión por los hermanos Wright
El auto por Henry Ford
El teléfono por Alexander Graham Bell (considero a Antonio Meucci un retrasado)
Copy y paste fue inventado por Larry Tesler en Xerox al trabajar con Small-Talk en los 70s. Luego trabajó para Apple haciendo importantísimos aportes para la interfase de usuario que conocemos hoy en día.

Uno de los más importantes inventos de nuestro tiempo es el copy paste. Tal vez el invento que más aportes ha dado a simplificar nuestra vida y avanzar.
Cómo hicieron las generaciones anteriores cuando había máquina de escribir ?. O peor aún cuando se escribía en piedras ?.
La fotocopiadora tardó mucho en llegar. En el pasado se usaba papel calca y antes cuero de chancho para copiar planos.

Cuantas veces el copy paste nos hizo copiar código y hacer leves modificaciones simplificando días de trabajo ?. El copy paste es la opción más usada en todos los editores de texto después de la opción abrir, guardar y cerrar.

Se calcula que el copy paste ahorró mas 17 billones de dólares en ahorro de trabajo solamente en  California. Sin el copy paste, seguramente los programadores morirían antes de terminar su código tal como lo hicieron los chinos al crear la muralla china.


Imágenes

Tutorial de utilización de Loops en Integration Services.

En esta ocasión voy a utilizar Integration Services para crear 4 bases de datos con un simple click. Para eso voy a utilizar el Contenedor de bucles for y la tarea de ejecución de sql.

Para eso voy a utilizar un proyecto de Integration Services. Integration services se crea desde el SQL Server Business Intelligence Development Studio. Para crear un proyecto, lo primero que hay que hacer es ir a Archivo-Nuevo-Proyecto y escoger un proyecto de Integration Services.
Luego, se arma un contenedor de ciclos y dentro y ejecutador de tareas de SQL. Lo que pretendo hacer, es ejecutar 4 veces (podrían ser 1000 sin ningún esfuerzo extra) un creador de base de datos que creará bases de datos llamados dbase0, dbase1..dbase3.
Nuestro proyecto se vería de manera similar la siguiente figura:




Luego creamos un par de variables. La variable Límite establece cuantas veces vamos a ejecutar. En este ejemplo, serán 4 veces.
La variable Contador es un contador que se irá incrementando hasta llegar a 4. Para crear Variables vaya al Menú y busque SSIS>Variables
La creación de variables se verían así:



Ahora, para utilizar las variables, se van a cambiar las propiedades del for loop container. Las propiedades del for loop container debería verse parecidas a la siguiente imagen:


Luego se deben editar las propiedades de la tarea de execución de sentencias SQL, las propiedades deben establecer una conexión a la base de datos, y lo más importante es el sql statement:
Execute ('create database dbase'+?)
Donde ? es el contador que se creó como variable. Estamos creando ahí las bases de datos dbase1, dbase2, dbase3, etc.
Para asignar el parámetro contador a nuestra tarea hacemos algo similar a la siguiente imagen:


Donde Nombre de parámetro es 0, que significa que el primer parámetro es contador. En este caso solo hay un ?. Por lo que solo se usa el nombre de parámetro 0. Si hubiesen más variables se usaría el 0, 1, 2, 3, etc.

Lo último que queda es ejecutar el package. Si todo salió bien, 4 bases de datos se deberían haber ejecutado.

Tienes dudas sobre Integration services ?.
Existen errores extraños que no puedes resolver al ejecutar packages ?.
Si es así, escribe a este blog.

viernes, 10 de septiembre de 2010

Cómo crear miles de tablas, vistas, usuarios usando SQL Server.

En este ejemplo, voy a usar sentencias while de T-SQL para crear varias tablas.
Si deseamos crear varios usuarios, o vistas, el procedimiento es el mismo.

Lo que voy a hacer es crear tablas que se llaman tabla0, tabla1, tabla2, etc con una sola columna llamada columna. Con este código puedo crear decenas de tablas, centenas de tablas o la cantidad que yo desee.

Código para crear miles de tablas en SQL Server:

-- Codigo para crear miles de tablas
declare @contador int=0
declare @nombretabla varchar(5)='tabla'

while (@val<1000) --Permite que se crean mil tablas
BEGIN
          /*Crea tablas con el nombre tabla0, tabla1, tabla2 con una
          columna llamada columna de tipo entero*/
          Execute('create table '+@nombretabla+@contador+'(columna int)')
          --Incrementa el contador hasta llegar a mil
          set @contador=@contador1
END

Tienes más dudas ?. Escribe a este blog.

jueves, 9 de septiembre de 2010

Uso de variables en SQL Server Integration Services


Varias personas me preguntaron cómo trabajar con variables en Integration Services (IS).
En este ejemplo, voy a crear una variable en IS, y usarla con la tarea Ejecutar SQL (Execute SQL task).

Lo que voy a hacer es un ejemplo simple de insertar un valor en una tabla llamada t1 el valor de la variable.

Requisitos.

Voy a crear en mi base de datos Adventureworks una tabla llamada t1 que acepte un valor entero:

Create table t1
(
 Var int
)

Para crear una variable en IS:
En el Business Intelligence Development Studio vaya al menú SSIS – Variables luego cree una variable llamada var y que acepte enteros como se muestra en la figura:


Para crear una tarea Ejecutar SQL
En el panel de diseño, en el tab de Flujo de Control (Control Flow)  arrastre la tarea Ejecutar SQL (Execute SQL Task) y escriba los valores de conexión a la base de datos Adventureworks y los parámetros como se muestra en la figura:

Se está insertando el la tabla t1 un valor ? determinado por el parámetro

Para mapear variables de parámetros.
Para que la tarea Ejecutar SQL pueda recibir el parámetro, en la sección de parameter Mappping, se debe escoger la variable creada. El Parameter name en conexiones OLEDB se numeran del 0 para adelante. Es decir, el primer parámetro tiene el valor 0, el segundo valor 1 y así sucesivamente.
La figura muestra como mapear la variable var en tareas de ejecución de SQL:

Ahora lo que queda es ejecutar la tarea. Si todo sale perfectamente, al ejecutar esta tarea en la tabla t1 se habrá insertado el valor 5 (el valor establecido en la variable var al crearla).

Tienes más dudas sobre Integration Services ?. Sobre manejo de varibles ?. Escribe a este blog.