Archive for the 'MS SQL Server' Category

23
jun
10

Hacer respaldos de base de datos en MS SQL 2000

En Microsoft SQL Server 2000 es muy fácil hacer respaldos de las bases de datos. Ahora se describirá una forma de hacerlo pero quizás la más sencilla es por medio de un asistente que esta en Tools -> Wizards -> Management- Backup Wizard del SQL Server Enterprise Manager (seleccionado la base de datos específica obviamente). Para las personas que son un poco novatas les recomendaría hacer dicho proceso por medio del Wizard, dado que hay varias configuraciones que les permite de forma fácil programar tareas de respaldo, pero para éste post únicamente se verá como crear un respaldo de una base de datos.

Primero, se deberá de abrir el Enterprise Manager que esta en Inicio -> Todos los programas -> Microsoft SQL Server -> Enterprise Manager, y aqui deberá de seleccionar la base de datos a la cual le desea respaldar. Una vez seleccionada, se da clic derecho, luego en Todas las tareas y finalmente en Backup Database…

Enterprise Manager

Aparecerá una ventana en donde deberemos de especificar cierta información. El campo Database corresponde a la base de datos que se quiere respaldar, el campo Name es para asignar un nombre a ésta tarea de respaldo. En la parte de Backup, se determina el tipo de respaldo que se desea hacer; para éste ejemplo,  se hará el respaldo Completo, pero hay otros tipos de respaldos como lo son el diferencia y el del log de transacciones. En la parte llamada Overwrite, se debe elegir si se desea que ésta tarea de respaldo será agregada al destino (ya sea con otro nombre) o si sobre escribirá el destino. La opción Schedule sirve para poder programar ésta tarea de tal forma que se pueda ejecutar con cierta periodicidad, pero en nuestro caso no utilizarémos ésta opción. En la siguiente imagen se muestra la ventana que se esta describiendo.

Backup

En la parte de Destination, aqui esta el destino a donde colocarémos el respaldo. Damos clic en Add… para poder asignarle el destino.

DestinoFigura X

En ésta parte (la figura X), hay dos alternativas de destino: La primera llamada File name es la que permite crear un destino de respaldo específico de forma directa, dado que le establecemos la dirección y el nombre de archivo específico. La segunda se llama Backup device, la cual es la más usada la cual consiste en que previamente se debe crear un dispositivo de respaldo en el Enterprise Manager, que podría ser una cinta de tape backup física o simplemente un archivo en una ubicación del disco duro. Vamos a elegir, en ésta ocasión, la opción File name asignándole la ubicación y el nombre de archivo específico.

Se da clic en OK a dicha ventana y a la de Backup le damos clic en Aceptar también para ver el proceso de respaldo. Al final, aparecerá una ventana que muestra que se ha terminado el respaldo exitosamente.

Proceso

Finalización

Con ésto ya se realizó correctamente el respaldo. Ahora explicaré un poco sobre la opción Backup Device en la Figura X. Para crear dicho dispositivo de respaldo, en el Enterprise Manager se busca en el arbol de la izquierda la carpeta Backup, que se encuentra dentro de Management y se da clic derecha en ésta carpeta y luego en New Backup Device. Ver la imagen para mayor referencia.

Backup Device

En la ventana que aparece, se debe de asignar un nombre para el dispositivo de respaldo (en el campo Name) y en la parte de File name, se debe buscar la ubicación (por medio del botón ) así como asignar el nombre del archivo en donde se crearán los respaldos. La opción Tape drive name solo aparece cuando hay un dispositivo de cintas de tape backup. Una vez hecho ésto, se da clic en Aceptar y ya con ésto queda creado el dispositivo de respaldo.

Crear dispositivo

Una vez creada, ya se puede ver en la carpeta Backup y se puede usar en la ventana Figura x.

Dispositivos de Backup

23
jun
10

Reducir tamaño de Log de Transacciones en MS SQL 2000

Luego de hacer un respaldo completo a la base de datos en MS SQL 2000, en dicho respaldo se lleva tanto los datos como los log de transacciones, y si éste último crece demasiado, el respaldo completo se vuelve lento y también el rendimiento del mismo servidor puede volverse un poco lento, por lo que es necesario que de vez en cuando se realice una reducción de éste log de transacciones, el cual va creciendo de forma dinámica dejando, aparte del tamaño real de los logs, un porcentaje de espacio en disco reservado para dicha tarea.

Primero hay que identificar si realmente es necesario realizar éste proceso, por lo que abrimos la herramienta que esta en Inicio -> Todos los programas -> Microsoft SQL Server -> Enterprise Manager. En la ventana principal, expandimos El árbol de la columna izquierda hasta llegar a la carpeta llamada Databases de nuestro servidor. Aqui, se da clic derecho en la base de datos a la cual queremos ver cómo se encuentra el tamaño del log de transacciones, luego en Ver y finalmente damos clic en Taskpad.

Ver

Ahora si, en la parte de la parte derecha de la ventana, veremos el apartado llamado Space allocated, el cual nos muestra el tamaño real tanto de la data como del log de transacciones.

Taskpad

Se puede ver entonces que el espacio del log de transacciones, para éste ejemplo, es bastante bajo relativamente, pero hay ocasiones que si uno no le presta atención a éste detalle suele duplicar o triplicar el tamaño de la data dado que el log de transacciones almacena todas las instrucciones que han sido ejecutadas. Para poder reducir éste espacio, primero se recomienda que se realice un respaldo completo de la base de datos y luego abrir el SQL Query Analyzer (Se puede abrir dando clic en Tools -> SQL Query Analyzer). Se debe de asegurar que se encuentre en la base de datos master, (de preferencia, ejecutar el comando use master. Un vez en la ventana del SQL Query Analyzer, se debe de digitar el siguiente script (La imagen siguiente…)

Comando

Donde MiBase deberá de ser reemplazada por el nombre de la base de datos a la cual se le quiere reducir el espacio del log de transacciones. Se ejecuta dicho comando (con F5 digamos) y se mostrará la siguiente información:

Resultados

Entonces, si nos vamos al Taskpad del SQL Server Enterprise Manager, verémos que la información cambia respecto al tamaño del log de transacciones.

Taskpad

21
jun
10

Desbloquear proceso en MSSQL 2000

Cuando dos o más usuarios toman el mismo registro, se dice que se llama Interbloqueo, por lo que ésto puede hacer que las tablas relacionadas al registro no puedan ser accedidas.

Para solventar éste problema, se deberá de iniciar sesión al SQL Query Analizer como sa y usando la base de datos Master.

SQL Analizer

Ahora, se ejecutará el comando: sp_who2, el cual nos mostrará una lista de todos los procesos en ese momento, además de información interesante como el login, nombre de equipo, base de datos, entre otros.

La columna al cual le prestarémos mucha atención es BlkBy.

sp_who2

Se puede ver que en el proceso con SPID 68 existe un bloqueo por parte del proceso con SPID 71, por lo que se deberá de ejecutar el comando:

Kill 71

De esta forma, el proceso bloqueador será terminado y dejará de haber problemas para acceder a los registros.

21
jun
10

Crear función MD5 en MSSQL 2000

En Microsoft SQL Server 2000 no existe una función prediseñada para poder realizar encriptación MD5, el cual es un algoritmo de encriptación de una sola vía muy útil y famoso, por lo que se describirán los pasos a seguir para poder crear una función MD5.

Lo primero es copiar el archivo xp_md5.dll en %programfiles%\Microsoft SQL Server\MSSQL\Binn

Después hay que ejecutar un procedimiento alacenado, por lo que se deberá de iniciar el SQL Query Analyzer con el usuario sa y en la base de datos Master. La línea de comando sería:

EXEC sp_addextendedproc 'xp_md5', 'xp_md5.dll'

Donde “xp_md5″ será el nombre del procedimiento.

Una vez realizado ésto, ya se puede aplicar como por ejemplo con una función. Se debería de crear una función en la base de datos que se desee de la siguiente forma:

CREATE FUNCTION [dbo].[fn_md5] (@data TEXT)
RETURNS CHAR(32) AS
BEGIN
DECLARE @hash CHAR(32)
EXEC master.dbo.xp_md5 @data, -1, @hash OUTPUT
RETURN @hash
END

Un ejemplo de llamada sería:

SELECT dbo.fn_md5('Esta es la cadena a encriptar');




Eres el visitante número

  • 499,975 hits
abril 2014
L M X J V S D
« jun    
 123456
78910111213
14151617181920
21222324252627
282930  

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.