Copia de seguridad en URL de SQL ServerSQL Server Backup to URL

SE APLICA A: síSQL Server síAzure SQL Database (solo Instancia administrada) noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Este tema presenta los conceptos, los requisitos y los componentes necesarios para utilizar el servicio de almacenamiento de blobs de Microsoft Azure como destino de copia de seguridad.This topic introduces the concepts, requirements and components necessary to use the Microsoft Azure Blob storage service as a backup destination. La funcionalidad de copia de seguridad y restauración es igual o similar que la que usa DISK o TAPE, con algunas diferencias.The backup and restore functionality are same or similar to when using DISK or TAPE, with a few differences. En este tema se incluyen esas diferencias y algunos ejemplos de código.These differences and a few code examples are included in this topic.

Requisitos, componentes y conceptosRequirements, Components, and Concepts

Esta sección:In this section:

SeguridadSecurity

A continuación se muestran los requisitos y las consideraciones de seguridad al hacer copia de seguridad o restaurar desde los servicios de almacenamiento de blobs de Microsoft Azure.The following are security considerations and requirements when backing up to or restoring from the Microsoft Azure Blob storage service.

  • Al crear un contenedor para el servicio de almacenamiento de blobs de Microsoft Azure, se recomienda establecer el acceso en privado.When creating a container for the Microsoft Azure Blob storage service, we recommend that you set the access to private. Al configurar el acceso privado se restringe el acceso a los usuarios o las cuentas capaces de proporcionar la información necesaria para autenticarse en la cuenta de Azure.Setting the access to private restricts the access to users or accounts able to provide the necessary information to authenticate to the Azure account.

    Importante

    SQL ServerSQL Server requiere que en una credencial de SQL ServerSQL Server se almacenen bien un nombre de cuenta de Azure y una autenticación de clave de acceso, bien una firma de acceso compartido y un token de acceso.requires that either an Azure account name and access key authentication or a Shared Access Signature and access token be stored in a SQL ServerSQL Server Credential. Esta información se emplea para autenticarse en la cuenta de Azure cuando se realizan operaciones de copia de seguridad o de restauración.This information is used to authenticate to the Azure account when performing backup or restore operations.

  • La cuenta de usuario que se usa para emitir comandos BACKUP o RESTORE debe tener el rol de base de datos operador de db_backup con permisos Modificar cualquier credencial .The user account that is used to issue BACKUP or RESTORE commands should be in the db_backup operator database role with Alter any credential permissions.

Introducción a los principales componentes y conceptosIntroduction to Key Components and Concepts

En las dos secciones siguientes se presentan el servicio de almacenamiento de blobs de Microsoft Azure y los componentes de SQL ServerSQL Server que se usan al realizar copia de seguridad o restaurar desde el servicio de almacenamiento de blobs de Microsoft Azure.The following two sections introduce the Microsoft Azure Blob storage service, and the SQL ServerSQL Server components used when backing up to or restoring from the Microsoft Azure Blob storage service. Es importante entender los componentes y la interacción entre ellos para realizar una copia de seguridad o una restauración desde el servicio de almacenamiento de blobs de Microsoft Azure.It is important to understand the components and the interaction between them to do a backup to or restore from the Microsoft Azure Blob storage service.

La creación de una cuenta de Azure Storage en su suscripción de Azure es el primer paso de este proceso.Creating an Azure Storage account within your Azure subscription is the first step in this process. Esta cuenta de almacenamiento es una cuenta administrativa que tiene permisos administrativos completos en todos los contenedores y objetos creados con la cuenta de almacenamiento.This storage account is an administrative account that has full administrative permissions on all containers and objects created with the storage account. SQL ServerSQL Server puede usar el nombre de la cuenta de Azure Storage y su valor de clave de acceso para autenticarse y escribir y leer los blobs en el servicio Blob Storage de Microsoft Azure, o bien usar un token de firma de acceso compartido generado en determinados contenedores concediéndole derechos de escritura y lectura.can either use the Azure storage account name and its access key value to authenticate and write and read blobs to the Microsoft Azure Blob storage service or use a Shared Access Signature token generated on specific containers granting it read and write rights. Para más información sobre cuentas de Azure Storage, vea Acerca de las cuentas de Azure Storage; para más información sobre las firmas de acceso compartido, vea Firmas de acceso compartido, Parte 1: Descripción del modelo SAS.For more information on Azure Storage Accounts, see About Azure Storage Accounts and for more information about Shared Access Signatures, see Shared Access Signatures, Part 1: Understanding the SAS Model. La credencial de SQL ServerSQL Server almacena esta información de autenticación y se emplea durante las operaciones de copia de seguridad o restauración.The SQL ServerSQL Server Credential stores this authentication information and is used during the backup or restore operations.

Copia de seguridad en blobs en bloques y blobs en páginasBackup to block blob vs. page blob

Se pueden almacenar dos tipos de blobs en el servicio de almacenamiento de blobs de Microsoft Azure: blobs en bloques y blobs en páginas.There are two types of blobs that can be stored in the Microsoft Azure Blob storage service: block and page blobs. La copia de seguridad de SQL Server puede usar cualquier tipo de blob en función de la sintaxis de Transact-SQL que se use: si se usa la clave de almacenamiento en la credencial, se usará el blob en páginas; si se usa la firma de acceso compartido, se usará el blob en bloques.SQL Server backup can use either blob type depending upon the Transact-SQL syntax used: If the storage key is used in the credential, page blob will be used; if the Shared Access Signature is used, block blob will be used.

La copia de seguridad en blobs en bloques solo está disponible en SQL Server 2016 o una versión posterior.Backup to block blob is only available in SQL Server 2016 or later version. Se recomienda realizar las copias de seguridad en los blobs en bloques en lugar de en los blobs en páginas si está ejecutando SQL Server 2016 o una versión posterior.We recommend you to backup to block blob instead of page block if you are running SQL Server 2016 or later version. Estos son los motivos:The main reasons are:

  • La firma de acceso compartido es una manera más segura de autorizar el acceso al blob en comparación con la clave de almacenamiento.Shared Access Signature is a safer way to authorize blob access compared to storage key.
  • Puede hacer copias de seguridad en varios blobs en bloques para obtener el mejor rendimiento de copia de seguridad y restauración, y admite la copia de seguridad de bases de datos más grandes.You can backup to multiple block blobs to get better backup and restore performance, and support larger database backup.
  • La opción de blob en bloques es más económica que la de blob en páginas.Block blob is cheaper than page blob.

La copia de seguridad de una base de datos grande en el almacenamiento de blobs está sujeta a las limitaciones enumeradas en el apartado sobre diferencias, limitaciones y problemas conocidos de T-SQL de la instancia administrada.Backup of a large database to blob storage is subject to the limitations listed in Managed instance T-SQL differences, limitations, and known issues.

Si la base de datos es demasiado grande, puede:If the database is too large, either:

  • Usar la compresión de copia de seguridadUse backup compression or
  • Hacer una copia de seguridad en varios blobs en bloquesBackup to multiple block blobs

Servicio de almacenamiento de blobs de Microsoft AzureMicrosoft Azure Blob storage service

Cuenta de almacenamiento: La cuenta de almacenamiento es el punto de partida para todos los servicios de almacenamiento.Storage Account: The storage account is the starting point for all storage services. Para obtener acceso al servicio Blob Storage de Microsoft Azure, cree primero una cuenta de Azure Storage.To access the Microsoft Azure Blob storage service, first create an Azure storage account. Para obtener más información, vea Crear una cuenta de almacenamiento.For more information, see Create a Storage Account

Contenedor: un contenedor proporciona una agrupación de un conjunto de blobs y puede almacenar un número ilimitado de blobs.Container: A container provides a grouping of a set of blobs, and can store an unlimited number of blobs. Para escribir una copia de seguridad de SQL ServerSQL Server en el servicio de almacenamiento de blobs de Microsoft Azure, debe haber creado al menos el contenedor raíz.To write a SQL ServerSQL Server backup to the Microsoft Azure Blob storage service, you must have at least the root container created. Puede generar un token de firma de acceso compartido en un contenedor y conceder acceso a objetos en un único contenedor específico.You can generate a Shared Access Signature token on a container and grant access to objects on a specific container only.

Blob: Un archivo de cualquier tipo y tamaño.Blob: A file of any type and size. Se pueden almacenar dos tipos de blobs en el servicio de almacenamiento de blobs de Microsoft Azure: blobs en bloques y blobs en páginas.There are two types of blobs that can be stored in the Microsoft Azure Blob storage service: block and page blobs. SQL ServerSQL Server La copia de seguridad puede usar cualquier tipo de blob en función de la sintaxis de Transact-SQL usada.backup can use either blob type depending upon the Transact-SQL syntax used. Los blobs son direccionables mediante el siguiente formato de dirección URL: https://<cuenta de almacenamiento>.blob.core.windows.net/<contenedor>/<blob>.Blobs are addressable using the following URL format: https://<storage account>.blob.core.windows.net/<container>/<blob>. Para obtener más información sobre el servicio de almacenamiento de blobs de Microsoft Azure, vea Introducción al Almacenamiento de blobs de Azure mediante .NET.For more information about the Microsoft Azure Blob storage service, see How to use the Blob Storage from .NET. Para obtener más información sobre los blobs en páginas y en bloques, vea Descripción de los blobs en bloques, en anexos y en páginas.For more information about page and block blobs, see Understanding Block and Page Blobs.

Azure Blob StorageAzure Blob Storage

Instantánea de Azure: una instantánea de un blob de Azure realizada en un momento dado.Azure Snapshot: A snapshot of an Azure blob taken at a point in time. Para obtener más información, vea Crear una instantánea de un blob.For more information, see Creating a Snapshot of a Blob. SQL ServerSQL Server ahora admite copias de seguridad de instantáneas de Azure de los archivos de base de datos almacenados en el servicio de almacenamiento de blobs de Microsoft Azure.backup now supports Azure snapshot backups of database files stored in the Microsoft Azure Blob storage service. Para obtener más información, vea Copias de seguridad de instantánea de archivos para archivos de base de datos de Azure.For more information, see File-Snapshot Backups for Database Files in Azure.

SQL ServerSQL Server ComponentsSQL ServerSQL Server Components

Dirección URL: Una dirección URL especifica un identificador uniforme de recursos (URI) para un archivo de copia de seguridad único.URL: A URL specifies a Uniform Resource Identifier (URI) to a unique backup file. La dirección URL se emplea para proporcionar la ubicación y el nombre del archivo de copia de seguridad de SQL ServerSQL Server .The URL is used to provide the location and name of the SQL ServerSQL Server backup file. La dirección URL debe apuntar a un blob real, no solo a un contenedor.The URL must point to an actual blob, not just a container. Si el blob no existe, se crea.If the blob does not exist, it is created. Si se especifica un blob existente, se produce un error en BACKUP, a menos que se especifique la opción "WITH FORMAT" para sobrescribir el archivo de copia de seguridad existente en el blob.If an existing blob is specified, BACKUP fails, unless the "WITH FORMAT" option is specified to overwrite the existing backup file in the blob.

Este es un valor de dirección URL de ejemplo: http[s]://NOMBRE_CUENTA.blob.core.windows.net/<CONTENEDOR>/<NOMBRE_ARCHIVO.bak>.Here is a sample URL value: http[s]://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/<FILENAME.bak>. HTTPS no es necesario, pero es recomendable.HTTPS is not required, but is recommended.

Credencial: Una credencial de SQL ServerSQL Server es un objeto que se usa para almacenar la información de autenticación necesaria para conectarse a un recurso fuera de SQL Server.Credential: A SQL ServerSQL Server credential is an object that is used to store authentication information required to connect to a resource outside of SQL Server. Aquí, los procesos de copia de seguridad y restauración de SQL ServerSQL Server usan credenciales para autenticarse en el servicio de almacenamiento de blobs de Microsoft Azure y en sus objetos de contenedor y blob.Here, SQL ServerSQL Server backup and restore processes use credential to authenticate to the Microsoft Azure Blob storage service and its container and blob objects. La credencial almacena el nombre de la cuenta de almacenamiento y los valores de clave de acceso de la cuenta de almacenamiento, o bien la dirección URL del contenedor y su token de firma de acceso compartido.The Credential stores either the name of the storage account and the storage account access key values or container URL and its Shared Access Signature token. Una vez creada la credencial, la sintaxis de las instrucciones BACKUP/RESTORE determina el tipo de blob y las credenciales que se requieren.Once the credential is created, the syntax of the BACKUP/RESTORE statements determines the type of blob and the credential required.

Para obtener un ejemplo sobre cómo crear una firma de acceso compartido, consulte los ejemplos Crear una firma de acceso compartido más adelante en este tema; para crear una credencial de SQL ServerSQL Server , vea los ejemplos Crear una credencial más adelante en este tema.For an example about how to create a Shared Access Signature, see Create a Shared Access Signature examples later in this topic and to create a SQL ServerSQL Server Credential, see Create a Credential examples later in this topic.

Para obtener información general sobre las credenciales, vea Credenciales.For general information about credentials, see Credentials

Para obtener información sobre otros ejemplos donde se usan credenciales, vea Crear un proxy del Agente SQL Server.For information on other examples where credentials are used, see Create a SQL Server Agent Proxy.

LimitacionesLimitations

  • No se pueden realizar copias de seguridad en el almacenamiento premium.Backup to premium storage is not supported.

  • SQL Server limita a 1 TB el tamaño máximo de copia de seguridad admitido con un blob en páginas.SQL Server limits the maximum backup size supported using a page blob to 1 TB. El tamaño máximo de copia de seguridad admitido con blobs en bloques está limitado a aproximadamente 200 GB (50 000 bloques * 4 MB MAXTRANSFERSIZE).The maximum backup size supported using block blobs is limited to approximately 200 GB (50,000 blocks * 4MB MAXTRANSFERSIZE). Los blobs en bloques admiten la creación de bandas para admitir tamaños de copia de seguridad considerablemente mayores.Block blobs support striping to support substantially larger backup sizes.

  • Puede emitir una copia de seguridad o restaurar instrucciones mediante TSQL, SMO, cmdlets de PowerShell o el Asistente para copia de seguridad o restauración de SQL Server Management Studio.You can issue backup or restore statements by using TSQL, SMO, PowerShell cmdlets, SQL Server Management Studio Backup or Restore wizard.

  • No se admite la creación de un nombre de dispositivo lógico.Creating a logical device name is not supported. Por tanto, no se admite agregar URL como dispositivo de copia de seguridad mediante sp_dumpdevice o mediante SQL Server Management Studio.So adding URL as a backup device using sp_dumpdevice or through SQL Server Management Studio is not supported.

  • No se admite anexar a blobs de copia de seguridad existentes.Appending to existing backup blobs is not supported. Las copias de seguridad en un blob existente solo se pueden sobrescribir mediante la opción WITH FORMAT .Backups to an existing blob can only be overwritten by using the WITH FORMAT option. Pero cuando se usan copias de seguridad de instantánea de archivos (con el argumento WITH FILE_SNAPSHOT ), no se permite usar el argumento WITH FORMAT para evitar que queden huérfanas las instantáneas de archivos creadas con la copia de seguridad de instantánea de archivos original.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the WITH FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original file-snapshot backup.

  • La copia de seguridad en varios blobs en una sola operación de copia de seguridad solo es compatible con blobs en bloques y utilizando un token de firma de acceso compartido (SAS) en lugar de la clave de la cuenta de almacenamiento para la credencial SQL.Backup to multiple blobs in a single backup operation is only supported using block blobs and using a Shared Access Signature (SAS) token rather than the storage account key for the SQL Credential.

  • No se puede especificar BLOCKSIZE en los blobs en páginas.Specifying BLOCKSIZE is not supported for page blobs.

  • No se puede especificar MAXTRANSFERSIZE en los blobs en páginas.Specifying MAXTRANSFERSIZE is not supported page blobs.

  • No se pueden especificar las opciones de conjunto de copia de seguridad RETAINDAYS y EXPIREDATE .Specifying backupset options - RETAINDAYS and EXPIREDATE are not supported.

  • SQL ServerSQL Server tiene un límite máximo de 259 caracteres para un nombre de dispositivo de copia de seguridad.has a maximum limit of 259 characters for a backup device name. BACKUP TO URL consume 36 caracteres para los elementos necesarios que se usan para especificar la dirección URL: "https://.blob.core.windows.net//.bak", y deja 223 caracteres para la cuenta, el contenedor y los nombres de blob.The BACKUP TO URL consumes 36 characters for the required elements used to specify the URL - 'https://.blob.core.windows.net//.bak', leaving 223 characters for account, container, and blob names put together.

Compatibilidad con instrucciones BACKUP y RESTORESupport for Backup/Restore Statements

Instrucción BACKUP/RESTOREBackup/Restore Statement AdmitidaSupported ExcepcionesExceptions ComentariosComments
BACKUPBACKUP SY BLOCKSIZE y MAXTRANSFERSIZE admiten los blobs en bloques,BLOCKSIZE and MAXTRANSFERSIZE are supported for block blobs. pero no admiten los blobs en páginas.They are not supported for page blobs. La instrucción BACKUP en un blob en bloques requiere que se guarde una firma de acceso compartido en una credencial de SQL Server.BACKUP to a block blob requires a Shared Access Signature saved in a SQL Server credential. La instrucción BACKUP en un blob en páginas requiere que se guarde la clave de cuenta de almacenamiento en una credencial de SQL ServerSQL Server y que se especifique el argumento WITH CREDENTIAL.BACKUP to page blob requires the storage account key saved in a SQL ServerSQL Server credential, and requires the WITH CREDENTIAL argument to be specified.
RESTORERESTORE SY Requiere que se defina una credencial de SQL ServerSQL Server y que se especifique el argumento WITH CREDENTIAL si la credencial de SQL ServerSQL Server se define utilizando la clave de la cuenta de almacenamiento como el secreto.Requires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE FILELISTONLYRESTORE FILELISTONLY SY Requiere que se defina una credencial de SQL ServerSQL Server y que se especifique el argumento WITH CREDENTIAL si la credencial de SQL ServerSQL Server se define utilizando la clave de la cuenta de almacenamiento como el secreto.Requires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE HEADERONLYRESTORE HEADERONLY SY Requiere que se defina una credencial de SQL ServerSQL Server y que se especifique el argumento WITH CREDENTIAL si la credencial de SQL ServerSQL Server se define utilizando la clave de la cuenta de almacenamiento como el secreto.Requires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE LABELONLYRESTORE LABELONLY SY Requiere que se defina una credencial de SQL ServerSQL Server y que se especifique el argumento WITH CREDENTIAL si la credencial de SQL ServerSQL Server se define utilizando la clave de la cuenta de almacenamiento como el secreto.Requires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE VERIFYONLYRESTORE VERIFYONLY SY Requiere que se defina una credencial de SQL ServerSQL Server y que se especifique el argumento WITH CREDENTIAL si la credencial de SQL ServerSQL Server se define utilizando la clave de la cuenta de almacenamiento como el secreto.Requires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE REWINDONLYRESTORE REWINDONLY -

Para conocer la sintaxis y obtener información general sobre las instrucciones de copia de seguridad, vea BACKUP (Transact-SQL).For syntax and general information about backup statements, see BACKUP (Transact-SQL).

Para conocer la sintaxis y obtener información general sobre las instrucciones de restauración, vea RESTORE (Transact-SQL).For syntax and general information about restore statements, see RESTORE (Transact-SQL).

Compatibilidad con los argumentos de copia de seguridadSupport for Backup Arguments

ArgumentoArgument AdmitidaSupported ExcepciónException ComentariosComments
DATABASEDATABASE SY
LOGLOG SY
TO (URL)TO (URL) SY A diferencia de DISK y TAPE, URL no admite especificar o crear un nombre lógico.Unlike DISK and TAPE, URL does not support specifying or creating a logical name. Este argumento se emplea para especificar la ruta de acceso de la dirección URL del archivo de copia de seguridad.This argument is used to specify the URL path for the backup file.
MIRROR TOMIRROR TO SY
OPCIONES DE WITH:WITH OPTIONS:
CREDENTIALCREDENTIAL SY WITH CREDENTIAL solo se admite cuando se usa la opción BACKUP TO URL para hacer una copia de seguridad en el servicio de almacenamiento de blobs de Microsoft Azure y solo en el caso de que la credencial SQL ServerSQL Server se defina utilizando la clave de la cuenta de almacenamiento como el secreto.WITH CREDENTIAL is only supported when using BACKUP TO URL option to back up to the Microsoft Azure Blob storage service and only if the SQL ServerSQL Server credential is defined using the storage account key as the secret
FILE_SNAPSHOTFILE_SNAPSHOT SY
ENCRYPTIONENCRYPTION SY Cuando se especifica el argumento WITH ENCRYPTION , la copia de seguridad de instantánea de archivos de SQL ServerSQL Server se asegura de que toda la base de datos tenga cifrado TDE antes de realizar la copia de seguridad y, si es así, cifra el archivo de copia de seguridad de instantánea de archivos mediante el algoritmo especificado para TDE en la base de datos.When the WITH ENCRYPTION argument is specified, SQL ServerSQL Server File-Snapshot Backup ensures that the entire database was TDE-encrypted before taking the backup and, if so, encrypts the file-snapshot backup file itself using the algorithm specified for TDE on the database. Si no están cifrados la totalidad de los datos de la base de datos, se producirá un error en la copia de seguridad (por ejemplo, proceso de cifrado sin finalizar).If all data in the database in the entire database is not encrypted, the backup will fail (e.g. the encryption process is not yet complete).
DIFFERENTIALDIFFERENTIAL SY
COPY_ONLYCOPY_ONLY SY
COMPRESSION|NO_COMPRESSIONCOMPRESSION|NO_COMPRESSION SY No compatible con la copia de seguridad de instantánea de archivosNot supported for file-snapshot backup
DESCRIPTIONDESCRIPTION SY
NAMENAME SY
EXPIREDATE | RETAINDAYSEXPIREDATE | RETAINDAYS -
NOINIT | INITNOINIT | INIT - No es posible anexar a blobs.Appending to blobs is not possible. Para sobrescribir una copia de seguridad, use el argumento WITH FORMAT .To overwrite a backup use the WITH FORMAT argument. Pero cuando se usan copias de seguridad de instantánea de archivos (con el argumento WITH FILE_SNAPSHOT ), no se permite usar el argumento WITH FORMAT para evitar que queden huérfanas las instantáneas de archivos creadas con la copia de seguridad original.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the WITH FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original backup.
NOSKIP | SKIPNOSKIP | SKIP -
NOFORMAT | FORMATNOFORMAT | FORMAT SY Una copia de seguridad realizada en un blob existente producirá un error a menos que se especifique WITH FORMAT .A backup taken to an existing blob fails unless WITH FORMAT is specified. El blob existente se sobrescribe si se especifica WITH FORMAT .The existing blob is overwritten when WITH FORMAT is specified. Pero cuando se usan copias de seguridad de instantánea de archivos (con el argumento WITH FILE_SNAPSHOT ), no se permite usar el argumento FORMAT para evitar que queden huérfanas las instantáneas de archivos creadas con la copia de seguridad de instantánea de archivos original.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original file-snapshot backup. Pero cuando se usan copias de seguridad de instantánea de archivos (con el argumento WITH FILE_SNAPSHOT ), no se permite usar el argumento WITH FORMAT para evitar que queden huérfanas las instantáneas de archivos creadas con la copia de seguridad original.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the WITH FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original backup.
MEDIADESCRIPTIONMEDIADESCRIPTION SY
MEDIANAMEMEDIANAME SY
BLOCKSIZEBLOCKSIZE SY No se admite para los blobs en páginas.Not supported for page blob. Se admite para blob en bloques.Supported for block blob. Se recomienda BLOCKSIZE=65536 para optimizar el uso de los 50.000 bloques permitidos en un blob en bloques.Recommend BLOCKSIZE=65536 to optimize use of the 50,000 blocks allowed in a block blob.
BUFFERCOUNTBUFFERCOUNT SY
MAXTRANSFERSIZEMAXTRANSFERSIZE SY No se admite para los blobs en páginas.Not supported for page blob. Se admite para blob en bloques.Supported for block blob. El valor predeterminado es el 1048576.Default is 1048576. El valor puede llegar a los 4 MB en incrementos de 65.536 bytes.The value can range up to 4 MB in increments of 65536 bytes.
Se recomienda MAXTRANSFERSIZE=4194304 para optimizar el uso de los 50.000 bloques permitidos en un blob en bloques.Recommend MAXTRANSFERSIZE=4194304 to optimize use of the 50,000 blocks allowed in a block blob.
NO_CHECKSUM | CHECKSUMNO_CHECKSUM | CHECKSUM SY
STOP_ON_ERROR | CONTINUE_AFTER_ERRORSTOP_ON_ERROR | CONTINUE_AFTER_ERROR SY
STATSSTATS SY
REWIND | NOREWINDREWIND | NOREWIND -
UNLOAD | NOUNLOADUNLOAD | NOUNLOAD -
NORECOVERY | STANDBYNORECOVERY | STANDBY SY
NO_TRUNCATENO_TRUNCATE SY

Para obtener más información sobre los argumentos de copia de seguridad, vea BACKUP (Transact-SQL).For more information about backup arguments, see BACKUP (Transact-SQL).

Compatibilidad con los argumentos de restauraciónSupport for Restore Arguments

ArgumentoArgument AdmitidaSupported ExcepcionesExceptions ComentariosComments
DATABASEDATABASE SY
LOGLOG SY
FROM (URL)FROM (URL) SY El argumento FROM URL se emplea para especificar la ruta de acceso de la dirección URL del archivo de copia de seguridad.The FROM URL argument is used to specify the URL path for the backup file.
WITH Options:WITH Options:
CREDENTIALCREDENTIAL SY WITH CREDENTIAL solo se admite cuando se usa la opción RESTORE FROM URL para restaurar desde el servicio de almacenamiento de blobs de Microsoft Azure.WITH CREDENTIAL is only supported when using RESTORE FROM URL option to restore from Microsoft Azure Blob storage service.
PARTIALPARTIAL SY
RECOVERY | NORECOVERY | STANDBYRECOVERY | NORECOVERY | STANDBY SY
LOADHISTORYLOADHISTORY SY
MOVEMOVE SY
REPLACEREPLACE SY
RESTARTRESTART SY
RESTRICTED_USERRESTRICTED_USER SY
FILEFILE -
PASSWORDPASSWORD SY
MEDIANAMEMEDIANAME SY
MEDIAPASSWORDMEDIAPASSWORD SY
BLOCKSIZEBLOCKSIZE SY
BUFFERCOUNTBUFFERCOUNT -
MAXTRANSFERSIZEMAXTRANSFERSIZE -
CHECKSUM | NO_CHECKSUMCHECKSUM | NO_CHECKSUM SY
STOP_ON_ERROR | CONTINUE_AFTER_ERRORSTOP_ON_ERROR | CONTINUE_AFTER_ERROR SY
FILESTREAMFILESTREAM SY No compatible con la copia de seguridad de instantáneaNot supported for snapshot backup
STATSSTATS SY
REWIND | NOREWINDREWIND | NOREWIND -
UNLOAD | NOUNLOADUNLOAD | NOUNLOAD -
KEEP_REPLICATIONKEEP_REPLICATION SY
KEEP_CDCKEEP_CDC SY
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKERENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER SY
STOPAT | STOPATMARK | STOPBEFOREMARKSTOPAT | STOPATMARK | STOPBEFOREMARK SY

Para obtener más información sobre los argumentos de restauración, vea RESTORE (argumentos, Transact-SQL).For more information about Restore arguments, see RESTORE Arguments (Transact-SQL).

Usar la tarea Copia de seguridad en SQL Server Management StudioUsing Back Up Task in SQL Server Management Studio

Puede realizar una copia de seguridad de una base de datos en una dirección URL mediante la tarea Copia de seguridad en SQL Server Management Studio con una credencial de SQL Server.You can back up a database to URL through the Back Up task in SQL Server Management Studio using a SQL Server Credential.

Nota

Para crear una copia de seguridad de instantánea de archivos de SQL ServerSQL Server o sobrescribir un conjunto de medios existente, use Transact-SQL, PowerShell o C# en lugar de la tarea Copia de seguridad en SQL Server Management Studio.To create a SQL ServerSQL Server file-snapshot backup, or overwrite an existing media set, you must use Transact-SQL, Powershell or C# rather than the Back Up task in SQL Server Management Studio.

En los siguientes pasos se describen los cambios realizados en la tarea Copia de seguridad de la base de datos en SQL Server Management Studio para permitir realizar la copia de seguridad en Azure Storage:The following steps describe the changes made to the Back Up Database task in SQL Server Management Studio to allow for backing up to Azure storage:

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos de SQL Server y expándala.In Object Explorer, connect to an instance of the SQL Server Database Engine and then expand that instance.

  2. Expanda Bases de datos, haga clic con el botón derecho en la base de datos que quiera, seleccione Tareasy haga clic en Copia de seguridad...Expand Databases, right-click the desired database, point to Tasks, and then click Back Up....

  3. En la página General de la sección Destino , la opción Dirección URL está disponible en la lista desplegable Copia de seguridad en: .On the General page in the Destination section the URL option is available in the Back up to: drop-down list. La opción Dirección URL se usa para crear una copia de seguridad para el almacenamiento de Microsoft Azure.The URL option is used to create a backup to Microsoft Azure storage. Haga clic en Agregar y se abrirá el cuadro de diálogo Seleccionar destino de la copia de seguridad :Click Add and the Select Backup Destination dialog box will open:

    1. Contenedor de almacenamiento de Azure: El nombre del contenedor de almacenamiento de Microsoft Azure para almacenar los archivos de copia de seguridad.Azure storage container: The name of the Microsoft Azure storage container to store the backup files. Seleccione un contenedor existente en la lista desplegable o especifique manualmente el contenedor.Select an existing container from the drop-down list or manually enter the container.

    2. Directiva de acceso compartido: Especifique la firma de acceso compartido para un contenedor especificado manualmente.Shared Access Policy: Enter the shared access signature for a manually entered container. Este campo no está disponible si se ha elegido un contenedor existente.This field is not available if an existing container was chosen.

    3. Archivo de copia de seguridad: Nombre del archivo de copia de seguridad.Backup File: Name of the backup file.

    4. Nuevo contenedor: Se usa para registrar un contenedor existente para el que no tiene una firma de acceso compartido.New Container: Used to register an existing container that you do not have a shared access signature for. Vea Connect to a Microsoft Azure Subscription (Conectarse a una suscripción de Microsoft Azure).See Connect to a Microsoft Azure Subscription.

Nota

Agregar admite varios contenedores de almacenamiento y archivos de copia de seguridad para un conjunto de medios.Add supports multiple backup files and storage containers for a single media set.

Al seleccionar Dirección URL como destino, ciertas opciones de la página Opciones multimedia están deshabilitadas.When you select URL as the destination, certain options in the Media Options page are disabled. Los temas siguientes tienen más información acerca del cuadro de diálogo Copia de seguridad de la base de datos:The following topics have more information on the Back Up Database dialog:

Copia de seguridad de base de datos (página General)Back Up Database (General Page)

Copia de seguridad de la base de datos (página Opciones multimedia)Back Up Database (Media Options Page)

Copia de seguridad de la base de datos (página Opciones de copia de seguridad)Back Up Database (Backup Options Page)

Crear credencial - autenticarse en Almacenamiento de AzureCreate Credential - Authenticate to Azure Storage

Copia de seguridad de SQL Server en una dirección URL mediante el Asistente para planes de mantenimientoSQL Server Backup to URL Using Maintenance Plan Wizard

Al igual que la tarea de copia de seguridad descrita antes, el Asistente para planes de mantenimiento de SQL Server Management Studio incluye Dirección URL como una de las opciones de destino, así como otros objetos de compatibilidad necesarios para realizar la copia de seguridad en Azure Storage, como la credencial SQL.Similar to the backup task described previously, the Maintenance Plan Wizard in SQL Server Management Studio includes URL as one of the destination options, and other supporting objects required to backup to Azure storage like the SQL Credential. Para obtener más información, consulte la sección Definir las tareas Copia de seguridad en Using Maintenance Plan Wizard.It has the same For more information, see the Define Backup Tasks section in Using Maintenance Plan Wizard.

Nota

Para crear un conjunto de copia de seguridad con bandas, una copia de seguridad de instantánea de archivos de SQL ServerSQL Server o una credencial SQL con el token de acceso compartido, use Transact-SQL, PowerShell o C# en lugar de la tarea Copia de seguridad en el Asistente para planes de mantenimiento.To create a striped backup set, a SQL ServerSQL Server file-snapshot backup, or a SQL credential using Shared Access token, you must use Transact-SQL, Powershell or C# rather than the Backup task in Maintenance Plan Wizard.

Restaurar desde el almacenamiento de Microsoft Azure con SQL Server Management StudioRestoring from Microsoft Azure storage Using SQL Server Management Studio

La tarea Restaurar base de datos incluye Dirección URL como dispositivo desde el que se puede restaurar.The Restore Database task includes URL as a device to restore from. Los pasos siguientes describen el uso de la tarea Restaurar para realizar una operación de restauración a partir del servicio de almacenamiento de blobs de Microsoft Azure:The following steps describe using the Restore task to restore from the Microsoft Azure Blob storage service:

  1. Haga clic con el botón derecho en Bases de datos y seleccione Restaurar base de datos...Right-click Databases and select Restore Database....

  2. En la página General , seleccione Dispositivo en la sección Origen .On the General page, select Device under the Source section.

  3. Haga clic en el botón Examinar (...) para abrir el cuadro de diálogo Seleccionar dispositivos de copia de seguridad .Click the browse (...) button to open the Select backup devices dialog box.

  4. Seleccione Dirección URL en la lista desplegable Tipo de medio de copia de seguridad: .Select URL from the Backup media type: drop-down list. Haga clic en Agregar para abrir el cuadro de diálogo Seleccionar ubicación de archivo de copia de seguridad .Click Add to open the Select a Backup File Location dialog box.

    1. Contenedor de almacenamiento de Azure: nombre completo del contenedor de almacenamiento de Microsoft Azure que contiene los archivos de copia de seguridad.Azure storage container: The fully qualified name of the Microsoft Azure storage container which contains the backup files. Seleccione un contenedor existente en la lista desplegable o especifique manualmente el nombre completo del contenedor.Select an existing container from the drop-down list or manually enter the fully qualified container name.

    2. Firma de acceso compartido: se usa para especificar la firma de acceso compartido del contenedor designado.Shared Access Signature: Used to enter the shared access signature for the designated container.

    3. Agregar: Se usa para registrar un contenedor existente para el que no tiene una firma de acceso compartido.Add: Used to register an existing container that you do not have a shared access signature for. Vea Connect to a Microsoft Azure Subscription (Conectarse a una suscripción de Microsoft Azure).See Connect to a Microsoft Azure Subscription.

    4. Aceptar: SQL Server se conecta al almacenamiento de Microsoft Azure con la información de la credencial SQL proporcionada y abre el cuadro de diálogo Buscar archivo de copia de seguridad en Microsoft Azure.OK: SQL Server connects to Microsoft Azure storage using the SQL Credential information you provided and opens the Locate Backup File in Microsoft Azure dialog. Los archivos de copia de seguridad que residen en el contenedor de almacenamiento se muestran en esta página.The backup files residing in the storage container are displayed on this page. Seleccione el archivo que desee usar para restaurar y haga clic en Aceptar.Select the file you want to use to restore and click OK. De esta forma, vuelve al cuadro de diálogo Seleccionar dispositivos de copia de seguridad y, haciendo clic en Aceptar en este cuadro de diálogo, vuelve al cuadro de diálogo principal Restaurar donde podrá completar la restauración.This takes you back to the Select Backup Devices dialog, and clicking OK on this dialog takes you back to the main Restore dialog where you will be able complete the restore.

    Restaurar la base de datos (página General)Restore Database (General Page)

    Restaurar base de datos (página Archivos)Restore Database (Files Page)

    Restaurar base de datos (página Opciones)Restore Database (Options Page)

Ejemplos de códigoCode Examples

Esta sección contiene los siguientes ejemplos.This section contains the following examples.

Nota

Para obtener un tutorial sobre el uso de SQL Server 2016 con el servicio Microsoft Azure Blob Storage, vea Tutorial: Uso del servicio Microsoft Azure Blob Storage con bases de datos de SQL Server 2016For a tutorial on using SQL Server 2016 with the Microsoft Azure Blob storage service, see Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases

Crear una firma de acceso compartidoCreate a Shared Access Signature

En el siguiente ejemplo se crean firmas de acceso compartido que pueden usarse para crear una credencial de SQL ServerSQL Server en un contenedor recién creado.The following example creates Shared Access Signatures that can be used to create a SQL ServerSQL Server Credential on a newly created container. El script crea una firma de acceso compartido que está asociada a una directiva de acceso almacenada.The script creates a Shared Access Signature that is associated with a Stored Access Policy. Para más información, vea Firmas de acceso compartido, parte 1: Descripción del modelo SAS.For more information, see Shared Access Signatures, Part 1: Understanding the SAS Model. El script también escribe el comando de T-SQL necesario para crear la credencial en SQL Server.The script also writes the T-SQL command required to create the credential on SQL Server.

Nota

Este ejemplo requiere Microsoft Azure PowerShell.The example requires Microsoft Azure Powershell. Para obtener información sobre la instalación y el uso de Azure PowerShell, vea Cómo instalar y configurar Azure PowerShell.For information about installing and using Azure Powershell, see How to install and configure Azure PowerShell.
Estos scripts se verificaron con Azure PowerShell 5.1.15063.These scripts were verified using Azure PowerShell 5.1.15063.

Firma de acceso compartido que está asociada a una directiva de acceso almacenadaShared Access Signature that is associated with a Stored Access Policy

# Define global variables for the script  
$prefixName = '<a prefix name>'  # used as the prefix for the name for various objects  
$subscriptionName='<your subscription name>'   # the name of subscription name you will use  
$locationName = '<a data center location>'  # the data center region you will use  
$storageAccountName= $prefixName + 'storage' # the storage account name you will create or use  
$containerName= $prefixName + 'container'  # the storage container name to which you will attach the SAS policy with its SAS token  
$policyName = $prefixName + 'policy' # the name of the SAS policy  


# Set a variable for the name of the resource group you will create or use  
$resourceGroupName=$prefixName + 'rg'   

# adds an authenticated Azure account for use in the session   
Connect-AzAccount

# set the tenant, subscription and environment for use in the rest of   
Set-AzContext -SubscriptionName $subscriptionName   

# create a new resource group - comment out this line to use an existing resource group  
New-AzResourceGroup -Name $resourceGroupName -Location $locationName   

# Create a new ARM storage account - comment out this line to use an existing ARM storage account  
New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Type Standard_RAGRS -Location $locationName   

# Get the access keys for the ARM storage account  
$accountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName  

# Create a new storage account context using an ARM storage account  
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $accountKeys[0].value 

# Creates a new container in blob storage  
$container = New-AzStorageContainer -Context $storageContext -Name $containerName  
$cbc = $container.CloudBlobContainer  

# Sets up a Stored Access Policy and a Shared Access Signature for the new container  
$policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission "rwld"
$sas = New-AzStorageContainerSASToken -Policy $policyName -Context $storageContext -Container $containerName
Write-Host 'Shared Access Signature= '$($sas.Substring(1))''  

# Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature  
Write-Host 'Credential T-SQL'  
$tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='Shared Access Signature', SECRET='{1}'" -f $cbc.Uri,$sas.Substring(1)   
$tSql | clip  
Write-Host $tSql  

Después de ejecutar el script correctamente, copie el comando CREATE CREDENTIAL en una herramienta de consultas, conéctese a una instancia de SQL Server y ejecute el comando para crear la credencial con la firma de acceso compartido.After successfully running the script, copy the CREATE CREDENTIAL command to a query tool, connect to an instancance of SQL Server and run the command to create the credential with the Shared Access Signature.

Crear una credencialCreate a Credential

En los ejemplos siguientes se crean credenciales de SQL ServerSQL Server para la autenticación en el servicio de almacenamiento de blobs de Microsoft Azure.The following examples create SQL ServerSQL Server credentials for authentication to the Microsoft Azure Blob storage service. Realice una de las acciones siguientes.Do one of the following.

  1. Uso de la firma de acceso compartidoUsing Shared Access Signature

Si ejecutó el script para crear la firma de acceso compartido anterior, copie el comando CREATE CREDENTIAL a un editor de consultas conectado a la instancia de SQL Server y ejecútelo.If you ran the script to create the Shared Access Signature above, copy the CREATE CREDENTIAL to a query editor connected to your instance of SQL Server and run the command.

El siguiente código T-SQL es un ejemplo que crea la credencial para usar una firma de acceso compartido.The following T-SQL is an example that creates the credential to use a Shared Access Signature.

IF NOT EXISTS  
(SELECT * FROM sys.credentials   
WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')  
CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] 
   WITH IDENTITY = 'SHARED ACCESS SIGNATURE',  
   SECRET = '<SAS_TOKEN>';  
  1. Uso de la identidad y la clave de acceso de la cuenta de almacenamientoUsing storage account identity and access key
IF NOT EXISTS  
(SELECT * FROM sys.credentials   
WHERE name = '<mycredentialname>')  
CREATE CREDENTIAL [<mycredentialname>] WITH IDENTITY = '<mystorageaccountname>'  
,SECRET = '<mystorageaccountaccesskey>';  

Realizar una copia de seguridad completa de la base de datosPerform a full database backup

En los ejemplos siguientes se realiza una copia de seguridad completa de la base de datos AdventureWorks2016 en el servicio de almacenamiento de blobs de Microsoft Azure.The following examples perform a full database backup of the AdventureWorks2016 database to the Microsoft Azure Blob storage service. Realice una de las siguientes operaciones:Do one of the following:

  1. En URL con una firma de acceso compartidoTo URL using Shared Access Signature
BACKUP DATABASE AdventureWorks2016   
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak';  
GO   
  1. En URL con la identidad y la clave de acceso de la cuenta de almacenamientoTo URL using storage account identity and access key
BACKUP DATABASE AdventureWorks2016  
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak'   
      WITH CREDENTIAL = '<mycredentialname>'   
     ,COMPRESSION  
     ,STATS = 5;  
GO   

Restaurar a un momento dado con STOPATRestoring to a point-in-time using STOPAT

En el ejemplo siguiente se restaura la base de datos AdventureWorks2016 al estado que tenía en un momento dado y se muestra una operación de restauración.The following example restores the AdventureWorks2016 sample database to its state at a point in time, and shows a restore operation.

  1. Desde URL con una firma de acceso compartidoFrom URL using Shared Access Signature
RESTORE DATABASE AdventureWorks2016 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016_2015_05_18_16_00_00.bak'   
WITH MOVE 'AdventureWorks2016_data' to 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2016.mdf'  
,MOVE 'AdventureWorks2016_log' to 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2016.ldf'  
,NORECOVERY  
,REPLACE  
,STATS = 5;  
GO   

RESTORE LOG AdventureWorks2016 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016_2015_05_18_18_00_00.trn'   
WITH   
RECOVERY   
,STOPAT = 'May 18, 2015 5:35 PM'   
GO  

Consulte tambiénSee Also

Prácticas recomendadas y solución de problemas de Copia de seguridad en URL de SQL Server SQL Server Backup to URL Best Practices and Troubleshooting
Realizar copias de seguridad y restaurar bases de datos del sistema (SQL Server) Back Up and Restore of System Databases (SQL Server)
Tutorial: Uso del servicio Microsoft Azure Blob Storage con bases de datos de SQL Server 2016Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases