Restaurar una base de datos SQL Server con sqlcmd

SQL Server dispone desde la versión 2005 de un excelente entorno de gestión llamado «SQL Server Management Studio» (ssms).

Es habitual utilizar dicha herramienta para gestionar todo lo que concierne a bases de datos SQL Server. Sin embargo no es la única forma.

En algunos casos es necesario el uso de «sqlcmd».

Sqlcmd es una herramienta de linea de comando que nos ayuda a interactuar con el motor de base de datos, superando algunos límites del comentado SSMS o sustituyéndolo cuando sea necesario.

Con la aparición de SQL Server 2017 en Linux, la administración a través de la consola sqlcmd se hará más popular.

En esta entrada veremos cómo restaurar una base de datos usando sqlcmd.

Hay que aclarar que esta entrada vale para SQL Server en cualquiera de sus versiones e instalado tanto en Linux como en Windows.

Preparación del Restore

Mucho podríamos comentar sobre una preparación de una instancia para realizar un restore, sin embargo, solo comentaremos algunos datos básicos.

Necesitamos saber los siguientes datos antes de ejecutar el restore:

hostname/instance: Si es la «default instance» y vas a lanzar el sqlcmd desde el propio servidor de base de datos, es posible que con «localhost» sea suficiente.

sql_user: Usuario con el que conectar a la instancia, habitualmente un usuario sysdba.

database_name: Nombre de la base de datos que queremos restaurar.restore

/path/to/backup/database_backup.BAK: Nombre del archivo (dispositivo) de backup y la ruta en la que se encuentra.

Restaura la base de datos

Con los datos anteriormente comentados, sustitúyelos en la siguiente sentencia y ejecútala en una consola de sistema.


sqlcmd -S hostname/instance -U sql_user -Q "RESTORE DATABASE database_name FROM DISK='/path/to/backup/database_backup.BAK'"

Tras ejecutar, te pedirá la clave. Introduce la password y dale a intro para realizar el restore.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *