Haga una copia de seguridad y restaure su base de datos de SQL Server desde la línea de comando

La parte más importante de un plan de mantenimiento de SQL Server es realizar copias de seguridad de sus bases de datos con regularidad. Para hacer una copia de seguridad de una base de datos, no puede simplemente copiar los archivos MDF y LDF respectivos de la base de datos porque SQL Server los bloquea. En su lugar, debe crear un archivo de copia de seguridad real a través de SQL Server.

Aunque esto se puede hacer desarrollando un plan de mantenimiento en SQL Management Studio, las ediciones Express gratuitas de SQL Server no ofrecen esta interfaz. Para solucionar este problema, puede realizar fácilmente una copia de seguridad de sus bases de datos ejecutando el siguiente comando mientras está conectado como administrador de Windows:

SqlCmd -E -S Server_name –Q «BACKUP DATABASE [Name_of_Database] TO DISK = ‘X: PathToBackupLocation[Name_of_Database].bak ‘”

Los siguientes ejemplos le ayudarán.

Instancia predeterminada de SQL Server:

SqlCmd -E -S MyServer –Q «BACKUP DATABASE [MyDB] AL DISCO = ‘D: BackupsMyDB.bak’ ”

Instancia de SQL Server con nombre:

SqlCmd -E -S MyServerMyInstance –Q «BACKUP DATABASE [MyDB] AL DISCO = ‘D: BackupsMyDB.bak’ ”

Lo anterior crea una copia de seguridad totalmente recuperable de «MyDB» en el archivo «D: BackupsMyDB.bak» que se puede utilizar para la recuperación de desastres. Por supuesto, puede cambiar la ubicación y el archivo de respaldo según sea necesario, pero asegúrese de especificar una ubicación de carpeta que exista en la máquina local. Este archivo de copia de seguridad se puede copiar a una unidad de cinta u otra ubicación de copia de seguridad externa.

Una pregunta común es «¿Se puede crear un archivo de respaldo en una unidad asignada o en una ubicación UNC?» Y la respuesta rápida es no. La razón es que el servicio SQL Server Windows se ejecuta como una cuenta de usuario que solo tiene acceso a la computadora local. Puede cambiar la cuenta con la que se ejecuta el servicio, pero no se recomienda hacerlo por razones de seguridad.

Restauración de una copia de seguridad de la base de datos desde la línea de comandos

Para restaurar una base de datos desde un archivo de respaldo, simplemente use el comando:

SqlCmd -E -S Server_Name -Q «RESTORE DATABASE [Name_of_Database] FROM DISK = ‘X: PathToBackupFile[File_Name].bak ‘”

Por ejemplo:

SqlCmd -E -S MyServer –Q «RESTORE DATABASE [MyDB] FROM DISK = ‘D: BackupsMyDB.bak’ ”

El comando anterior restaurará una copia de seguridad de «MyDB» a partir de los datos almacenados en el archivo de copia de seguridad «D: BackupsMyDB.bak». Se perderán todos los cambios realizados en MyDB desde la creación del archivo de copia de seguridad.

Una cosa importante para recordar al usar el comando anterior es que está diseñado para usarse en el mismo servidor SQL en el que se creó el archivo de respaldo respectivo. Los archivos de respaldo SQL almacenan información «entre bastidores» que controla dónde y cómo se copian los archivos de datos del archivo de respaldo. Si está restaurando una copia de seguridad desde un servidor SQL diferente, es posible que las ubicaciones de la ruta en el archivo de copia de seguridad no coincidan con el servidor al que está restaurando y se producirá un error. Aunque se puede solucionar, es mucho más fácil restaurar las copias de seguridad creadas en otro servidor SQL utilizando la herramienta SQL Management Studio.

Nota: Los comandos anteriores funcionarán en SQL 2005 y versiones posteriores (cualquier edición). Para SQL 2000 y versiones anteriores, reemplace «SqlCmd» por «oSql».

Experto Geek - Tu Guía en Tendencias Tecnológicas