Cómo hacer un backup de SQL Server fácil

base de datos, programaciónNo hay Comentarios »
meneame menéame -

SQL Server es una base de datos más que conocida, así que hay multitud de aplicaciones para hacer una copia de seguridad, incluyendo claro, las de la propia Microsoft.

De todas formas es posible hacer copias de seguridad sin contar con ninguna de esas herramientas gráficas y de forma sencilla y desatendida, de forma que se puedan programar de forma automática.

Lo que voy a comentar lo uso para bases de datos de prueba o en fases iniciales de producción ya que realiza una copia completa (no diferencial).

Objetivo: hacer una copia de seguridad diaria y sin intervención de administrador, que además esos ficheros se guarden en otro servidor diferente y que pueda conservar las copias antiguas para tener un historial y poder restaurar la base de datos días atrás por si hay un problema de programación.

Para conseguirlo:

  • Supongamos que la base de datos se llama… Dummy (original, ¿no?). Creamos en un fichero de texo .SQL con la sentencia que realiza el volcado de datos. El fichero lo llamo Dummybackup.sql y contiene lo siguiente:
BACKUP DATABASE [sea] TO  DISK = N'C:\Dummybackup.bak' WITH  DESCRIPTION = N'Copia de seguridad completa de Base de datos', NOFORMAT, NOINIT,  NAME = N'Dummybackup.bak', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'dummy' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'dummy' )
if @backupSetId is null begin raiserror(N'Error de comprobación. No se encuentra la información de copia de seguridad para la base de datos ''Dummy''.', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N'C:\Dummy_backup.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
GO
  • Creamos en el PC servidor un fichero .BAT con este contenido:
@ECHO OFF
sqlcmd -S SERVIDOR2003\SQLSRV -U adminBD -P adminClave -d Dummy -i Dummybackup.sql
copy Dummybackup.bak Z:\Dummybackup_%date:/=-%.bak
del Dummybackup.bak

En este fichero llamamos al interprete interactivo de sqlcmd de SQL Server, y le indicamos:

- Parámetro S: sobre qué servidor vamos a trabajar.

- Parámetro U: usuario

- Parámetro P: contraseña

- Parámetro d: base de datos

- Parámetro i: fichero con la sentencia/s SQL a ejecutar.

Depués copiamos el volcado a la unidad Z creando un fichero que contiene la fecha del día actual, de forma que conseguimos un historial de backups y al haber montado la unidad Z sobre otro servidor, además tenemos los datos en PC diferente. Por último borramos el fichero con el volcado “temporal”.

Eso es todo.

No hay Comentarios »

stackoverflow.com: web profesional y gratuita para resolver tus dudas de programación

programación, web2 Comentarios »
meneame menéame -

stackoverflow.com, una expresión maldita para muchos programadores es el nuevo proyecto de Joel Spolsky (en realidad interviene como CEO de Fog Creek Software en joint venture con Jeff Atwood). Su idea es: un programador cuando tiene una duda va a Google y en muchos casos se encuentra sitios de pago, que además muestran respuestas de otros usuarios programadores como tú y que pueden tener la respuesta correcta o no, pues entonces, construyamos un sitio de preguntas y respuestas de programadores para programadores gratuito, sin publicidad, sin popups, con HTML y diseño básico, gratuito y donde sólo se registren los usuarios de forma voluntaria y si quieren tener un “karma”.

Desearles mucha suerte y seguiremos la evolución del proyecto. De momento en su web tienen una presentación echa por ellos mismos y un chiste que merece la pena ver.

2 Comentarios »

Dos monitores aumentan la productividad, pero no tanto

General, programación, webNo hay Comentarios »
meneame menéame -

El otro día veía unas fotos de la oficina nueva de Google en Zurich y leía que sus trabajadores usan como estándar 2 monitores porque aumenta la productividad (de hecho algunos empleados usan más de dos). He buscado un poquito de información y resulta que cuando Apple inició su tendencia de monitores de gran tamaño, presentó un informe que decía que de esa forma se incrementaba la productividad. El informe desarrollado por Pfeiffer Consulting se desarrolló comparando una pantalla de 30″ de Apple con una 17″ de Samsung y usando las herramientas: InDesign, Photoshop, Illustrator, Microsoft Office y QuarkExpress (puedes verlo completo).

Pues bien, yo estoy usando ahora la pantalla de mi portátil (15″) con un monitor 19″ panorámico y me pregunté si realmente era más efectivo, porque me parecía evidentemente que era más cómodo. Mi metodología ha sido la siguiente:

1. Prueba A: desarrollo de aplicación de escritorio.

  • Trabajo: crear un formulario enlazado con base de datos consultado en 4 tablas diferentes y con un grid en maestro-detalle.
  • Aplicaciones: Visual Basic 6. Utilizo un formulario estándar con 3 ADO Datacontrol y un grid que es TrueDBGrid versión 8. La base de datos es SQL Server 2005.
  • Ventanas:
  • Tiempo de desarrollo con dos monitores: 46 minutos.

2. Prueba B: desarrollo web

  • Trabajo: crear un página web que contiene un formulario con 240 listas desplegables (80 filas con 3 columnas con una lista en cada celda de una tabla) y que debe actualizar una base de datos mediante Ajax con el valor con el valor que el usuario selecciona. Hay que mostrar la lista actualizada desde la base de datos y junto a ella la fecha/hora de actualización por parte del usuario.
  • Aplicaciones: Zend development studio 5 para editar los ficheros sobre un sevidor con Linux. La base de datos es MySQL versión 4.3. El framework de Javascript es Prototype.
  • Ventanas:
  • Tiempo de desarrollo con dos monitores: 79 minutos.

¿Cuál ha sido el tiempo que he ahorrado con respecto al uso de un solo monitor?. Pues bien, básicamente como la cantidad de código no me obligaba a hacer demasiado scroll en ambos casos, el tiempo de mejora iba a estar en el salto entre aplicaciones, así que grabé las sesiones de trabajo en vídeo y conté los cambios de ventana.

En la prueba A cambié de ventana 38 veces, y en la prueba B, 93 veces. Ahora sólo quedaba calcular cuánto tiempo había ahorrado a tener 1 ventana en cada monitor, y después de varias pruebas lo cifré en 3 segundos. Eso significaría que en cambios de ventana, ahorré 1 min. 54 seg. en la prueba A y 4 min. 39 seg. en la prueba B.

Si a esto le añadimos que durante el trabajo reduces errores al poder, por ejemplo, ver los nombres de los campos de la base de datos mientras desarrollas, o hacer una traza del código mientras ves los resultados del programa en ejecución y añadimos 2 min. para la prueba A y 1 min. para la B, los resultados quedarían así:

Prueba Tiempo desarrollo con 1 monitor Tiempo desarrollo con 2 monitores Ahorro tiempo (%)
A 49:54 46 7,8 %
B 84:39 79 6,7 %

Es decir, no llega ni más ni menos que al 8%. Que significa eso que por cada jornada de trabajo de 8 hrs. ganaríamos unos 40 minutos y unas 13 hrs. al final del mes, eso significa jornada y media aprox. Evidentemente esto no llega a lo que que el informe de Pfeiffer Consulting decía, pero bueno, al precio de los TFT del momento, se justifica más que de sobra el comprar un segundo monitor.

Además hay que contar factores como el cansancio visual que se reduce con monitores de mayor tamaño o la ergonomía, al no tener reducir los movimientos de ratón, no cambiar la vista de distancia focal al mover el puntero hacia la zona inferior del monitor y volver al centro, etc.

En resumen, si no lo teneis ya, mi consejo es que tengais un segundo monitor (o quien sabe, un tercero…). ¿Qué os parece la idea?

P.D.: Continuará…

No hay Comentarios »


Diseñado por j david macor.com. WP Theme & Icons originales por N.Design Studio. Traducido por Trazos Web.
Entradas RSS Comentarios RSS Log in