SQL Server proporciona una manera fácil de crear una copia de seguridad de una base de datos. Las copias de seguridad se pueden realizar con Transact-SQL, PowerShell o a través de la GUI.
Aquí, demostraré cómo crear una copia de seguridad con la interfaz gráfica de usuario de SQL Operations Studio (ahora llamada Azure Data Studio), luego con Transact-SQL y, por último, con SQL Server Powershell.
Cree una copia de seguridad a través de la GUI de SQLOPS/Azure Data Studio
-
Abrir el panel de la base de datos
En el panel izquierdo, haga clic con el botón derecho en la base de datos de la que desea hacer una copia de seguridad y seleccione Administrar .
Si utiliza SSMS, en el Explorador de objetos, haga clic con el botón derecho en la base de datos de la que desea realizar una copia de seguridad y seleccione Tareas> Copia de seguridad... del menú contextual. Esto iniciará la Base de datos de copia de seguridad cuadro de diálogo.
-
Inicie la Base de datos de respaldo Cuadro de diálogo
Haga clic en Copia de seguridad botón.
-
Revise la configuración
Este cuadro de diálogo le brinda la oportunidad de cambiar cualquiera de las configuraciones si es necesario.
Para nuestro ejemplo, déjelo en la configuración predeterminada y haga clic en Copia de seguridad para crear la copia de seguridad.
Si tiene requisitos de copia de seguridad específicos, puede cambiar el tipo de copia de seguridad y/o hacer clic en Configuración avanzada para ajustar los ajustes de configuración avanzada.
-
Copia de seguridad completa
Una vez que se completa la copia de seguridad, se muestra un mensaje que confirma que la copia de seguridad se realizó correctamente.
Copia de seguridad de una base de datos usando Transact-SQL
Puede realizar la misma copia de seguridad anterior con T-SQL.
Para hacer esto, abra una nueva ventana de consulta y ejecute un BACKUP
declaración.
El BACKUP
La declaración acepta varias opciones (al igual que la opción GUI), pero también puede ejecutar una copia de seguridad simple con un mínimo de código.
A continuación se muestra un ejemplo de un script de copia de seguridad simple en un sistema Linux o Mac. El script especifica la base de datos de la que se realizará la copia de seguridad y la ubicación en la que se realizará la copia de seguridad.
BACKUP DATABASE Music TO DISK = '/var/opt/mssql/data/Music.bak';
En un sistema Windows, la ruta usará barras invertidas:
BACKUP DATABASE Music TO DISK = 'C:\Backups\Music.bak';
Después de ejecutar este código, el archivo de copia de seguridad se ubicará en la ubicación especificada.
Copia de seguridad de una base de datos usando PowerShell
SQL Server 2017 es compatible con Windows PowerShell, que es un shell de secuencias de comandos, que normalmente se usa para automatizar las tareas de administración e implementación.
El lenguaje de PowerShell admite una lógica más compleja que los scripts de Transact-SQL, lo que le permite crear scripts más sofisticados para sus copias de seguridad y otras tareas.
El siguiente código creará una copia de seguridad como en los ejemplos anteriores. Simplemente reemplace MyServer
con el nombre de tu servidor.
Backup-SqlDatabase -ServerInstance MyServer -Database Music
También puede especificar una ubicación
Backup-SqlDatabase -ServerInstance MyServer -Database Music -BackupFile 'C:\Backups\Music.bak'
Después de ejecutar este código, el archivo de copia de seguridad se ubicará en la ubicación predeterminada.
También puede especificar -BackupAction Database
para indicar explícitamente que se trata de una copia de seguridad completa. Sin embargo, esta es la opción predeterminada.
Puede ver la documentación completa para Backup-SqlDatabase
comando en el sitio web de Microsoft.
Sobrescritura de archivos de copia de seguridad
Si realiza varias copias de seguridad con el mismo nombre de archivo para el archivo de copia de seguridad, es posible que observe que cada vez que ejecuta una copia de seguridad, el tamaño del archivo de copia de seguridad aumenta.
Esto se debe a que cada copia de seguridad sucesiva se agrega al archivo existente. Está haciendo esto porque está usando el mismo nombre de archivo y no ha especificado explícitamente que cada copia de seguridad debe sobrescribir cualquier archivo existente.
Hay una opción que le permite sobrescribir el archivo existente.
- Uso de la GUI de SQLOPS , haga clic en Configuración avanzada y en Copia de seguridad en el conjunto de medios existente , seleccione Sobrescribir todos los conjuntos de copia de seguridad existentes .
- Uso de la GUI de SSMS , haga clic en Opciones de medios en el menú de la izquierda de la Backup Database cuadro de diálogo y seleccione Sobrescribir todos los conjuntos de copia de seguridad existentes en Sobrescribir medios sección.
- Uso de SQL añadir
WITH INIT
a la instrucción SQL. - Uso de Powershell , agregue
-Initialize
al comando.
Uso de nombres de archivo únicos
Sin embargo, a menudo es una buena idea crear una copia de seguridad completa con un nombre de archivo único (que normalmente incluye la fecha en el nombre del archivo). Tener un nombre de archivo único significará que cada copia de seguridad será un archivo separado.
Además, según el tamaño de su base de datos y la cantidad de datos nuevos que se ingresan en ella, es posible que desee complementar sus copias de seguridad completas con copias de seguridad diferenciales. Una copia de seguridad diferencial captura solo los datos que han cambiado desde la copia de seguridad completa más reciente.