Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
En este artículo se describe cómo crear una copia de seguridad completa de la base de datos en SQL Server mediante SQL Server Management Studio, Transact-SQL o PowerShell.
Para más información, consulte Copia de seguridad y restauración de SQL Server con Azure Blob Storage y copia de seguridad de SQL Server en la dirección URL de Azure Blob Storage.
Limitaciones
- La instrucción
BACKUPno se permite en una transacción explícita o implícita. - Las copias de seguridad creadas por versiones más recientes de SQL Server no se pueden restaurar en versiones anteriores de SQL Server.
Para obtener información general y profundizar más en los conceptos y tareas de copia de seguridad, consulte Información general de copia de seguridad (SQL Server) antes de continuar.
Recomendaciones
- A medida que la base de datos aumenta de tamaño, las copias de seguridad completas requieren más tiempo para finalizar y más espacio de almacenamiento. Para las bases de datos grandes, considere la posibilidad de complementar las copias de seguridad completas con una serie de copias de seguridad diferenciales.
- Calcule el tamaño de una copia de seguridad completa de la base de datos mediante el procedimiento almacenado del sistema sp_spaceused .
- De forma predeterminada, cada operación de copia de seguridad correcta agrega una entrada en el registro de errores de SQL Server y en el registro de eventos del sistema. Si realiza una copia de seguridad con frecuencia, los mensajes de éxito se acumulan rápidamente, lo que hace que sea difícil encontrar otros mensajes. En esos casos, puede suprimir estas entradas de registro de copia de seguridad con la marca de seguimiento 3226 si ninguno de los scripts depende de ellas. Para obtener más información, consulte Establecimiento de marcas de seguimiento con DBCC TRACEON.
Seguridad
TRUSTWORTHY se establece OFF en en una copia de seguridad de base de datos. Para obtener información sobre cómo establecer TRUSTWORTHYONen , vea OPCIONES ALTER DATABASE SET.
A partir de SQL Server 2012 (11.x), las PASSWORD opciones y MEDIAPASSWORD no están disponibles para crear copias de seguridad. Todavía puede restaurar las copias de seguridad creadas con contraseñas.
Permisos
De forma predeterminada, los permisos BACKUP DATABASE y BACKUP LOG se corresponden a los miembros del rol fijo de servidor sysadmin y de los roles fijos de base de datos db_owner y db_backupoperator.
Los problemas de propiedad y permisos del archivo físico del dispositivo de copia de seguridad pueden interferir con una operación de copia de seguridad. El servicio SQL Server debe leer y escribir en el dispositivo. La cuenta en la que se ejecuta el servicio SQL Server debe tener permisos de escritura en el dispositivo de copia de seguridad. En cambio, sp_addumpdevice, que agrega una entrada para un dispositivo de copia de seguridad en las tablas del sistema, no comprueba los permisos de acceso a los archivos. Es posible que los problemas en el archivo físico del dispositivo de copia de seguridad no aparezcan hasta que se use la copia de seguridad o se intente restaurar.
Uso de SQL Server Management Studio
Nota:
Al especificar una tarea de copia de seguridad mediante SQL Server Management Studio, puede generar el script backup correspondiente Transact-SQL seleccionando el botón Script y seleccionando un destino de script.
Después de conectarse a la instancia adecuada del motor de base de datos de SQL Server, en el Explorador de objetos, expanda el árbol de servidores.
Expanda Bases de datosy seleccione la base de datos de un usuario o expanda Bases de datos del sistema y seleccione una base de datos del sistema.
Haga clic con el botón derecho en la base de datos de la que desea realizar una copia de seguridad, seleccione Tareas y, a continuación, seleccione Copia de seguridad....
En el cuadro de diálogo Copia de seguridad de base de datos , la base de datos seleccionada aparece en la lista desplegable. (Puede cambiar la base de datos a cualquier otra base de datos del servidor).
En la lista Tipo de copia de seguridad, seleccione un tipo de copia de seguridad. El valor predeterminado es Full.
Importante
Debe realizar al menos una copia de seguridad completa de la base de datos para poder realizar una copia de seguridad diferencial o de registro de transacciones.
En Componente de copia de seguridad, seleccione Base de datos.
En la sección Destino, revise la ubicación predeterminada del archivo de copia de seguridad (en la carpeta ../mssql/data).
Puede usar la lista Copia de seguridad para seleccionar otro dispositivo. Seleccione Agregar para agregar objetos de copia de seguridad o destinos. Puede fragmentar el conjunto de copia de seguridad en varios archivos para aumentar la velocidad de copia de seguridad.
Para quitar un destino de copia de seguridad, selecciónelo y, a continuación, seleccione Quitar. Para ver el contenido de un destino de copia de seguridad existente, selecciónelo y, a continuación, seleccione Contenido.
(Opcional) Revise la otra configuración disponible en las páginas Opciones de medios y Opciones de copia de seguridad .
Para obtener más información sobre las distintas opciones de copia de seguridad, vea Copia de seguridad de base de datos (página General), Copia de seguridad de base de datos (página Opciones de medios) y Copia de seguridad de base de datos (página Opciones de copia de seguridad) .
Seleccione Aceptar para iniciar la copia de seguridad.
Cuando la copia de seguridad se complete correctamente, seleccione Aceptar para cerrar el cuadro de diálogo SQL Server Management Studio.
Información adicional
Después de crear una copia de seguridad completa de la base de datos, puede crear una copia de seguridad diferencial o una copia de seguridad del registro de transacciones.
(Opcional) Puede seleccionar la casilla Copia de seguridad de solo copia para crear una copia de seguridad de solo copia. Una copia de seguridad de solo copia es una copia de seguridad de SQL Server que es independiente de la secuencia de copias de seguridad convencionales de SQL Server. Para obtener más información, consulte Copias de seguridad de solo copia. Una copia de seguridad de solo copia no está disponible para el tipo de copia de seguridad Diferencial.
La opción Sobrescribir medios está deshabilitada en la página Opciones multimedia si la copia de seguridad se realiza en una dirección URL.
Ejemplos
Para los ejemplos siguientes, cree una base de datos de prueba con el siguiente código Transact-SQL:
USE [master]
GO
CREATE DATABASE [SQLTestDB]
GO
USE [SQLTestDB]
GO
CREATE TABLE SQLTest
(
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR(100) NOT NULL,
dt1 DATETIME NOT NULL DEFAULT getdate()
);
GO
USE [SQLTestDB]
GO
INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO
SELECT * FROM SQLTest
GO
A Copia de seguridad completa en el disco en la ubicación predeterminada
En este ejemplo, se realiza una copia de seguridad de la SQLTestDB base de datos en el disco en la ubicación de copia de seguridad predeterminada.
Después de conectarse a la instancia adecuada del motor de base de datos de SQL Server, en el Explorador de objetos, expanda el árbol de servidores.
Expanda Bases de datos, haga clic con el botón derecho en
SQLTestDB, seleccione Tareasy, finalmente, Copia de seguridad...Seleccione Aceptar.
Cuando la copia de seguridad se complete correctamente, seleccione Aceptar para cerrar el cuadro de diálogo SQL Server Management Studio.
B. Copia de seguridad completa en disco en una ubicación no predeterminada
En este ejemplo, se realiza una copia de seguridad de la SQLTestDB base de datos en el disco en una ubicación que elija.
Después de conectarse a la instancia adecuada del motor de base de datos de SQL Server, en el Explorador de objetos, expanda el árbol de servidores.
Expanda Bases de datos, haga clic con el botón derecho en
SQLTestDB, seleccione Tareasy, finalmente, Copia de seguridad...En la página General de la sección Destino , seleccione Disco en la lista Copia de seguridad en .
Seleccione Quitar hasta que se quiten todos los archivos de copia de seguridad existentes.
Selecciona Agregar. Se abre el cuadro de diálogo Seleccionar destino de copia de seguridad .
Escriba una ruta de acceso y un nombre de archivo válidos en el cuadro Nombre de archivo . Use .bak como extensión para simplificar la clasificación del archivo.
Seleccione Aceptar y, después, otra vez Aceptar para iniciar la copia de seguridad.
Cuando la copia de seguridad se complete correctamente, seleccione Aceptar para cerrar el cuadro de diálogo SQL Server Management Studio.
C. Crear una copia de seguridad cifrada
En este ejemplo, se realiza una copia de seguridad de la SQLTestDB base de datos con cifrado en la ubicación de copia de seguridad predeterminada.
Después de conectarse a la instancia adecuada del motor de base de datos de SQL Server, en el Explorador de objetos, expanda el árbol de servidores.
Expanda Bases de datos, bases de datos del sistema, haga clic con el botón derecho en
mastery, a continuación, seleccione Nueva consulta para abrir una ventana de consulta con una conexión a laSQLTestDBbase de datos.Ejecute los siguientes comandos para crear una clave maestra de base de datos y un certificado dentro de la
masterbase de datos.-- Create the master key. CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'; -- If the master key already exists, open it in the same session that you create the certificate. (See next step.) OPEN MASTER KEY DECRYPTION BY PASSWORD = '<password>' -- Create the certificate encrypted by the master key. CREATE CERTIFICATE MyCertificate WITH SUBJECT = 'Backup Cert', EXPIRY_DATE = '20201031';En el Explorador de objetos, en el nodo Bases de datos, haga clic con el botón derecho en
SQLTestDBy seleccione sucesivamente Tareas y Hacer copia de seguridad…En la página Opciones de medios, en la sección Sobrescribir medios , seleccione Realizar copia de seguridad en un nuevo conjunto de medios y borrar todos los conjuntos de copia de seguridad existentes.
En la página Opciones de copia de seguridad , en la sección Cifrado , seleccione Cifrar copia de seguridad.
En la lista Algoritmo , seleccione AES 256.
En la lista Certificado o clave asimétrica , seleccione
MyCertificate.Seleccione Aceptar.
D. Copia de seguridad en Azure Blob Storage
En este ejemplo se crea una copia de seguridad completa de la base de datos de SQLTestDB en Azure Blob Storage. El ejemplo se escribe con la suposición de que ya tiene una cuenta de almacenamiento con un contenedor de blobs. En el ejemplo se crea una firma de acceso compartido. En el ejemplo se produce un error si el contenedor tiene una firma de acceso compartido existente.
Si no tiene un contenedor de Blob Storage en una cuenta de almacenamiento, cree uno antes de continuar. Consulte Creación de una cuenta de almacenamiento de uso general y Creación de un contenedor.
Después de conectarse a la instancia adecuada del motor de base de datos de SQL Server, en el Explorador de objetos, expanda el árbol de servidores.
Expanda Bases de datos, haga clic con el botón derecho en
SQLTestDB, seleccione Tareasy, finalmente, Copia de seguridad...En la página General , en la sección Destino , seleccione DIRECCIÓN URL en la lista Copia de seguridad en .
Selecciona Agregar. Se abre el cuadro de diálogo Seleccionar destino de copia de seguridad .
Si ha registrado previamente el contenedor de Azure Storage que desea usar con SQL Server Management Studio, selecciónelo. En caso contrario, seleccione Nuevo contenedor para registrar un contenedor nuevo.
En el cuadro de diálogo Conectar a una suscripción de Microsoft , inicie sesión en su cuenta.
En el cuadro Seleccionar cuenta de almacenamiento , seleccione la cuenta de almacenamiento.
En el cuadro Seleccionar contenedor de blobs , seleccione el contenedor de blobs.
En el cuadro Calendario de expiración de la directiva de acceso compartido , seleccione una fecha de expiración para la directiva de acceso compartido que cree en este ejemplo.
Seleccione Crear credencial para generar una firma de acceso compartido y una credencial en SQL Server Management Studio.
Seleccione Aceptar para cerrar el cuadro de diálogo Conectar a una suscripción de Microsoft .
En el cuadro Archivo de copia de seguridad , cambie el nombre del archivo de copia de seguridad si desea.
Seleccione Aceptar para cerrar el cuadro de diálogo Seleccionar un destino de copia de seguridad .
Seleccione Aceptar para iniciar la copia de seguridad.
Cuando la copia de seguridad se complete correctamente, seleccione Aceptar para cerrar el cuadro de diálogo SQL Server Management Studio.
Nota:
Actualmente no se admite la copia de seguridad en Blob Storage mediante identidades administradas.
Uso de Transact-SQL
Cree una copia de seguridad completa de la base de datos mediante la ejecución de la BACKUP DATABASE instrucción , especificando:
- El nombre de la base de datos de la que se va a realizar una copia de seguridad.
- El dispositivo de copia de seguridad en el que se escribe la copia de seguridad de base de datos completa.
La sintaxis básica de Transact-SQL para crear una copia de seguridad de base de datos completa es:
BACKUP DATABASE <database>
TO <backup_device> [ , ...n ]
[ WITH <with_options> [ , ...o ] ];
| Opción | Descripción |
|---|---|
<database> |
Base de datos de la que se va a realizar una copia de seguridad. |
<backup_device> [ , ...n ] |
Especifica una lista de entre 1 y 64 dispositivos de copia de seguridad que se usarán para la operación de copia de seguridad. Puede especificar un dispositivo de copia de seguridad físico o puede especificar un dispositivo lógico de copia de seguridad correspondiente, si ya se ha definido uno. Para especificar un dispositivo de copia de seguridad físico, use la DISK opción o TAPE :{ DISK | TAPE } =physical_backup_device_namePara obtener más información, vea Dispositivos de copia de seguridad (SQL Server). |
WITH <with_options> [ , ...o ] |
Se usa para especificar una o varias opciones, o. A continuación encontrará información sobre algunas de las opciones básicas WITH . |
Opcionalmente, especifique una o varias WITH opciones. Aquí se describen algunas opciones básicas WITH . Para obtener información sobre todas las WITH opciones, consulte BACKUP.
Opciones básicas del conjunto WITH de copia de seguridad:
- { COMPRESSION | NO_COMPRESSION }. En SQL Server 2008 (10.0.x) Enterprise y versiones posteriores, solo especifica si la compresión de copia de seguridad se realiza en la copia de seguridad, reemplazando el valor predeterminado de nivel de servidor.
- CIFRADO (ALGORITMO, CERTIFICADO DE SERVIDOR | ASYMMETRIC KEY). Solo en SQL Server 2014 o posterior, especifica el algoritmo de cifrado que se va a usar y el certificado o la clave asimétrica que se va a usar para proteger el cifrado.
- DESCRIPTION = { 'text' | @text_variable }. Especifica el texto de forma libre que describe el conjunto de copia de seguridad. La cadena puede tener un máximo de 255 caracteres.
-
NAME = { backup_set_name | @backup_set_name_var }. Especifica el nombre del conjunto de copia de seguridad. Los nombres pueden tener un máximo de 128 caracteres. Si
NAMEno se especifica, está en blanco.
De forma predeterminada, BACKUPanexa la copia de seguridad a un conjunto de medios existente, y se conservan los conjuntos de copia de seguridad existentes. Para especificar explícitamente esta configuración, use la NOINIT opción . Para obtener información sobre cómo anexar a conjuntos de copia de seguridad existentes, vea Conjuntos de medios, familias de medios y conjuntos de copia de seguridad (SQL Server).
Para dar formato a los medios de copia de seguridad, use la FORMAT opción :
FORMAT [ , MEDIANAME = { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { text | @text_variable } ]
Use la FORMAT cláusula cuando use medios por primera vez o cuando quiera sobrescribir todos los datos existentes. De manera opcional, puede asignar a los nuevos medios un nombre y una descripción.
Importante
Tenga cuidado al usar la FORMAT cláusula de la BACKUP instrucción porque esta opción destruye las copias de seguridad almacenadas anteriormente en los medios de copia de seguridad.
Ejemplos
Para los ejemplos siguientes, cree una base de datos de prueba con el siguiente código Transact-SQL:
USE [master]
GO
CREATE DATABASE [SQLTestDB]
GO
USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR(100) NOT NULL,
dt1 DATETIME NOT NULL DEFAULT GETDATE()
)
GO
USE [SQLTestDB]
GO
INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO
SELECT * FROM SQLTest
GO
A Copia de seguridad en un dispositivo de disco
En el ejemplo siguiente se realiza una copia de seguridad de la base de datos completa SQLTestDB en el disco. Usa FORMAT para crear un nuevo conjunto de medios.
USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO DISK = 'c:\tmp\SQLTestDB.bak'
WITH FORMAT,
MEDIANAME = 'SQLServerBackups',
NAME = 'Full Backup of SQLTestDB';
GO
B. Copia de seguridad en un dispositivo de cinta
En el ejemplo siguiente se realiza una copia de seguridad de la base de datos completa SQLTestDB en cinta. Anexa la copia de seguridad a las copias de seguridad anteriores.
USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO TAPE = '\\.\Tape0'
WITH NOINIT,
NAME = 'Full Backup of SQLTestDB';
GO
C. Copia de seguridad en un dispositivo de cinta lógico
En este ejemplo, se crea un dispositivo de copia de seguridad lógico para una unidad de cinta. A continuación, en el ejemplo se realiza una copia de seguridad de la base de datos completa SQLTestDB en ese dispositivo.
-- Create a logical backup device,
-- SQLTestDB_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXEC sp_addumpdevice 'tape', 'SQLTestDB_Bak_Tape', '\\.\tape0'; USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO SQLTestDB_Bak_Tape
WITH FORMAT,
MEDIANAME = 'SQLTestDB_Bak_Tape',
MEDIADESCRIPTION = '\\.\tape0',
NAME = 'Full Backup of SQLTestDB';
GO
Uso de PowerShell
Use el Backup-SqlDatabase cmdlet . Para indicar explícitamente una copia de seguridad completa de la base de datos, especifique el -BackupAction parámetro con su valor predeterminado, Database. Este parámetro es opcional para las copias de seguridad de base de datos completas.
Nota:
Estos ejemplos requieren el módulo SqlServer. Para determinar si está instalado, ejecute Get-Module -Name SqlServer. Para instalarlo, ejecute Install-Module -Name SqlServer en una sesión de administrador de PowerShell.
Para más información, consulte SQL Server PowerShell Provider.
Importante
Si va a abrir una ventana de PowerShell desde SQL Server Management Studio (SSMS) para conectarse a una instancia de SQL Server, puede omitir la parte de credencial porque la credencial de SSMS se usa automáticamente para establecer la conexión entre PowerShell y la instancia de SQL Server.
Ejemplos
A Copia de seguridad completa (local)
En el ejemplo siguiente se crea una copia de seguridad completa de la base de datos <myDatabase> en la ubicación de copia de seguridad predeterminada de la instancia de servidor Computer\Instance. Opcionalmente, en este ejemplo se especifica -BackupAction Database.
Para obtener ejemplos completos de sintaxis, consulte Backup-SqlDatabase.
$credential = Get-Credential
Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database <myDatabase> -BackupAction Database -Credential $credential
B. Copia de seguridad completa en Azure
En el ejemplo siguiente se crea una copia de seguridad completa de la base de datos <myDatabase> de la <myServer> instancia en Blob Storage. Se ha creado una directiva de acceso almacenada con derechos de lectura, escritura y lista. La credencial de SQL Server, https://<myStorageAccount>.blob.core.windows.net/<myContainer>, se creó mediante una firma de acceso compartido asociada a la directiva de acceso almacenada. El comando usa el $backupFile parámetro para especificar la ubicación (URL) y el nombre del archivo de copia de seguridad.
$credential = Get-Credential
$container = 'https://<myStorageAccount>blob.core.windows.net/<myContainer>'
$fileName = '<myDatabase>.bak'
$server = '<myServer>'
$database = '<myDatabase>'
$backupFile = $container + '/' + $fileName
Backup-SqlDatabase -ServerInstance $server -Database $database -BackupFile $backupFile -Credential $credential
Tareas relacionadas
- Crear una copia de seguridad diferencial de la base de datos (SQL Server)
- Restauración de una copia de seguridad de base de datos mediante SSMS
- Restaurar una copia de seguridad de base de datos en el modelo de recuperación simple (Transact-SQL)
- Restauración de la base de datos al punto de error: recuperación completa
- Restauración de una base de datos en una nueva ubicación (SQL Server)
- Usar el Asistente para planes de mantenimiento
Contenido relacionado
- Solución de problemas de operaciones de copia de seguridad y restauración de SQL Server
- Información general de copia de seguridad (SQL Server)
- Copias de seguridad del registro de transacciones (SQL Server)
- Conjuntos de medios, familias de medios y conjuntos de copia de seguridad (SQL Server)
- sp_addumpdevice (Transact-SQL)
- BACKUP (Transact-SQL)
- Copia de seguridad de base de datos (página General)
- Copia de seguridad de la base de datos (página Opciones de copia de seguridad)
- Copias de seguridad diferenciales (SQL Server)
- Copias de seguridad completas de bases de datos (SQL Server)