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
Este artículo describe cómo crear una copia de seguridad completa de la base de datos en SQL Server utilizando SQL Server Management Studio (SSMS), 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. Para una visión general de los conceptos y tareas de copia de seguridad, consulte Resumen de Copia de seguridad (SQL Server).
Recomendaciones
A medida que una base de datos crece, las copias de seguridad completas de la base de datos tardan más y requieren más almacenamiento. Para bases de datos grandes, complementa las copias de seguridad completas con una serie de copias de seguridad diferenciales.
Estime el tamaño de una copia de seguridad completa de la base de datos con el procedimiento almacenado del sistema sp_spaceused.
Por defecto, cada copia de seguridad exitosa añade una entrada al registro de errores de SQL Server y al registro de eventos del sistema. Las copias de seguridad frecuentes pueden llenar estos registros y dificultar la localización de otros mensajes.
Para suprimir entradas del registro de copias de seguridad, use la marca de seguimiento 3226, siempre que sus scripts no dependan de dichas entradas.
Limitaciones
No puedes usar la BACKUP sentencia en una transacción explícita o implícita.
No puedes restaurar copias de seguridad de versiones más recientes de SQL Server en versiones anteriores. Por ejemplo, no puedes restaurar una copia de seguridad de SQL Server 2025 (17.x) en SQL Server 2022 (16.x).
Seguridad
TRUSTWORTHY se establece a OFF en una copia de seguridad de una base de datos. Para configurar TRUSTWORTHY en ON, ver ALTER DATABASE SET opciones.
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
BACKUP DATABASE y BACKUP LOG permisos corresponden por defecto a los miembros del rol fijo de servidor sysadmin y de los roles fijos de base de datos db_owner y db_backupoperator.
La cuenta del servicio de SQL Server debe tener permisos de lectura y escritura en el archivo físico del dispositivo de respaldo. Los problemas de propiedad o permisos en ese archivo impiden las operaciones de copia de seguridad y restauración, y solo aparecen cuando se ejecuta la operación de copia de seguridad o restauración.
Por ejemplo, el procedimiento almacenado del sistema sp_addumpdevice , que añade una entrada de dispositivo de copia de seguridad a las tablas del sistema, no valida el acceso a archivos.
Uso de SQL Server Management Studio
En Explorador de objetos, conéctate al Motor de base de datos y luego expande el árbol de servidores.
Expande Bases de Datos y luego selecciona una base de datos de usuario. O bien, expande Bases de Datos del Sistema y selecciona una base de datos del sistema.
Haz clic derecho en la base de datos que quieres respaldar, apunta a Tareas y luego selecciona Copia de seguridad....
En el cuadro de diálogo Copia de seguridad de la base de datos, la base de datos que ha seleccionado aparece en la lista desplegable. Puedes 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).
Usa la lista Copia de seguridad para seleccionar otro dispositivo. Selecciona Añadir para añadir objetos de respaldo o destinos. Puedes distribuir el conjunto de copias de seguridad en varios archivos para aumentar la velocidad de la copia de seguridad.
Para eliminar un destino de copia de seguridad, selecciónelo y elija Quitar. Para ver el contenido de un destino de copia de seguridad existente, selecciona y selecciona Contenido.
Opcionalmente, revisa los otros ajustes en las páginas de Opciones de medios y Opciones de copia de seguridad .
Para más información sobre las opciones de copia de seguridad, consulte Base de datos de Respaldo (Página General),Base de Datos de Respaldo (página de Opciones de Medios) y Base de Datos de Respaldo (Página de Opciones de Copia de Seguridad).
Seleccione Aceptar para iniciar la copia de seguridad.
Cuando la copia de seguridad se complete con éxito, selecciona OK para cerrar el diálogo.
Observaciones
Cuando especificas una tarea de copia de seguridad en SQL Server Management Studio, puedes generar el script de Transact-SQL BACKUP correspondiente seleccionando el botón Script y luego el destino del script.
Después de crear una copia de seguridad completa de la base de datos, puedes hacer una copia de seguridad diferencial de la base de datos o una copia de seguridad de registros de transacciones.
Opcionalmente, selecciona 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 de SQL Server convencionales. Para obtener más información, consulte Copias de seguridad de tipo solo copia. Las copias de seguridad de solo copia no están disponibles para el tipo de copia de seguridad Differential.
La opción de Sobrescribir medios está desactivada en la página de Opciones de medios cuando haces una copia de seguridad a una URL.
Ejemplos
Para los siguientes ejemplos, crea una base de datos de prueba utilizando 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 DEFAULT getdate() NOT NULL
);
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
Este ejemplo hace una copia de seguridad de la SQLTestDB base de datos en disco en la ubicación predeterminada de la copia de seguridad.
En Explorador de objetos, conéctate al Motor de base de datos y luego expande 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 con éxito, selecciona OK para cerrar el diálogo.
B. Copia de seguridad completa en disco en una ubicación no predeterminada
Este ejemplo hace una copia de seguridad de la SQLTestDB base de datos en disco en la ubicación que elijas.
En Explorador de objetos, conéctate al Motor de base de datos y luego expande 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, selecciona Disco en la lista Realizar 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 . Usa .bak como extensión para simplificar la clasificación de archivos.
Selecciona Aceptar y luego volver a seleccionar Vale para iniciar la copia de seguridad.
Cuando la copia de seguridad se complete con éxito, selecciona OK para cerrar el diálogo.
C. Crear una copia de seguridad cifrada
Este ejemplo hace una copia de seguridad de la base de datos SQLTestDB con cifrado en la ubicación predeterminada para las copias de seguridad.
En Explorador de objetos, conéctate al Motor de base de datos y luego expande el árbol de servidores.
Expanda Bases de datos, expanda Bases de datos del sistema, haga clic con el botón derecho en
master, y luego seleccione Nueva consulta para abrir una ventana de consulta con una conexión a su base de datosSQLTestDB.Ejecuta los siguientes comandos para crear una clave maestra de base de datos y un certificado en 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. Hacer 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 asume que ya tienes una cuenta de almacenamiento con un contenedor de blobs. El ejemplo crea una firma de acceso compartida y falla si el contenedor tiene una firma de acceso compartida existente.
Si no tienes un contenedor de Blob Storage en una cuenta de almacenamiento, crea uno antes de continuar. Consulte Creación de una cuenta de almacenamiento de uso general y Creación de un contenedor.
En Explorador de objetos, conéctate al Motor de base de datos y luego expande 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 URL en la lista Realizar copia de seguridad en.
Selecciona Agregar. Se abre el cuadro de diálogo Seleccionar destino de copia de seguridad .
Si previamente registraste el contenedor de almacenamiento de Azure que quieres usar con SSMS, seleccionalo. En caso contrario, seleccione Nuevo contenedor para registrar un contenedor nuevo.
En el cuadro de diálogo Conectar a una suscripción de Microsoft, inicia sesión en tu 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 de calendario de Caducidad de la Política de Acceso Compartido , seleccione una fecha de caducidad para la política de acceso compartido que crea este ejemplo.
Selecciona Crear credencial para generar una firma y credencial de acceso compartido en SSMS.
Selecciona 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.
Selecciona OK 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 con éxito, selecciona OK para cerrar el diálogo.
Nota:
Actualmente no se admite la copia de seguridad en Blob Storage mediante identidades administradas.
Uso de Transact-SQL
Crea una copia de seguridad completa de la base de datos ejecutando la BACKUP DATABASE instrucción. Especifique:
- 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> |
La base de datos de la que se va a hacer una copia de seguridad. |
<backup_device> [ , ...n ] |
Especifica de 1 a 64 dispositivos de respaldo para la operación de respaldo. Especifica un dispositivo físico de copia de seguridad, o especifica un dispositivo lógico correspondiente si ya está definido. Para especificar un dispositivo de copia de seguridad físico, utilice la opción DISK, TAPE o URL:{ DISK | URL | TAPE} = physical_backup_device_nameÚsate URL para hacer copias de seguridad en Azure Blob Storage o almacenamiento de objetos compatible con S3. Para obtener más información, vea Dispositivos de copia de seguridad (SQL Server). |
WITH <with_options> [ , ...n ] |
Se usaba para especificar una o más opciones, n. Algunas de las opciones básicas WITH se describen en la siguiente lista. |
Opcionalmente, especifique una o varias WITH opciones. Aquí se describen algunas opciones básicas WITH . Para información sobre todas las WITH opciones, véase BACKUP.
Opciones básicas del conjunto WITH de copia de seguridad:
{ COMPRESIÓN | SIN_COMPRESIÓN }. SQL Server especifica si se realiza compresión de copia de seguridad sobre la copia de seguridad, anulando el valor predeterminado a nivel de servidor.
CIFRADO (ALGORITMO, SERVIDOR CERTIFICATE | ASYMMETRIC KEY). En SQL Server 2014 o posteriores, especifica el algoritmo de cifrado a utilizar y el certificado o clave asimétrica para asegurar el cifrado.
DESCRIPCIÓN = { 'texto' | @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 no especificas
NAME, 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 :
FORMATO [ , MEDIANAME = { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { text | @text_variable } ]
Usa la FORMAT cláusula cuando uses medios por primera vez o cuando quieras sobrescribir todos los datos existentes. De manera opcional, puede asignar a los nuevos medios un nombre y una descripción.
Importante
Ten cuidado al usar la FORMAT cláusula de la BACKUP sentencia, porque esta opción destruye cualquier copia de seguridad almacenada previamente en el soporte de respaldo.
Ejemplos
Para los siguientes ejemplos, crea una base de datos de prueba utilizando 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 DEFAULT GETDATE() NOT NULL
);
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. Haga una 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. Hacer una 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
EXECUTE 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
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.
Si abres una ventana de PowerShell desde dentro de SSMS para conectarte al Motor de base de datos de SQL Server, puedes omitir la parte de credenciales porque tu credencial en SSMS establece automáticamente la conexión entre PowerShell y Motor de base de datos.
Nota:
Este ejemplo requiere el SqlServer módulo. Para más información, consulte SQL Server PowerShell Provider.
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 crea una directiva de acceso almacenada con permisos de lectura, escritura y listado. La credencial de SQL Server, https://<myStorageAccount>.blob.core.windows.net/<myContainer>, se crea utilizando una firma de acceso compartida asociada a la política 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 la base de datos bajo el modelo de recuperación simple
- 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)
- sys.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)