Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se:SQL Server
Este artigo documenta os argumentos descritos nas seções de Sintaxe do RESTORE {DATABASE|LOG} e do conjunto associado de instruções auxiliares: RESTORERESTORE FILELISTONLY,RESTORE HEADERONLYRESTORE ,RESTORE LABELONLYRESTORE ,RESTORE REWINDONLYRESTORE , e .RESTORERESTORE VERIFYONLY Há suporte para a maioria dos argumentos apenas por um subconjunto dessas seis instruções. O suporte a cada argumento é indicado na descrição do argumento.
Convenções de sintaxe de Transact-SQL
Sintaxe
Para obter a sintaxe, confira os seguintes artigos:
Argumentos
DATABASE
Apoiado por:RESTORE
Especifica o banco de dados de destino. Se uma lista de arquivos e grupos de arquivos estiver especificada, apenas esses arquivos e grupos de arquivos serão restaurados.
Para um banco de dados que usa o modelo de recuperação completa ou bulk-logged, o SQL Server requer que se faça backup do final do log antes da restauração do banco de dados. Restaurar um banco de dados sem antes fazer backup da cauda do log resulta em um erro, a menos que a RESTOREDATABASE instrução contenha a cláusula WITH REPLACE ou a cláusula WITH STOPAT, que deve especificar um tempo ou transação que ocorreu após o fim do backup de dados. Para obter mais informações, confira Backups da parte final do log (SQL Server).
LOG
Apoiado por:RESTORE
Especifica que um backup do log de transações será aplicado a este banco de dados. Os logs de transação devem ser aplicados em ordem sequencial. O SQL Server verifica o log de transações com backup para garantir que as transações estão sendo carregadas no banco de dados correto e na sequência correta. Para aplicar vários logs de transações, use a opção NORECOVERY em todas as operações de restauração exceto na última.
Observação
Normalmente, o último log restaurado é o backup do final do log. Um backup da parte final do log é um backup de log feito exatamente antes da restauração de um banco de dados, normalmente após uma falha do banco de dados. Fazer um backup do final do log do banco de dados que está possivelmente danificado evita perda de trabalho capturando o log que ainda não tem backup (o final do log). Para obter mais informações, veja Backups da parte final do log (SQL Server).
Para obter mais informações, confira Aplicar backups de log de transações (SQL Server).
{ database_name | @database_name_var }
Apoiado por:RESTORE
É o banco de dados no qual o log ou banco de dados completo é restaurado. Se for fornecido como uma variável (@database_name_var), esse nome poderá ser especificado como uma constante de cadeia de caracteres (@database_name_var = database_name) ou como uma variável de tipo de dados de cadeia de caracteres, exceto para os tipos de dados ntext ou text.
< > file_or_filegroup_or_page [ ,... n ]
Apoiado por:RESTORE
Especifica o nome de um arquivo lógico, grupo de arquivos ou página a ser incluído em uma RESTOREDATABASE instrução LOG RESTORE ou LOG. É possível especificar uma lista de arquivos ou grupos de arquivos.
Para um banco de dados que usa o modelo de recuperação simples, as opções FILE e FILEGROUP serão permitidas apenas se os arquivos de destino ou grupos de arquivos forem somente leitura ou se esta for uma restauração PARTIAL (que resulta em um grupo de arquivos extinto).
Para um banco de dados que utiliza o modelo de recuperação completo ou logado em massa, após restaurar RESTOREDATABASE um ou mais arquivos, grupos de arquivos e/ou páginas, normalmente, você deve aplicar o log de transações aos arquivos que contêm os dados restaurados; aplicar o log torna esses arquivos consistentes com o restante do banco de dados. As exceções são as seguintes:
Se os arquivos restaurados eram somente leitura antes de serem copiados pela última vez, então um registro de transações não precisa ser aplicado, e o RESTORE extrato informa sobre essa situação.
Se o backup contiver o grupo de arquivos primário e uma restauração parcial estiver sendo executada. Nesse caso, o log de restauração não é necessário porque o log é restaurado automaticamente do conjunto de backup.
FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
Nomeia um arquivo a ser incluído na restauração do banco de dados.
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
Nomeia um grupo de arquivos a ser incluído na restauração do banco de dados.
FILEGROUP é permitido no modelo de recuperação simples apenas se o grupo de arquivos especificado é somente leitura e esta é uma restauração parcial (ou seja, se WITH PARTIAL é usado). Todos os grupos de arquivos de leitura/gravação não restaurados são marcados como expirados e não podem ser restaurados subsequentemente no banco de dados resultante.
READ_WRITE_FILEGROUPS
Seleciona todos os grupos de arquivos de leitura/gravação. Essa opção é útil principalmente quando você tem vários grupos de arquivos somente leitura que deseja restaurar após os grupos de arquivos de leitura/gravação.
PAGE = 'file:page [ ,... n ]'
Especifica uma lista de uma ou mais páginas para uma restauração de página (o que tem suporte apenas para bancos de dados que usam os modelos de recuperação completa ou bulk-logged). Os valores são os seguintes:
PAGE
Indica uma lista de um ou mais arquivos e páginas.
file
É a ID do arquivo que contém uma página específica a ser restaurada.
page
É a ID da página a ser restaurada no arquivo.
n
É um espaço reservado que indica que várias páginas podem ser especificadas.
O número máximo de páginas que podem ser restauradas em um único arquivo em uma sequência de restauração é 1000. No entanto, se houver mais que um pequeno número de páginas danificadas em um arquivo, considere restaurar o arquivo inteiro em vez das páginas.
Observação
Restaurações de páginas nunca são recuperadas.
Para obter mais informações sobre restauração de página, confira Restaurar páginas (SQL Server).
[ , ...n ]
É um espaço reservado que indica que vários arquivos, grupos de arquivos e páginas podem ser especificados em uma lista separada por vírgulas. O número é ilimitado.
FROM { <backup_device> [ ,... n ] | <> database_snapshot }
Normalmente, especifica os dispositivos dos quais restaurar o backup. Alternativamente, em uma RESTOREDATABASE instrução, a cláusula FROM pode especificar o nome de um snapshot de banco de dados para o qual você está revertendo o banco de dados, caso em que nenhuma cláusula WITH é permitida.
Se a cláusula FROM for omitida, a restauração de um backup não ocorrerá. Em vez disso, o banco de dados é recuperado. Isso permite recuperar um banco de dados que foi restaurado com a opção NORECOVERY ou reverter para um servidor em espera. Se a cláusula FROM for omitida, NORECOVERY, RECOVERY ou STANDBY devem ser especificados na cláusula WITH.
< > backup_device [ ,... n ]
Especifica os dispositivos de backup lógicos ou físicos a serem usados na operação de restauração.
Apoiado por:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY, e RESTORE VERIFYONLY.
<backup_device>::= Especifica um dispositivo de backup lógico ou físico a ser usado para a operação de backup, da seguinte maneira:
{ logical_backup_device_name | @logical_backup_device_name_var }
É o nome lógico que deve seguir as regras de identificadores dos dispositivos de backup criados por sp_addumpdevice dos quais o banco de dados é restaurado. Se for fornecido como uma variável (@logical_backup_device_name_var), o nome do dispositivo de backup poderá ser especificado como uma constante de cadeia de caracteres (@logical_backup_device_name_var = logical_backup_device_name) ou como uma variável do tipo de dados de cadeia de caracteres, exceto os tipos de dados ntext ou text.
{DISK | TAPE } = { 'physical_backup_device_name'physical_backup_device_name_var | @ }
Permite restaurar backups do disco nomeado ou dispositivo de fita. Os tipos de dispositivo de disco e fita devem ser especificados com o nome real (por exemplo, caminho completo e nome de arquivo) do dispositivo: DISK ='Z:\SQLServerBackups\AdventureWorks.bak' ou TAPE ='\\\\.\TAPE0'. Se for especificado como uma variável (@physical_backup_device_name_var), o nome do dispositivo poderá ser especificado como uma constante de cadeia de caracteres (@physical_backup_device_name_var = 'physical_backup_device_name') ou como uma variável do tipo de dados de cadeia de caracteres, exceto para os tipos de dados ntext ou text.
Se usando um servidor de rede com um nome de UNC (que deve conter o nome de máquina), especifique um tipo de dispositivo de disco. Para obter mais informações sobre como usar nomes UNC, confira Dispositivos de backup (SQL Server).
A conta sob a qual você está rodando o SQL Server deve ter acesso READ ao computador remoto ou servidor de rede para realizar uma RESTORE operação.
n
É um espaço reservado que indica que até 64 dispositivos de backup podem ser especificados em uma lista separada por vírgula.
Se uma sequência de restauração precisar de tantos dispositivos de backup quantos foram usados para criar o conjunto de mídias ao qual o backup pertence, dependerá de se a restauração é offline ou online, da seguinte maneira:
A restauração off-line permite que um backup seja restaurado usando menos dispositivos que os usados para criar o backup.
A restauração on-line requer todos os dispositivos de backup. Uma tentativa de restaurar com menos dispositivos falhará.
Por exemplo, considere um caso em que o backup de um banco de dados foi feito para quatro unidades de fita conectadas ao servidor. Uma restauração online requer que você tenha quatro unidades conectadas ao servidor. Uma restauração offline permite restaurar o backup se houver menos de quatro unidades no computador.
Observação
Ao restaurar um backup de um conjunto de mídias espelhado, você pode especificar apenas um único espelho para cada família de mídia. Porém, na presença de erros, a existência de outros espelhos permite que alguns problemas de restauração sejam resolvidos rapidamente. Você pode substituir um volume de mídia danificado pelo volume correspondente de outro espelho. Lembre-se de que, para restaurações offline, é possível restaurar a partir de menos dispositivos do que as famílias de mídia, mas cada família é processada apenas uma vez.
< >database_snapshot::=
Apoiado por:RESTORE DATABASE
= DATABASE_SNAPSHOT database_snapshot_name
Reverte o banco de dados no instantâneo do banco de dados especificado por database_snapshot_name. A opção DATABASE_SNAPSHOT está disponível apenas para uma restauração completa do banco de dados. Em uma operação de reversão, o instantâneo do banco de dados ocupa o lugar de um backup completo do banco de dados.
Uma operação de reversão requer que o instantâneo do banco de dados especificado seja o único no banco de dados. Durante a operação de reversão, o instantâneo e o banco de dados de origem são marcados como In restore. Para obter mais informações, consulte a seção "Comentários" em RESTORE DATABASE.
Opções WITH
Especifica as opções a serem usadas por uma operação de restauração. Para obter um resumo de quais instruções usam cada opção, confira "Resumo de suporte para opções WITH" mais adiante neste artigo.
Observação
As opções WITH estão organizadas aqui na mesma ordem que na seção "Sintaxe" em RESTORE {DATABASE|LOG}.
PARTIAL
Apoiado por:RESTORE DATABASE
Especifica uma operação de restauração parcial que restaura o grupo de arquivos primário e qualquer grupo de arquivos secundário especificado. A opção PARCIAL seleciona o grupo de arquivos primário implicitamente. Não é necessário especificar FILEGROUP = 'PRIMARY'. Para restaurar um grupo de arquivos secundário, você deve especificar o grupo de arquivos usando a opção FILE ou a opção FILEGROUP explicitamente.
A opção PARTIAL não é permitida em RESTORE instruções LOG.
A opção PARTIAL inicia o estágio inicial de uma restauração por etapas, o que permite que os grupos de arquivos restantes sejam restaurados posteriormente. Para obter mais informações, consulte Restaurações por etapas (SQL Server).
[ RECUPERAÇÃO | NORECOVERY | STANDBY ]
Apoiado por:RESTORE
RECOVERY
Instrui a operação de restauração a reverter todas as transações não confirmadas. Após o processo de recuperação, o banco de dados está pronto para uso. Se NORECOVERY, RECOVERY ou STANDBY não estiverem especificados, RECOVERY será o padrão.
Se operações subsequentes RESTORE (RESTORE LOG, ou RESTOREDATABASE a partir de diferencial) forem planejadas, NORECOVERY ou STANDBY devem ser especificados em vez disso.
Ao restaurar conjuntos de backup de uma versão anterior do SQL Server, uma atualização do banco de dados pode ser necessária. Essa atualização é executada automaticamente quando WITH RECOVERY é especificado. Para obter mais informações, confira Aplicar backups de log de transações (SQL Server).
Observação
Se a cláusula FROM for omitida, NORECOVERY, RECOVERY ou STANDBY devem ser especificados na cláusula WITH.
NORECOVERY
Instrui a operação de restauração a não reverter nenhuma transação não confirmada. Se outro log de transações precisar ser aplicado posteriormente, especifique a opção NORECOVERY ou STANDBY. Se NORECOVERY, RECOVERY ou STANDBY não estiverem especificados, RECOVERY será o padrão. Durante uma operação de restauração offline usando a opção NORECOVERY, o banco de dados não será utilizável.
Para restaurar um backup de banco de dados e um ou mais registros de transações ou sempre que múltiplas RESTORE instruções forem necessárias (por exemplo, ao restaurar um backup completo do banco de dados seguido por um backup diferencial), RESTORE é necessária a opção WITH NORECOVERY em todas as instruções, exceto na final RESTORE . Uma boa prática é usar WITH NORECOVERY em TODAS as instruções em uma sequência de restauração em múltiplas etapas até que o ponto de recuperação desejado seja alcançado, e então usar uma instrução WITH RECOVERY separada RESTORE apenas para recuperação.
Quando usado com uma operação de restauração de arquivos ou de grupos de arquivos, NORECOVERY força o banco de dados a permanecer no estado de restauração após a operação de restauração. Isto é útil em qualquer um destas situações:
Um script de restauração está sendo executado e o log sempre está sendo aplicado.
Uma sequência de restaurações de arquivos é usada e o banco de dados não tem o objetivo de ser utilizável entre duas das operações de restauração.
Em alguns RESTORE casos, COM NORECOVERY, o roll forward é configurado suficientemente para frente para ser consistente com o banco de dados. Nesses casos, a reversão não ocorre e os dados permanecem offline, como é esperado com essa opção. No entanto, o Mecanismo de Banco de Dados emite uma mensagem informando que o conjunto de roll-forward pode ser recuperado agora usando a opção RECOVERY.
STANDBY = standby_file_name
Especifica um arquivo em espera que permite que os efeitos da recuperação sejam desfeitos. A opção STANDBY é permitida para restauração offline (incluindo restauração parcial). A opção não é permitida para restauração online. Tentar especificar a opção STANDBY para uma operação de restauração online faz com que a operação de restauração falhe. STANDBY também não é permitido quando uma atualização de banco de dados é necessária.
O arquivo de espera é usado para manter uma pré-imagem "copy-on-write" para páginas modificadas durante a passagem de desfazer de um RESTORE WITH STANDBY. O arquivo em espera permite que um banco de dados seja aberto para acesso somente leitura entre restaurações do log de transações e possa ser usado com situações de servidor em espera passiva ou em situações especiais de recuperação, nas quais é útil inspecionar o banco de dados entre restaurações do log. Após uma RESTORE operação COM ESPERA, o arquivo de desfazer é automaticamente excluído pela próxima RESTORE operação. Se esse arquivo de espera for deletado manualmente antes da próxima RESTORE operação, então todo o banco de dados deve ser restaurado novamente. Enquanto o banco de dados está em estado STANDBY, você deve tratar esse arquivo em espera com o mesmo cuidado como com qualquer outro arquivo do banco de dados. Ao contrário de outros arquivos do banco de dados, esse arquivo é mantido aberto pelo Mecanismo de Banco de Dados apenas durante operações de restauração ativas.
O standby_file_name especifica um arquivo em espera cujo local é armazenado no log do banco de dados. Se um arquivo existente estiver usando o nome especificado, o arquivo será substituído. Caso contrário, o Mecanismo de Banco de Dados criará o arquivo.
O requisito de tamanho de um determinado arquivo em espera depende do volume de ações de desfazer resultantes das transações não confirmadas durante a operação de restauração.
Importante
Se o espaço em disco disponível se esgotar na unidade que contém o nome do arquivo em espera especificado, a operação de restauração será parada.
Para uma comparação entre RECUPERAÇÃO e NÃO, veja a seção "Observações" em RESTORE.
LOADHISTORY
Apoiado por:RESTORE VERIFYONLY
Especifica que a operação de restauração carrega as informações nas tabelas de histórico do msdb. A opção LOADHISTORY carrega informações, do único conjunto de backup que está sendo verificado, sobre backups do SQL Server armazenados no conjunto de mídias nas tabelas do histórico de backup e restauração no banco de dados msdb. Para obter mais informações sobre tabelas de histórico, confira Tabelas do sistema (Transact-SQL).
Tenha em mente que usar LOADHISTORY para backups que já existem nas tabelas de histórico msdb adicionarão as mesmas informações com uma nova backup_set_id. Além disso, se você usar LOADHISTORY para recriar o histórico de backup em msdb, em um servidor diferente ou depois que ele foi excluído do servidor original, é recomendável executar os comandos de restauração para os backups na ordem em que eles foram usados. Isso garante que a cadeia LSN permaneça intacta e que o assistente de restauração do SSMS leia corretamente o histórico de backup para gerar a sequência de restauração correta. O uso de LOADHISTORY com o histórico de backup recriado fora de ordem pode resultar em um erro na tentativa de restauração ("Não é possível criar um plano de restauração devido à interrupção na cadeia LSN. (Microsoft.SqlServer.SmoExtended)").
< > general_WITH_options [ ,... n ]
As seguintes opções gerais WITH são todas suportadas em RESTOREDATABASE e RESTORE instruções LOG. Algumas dessas opções também têm suporte em uma ou mais instruções auxiliares, conforme indicado.
Opções da operação de restauração
Essas opções afetam o comportamento da operação de restauração.
MOVER 'logical_file_name_in_backup' para 'operating_system_file_name' [ ,... n ]
Apoiado por:RESTORE e RESTORE VERIFYONLY
Especifica que o arquivo de dados ou de log cujo nome lógico é especificado por logical_file_name_in_backup deve ser movido com sua restauração no local especificado por operating_system_file_name. O nome do arquivo lógico de um arquivo de log ou de dados em um conjunto de backup corresponde ao seu nome lógico no banco de dados quando o conjunto de backup foi criado.
n é um espaço reservado que indica que você pode especificar instruções MOVE adicionais. Especifique uma instrução MOVE para cada arquivo lógico que você deseja restaurar do conjunto de backup para um novo local. Por padrão, o arquivo logical_file_name_in_backup é restaurado em seu local original.
Observação
Para obter uma lista dos arquivos lógicos do conjunto de backup, use RESTORE FILELISTONLY.
Se uma RESTORE instrução for usada para realocar um banco de dados no mesmo servidor ou copiá-lo para outro servidor, a opção MOVE pode ser necessária para realocar os arquivos do banco de dados e evitar colisões com arquivos existentes.
Quando usada com RESTORE LOG, a opção MOVE pode ser usada apenas para realocar arquivos que foram adicionados durante o intervalo coberto pelo log restaurado. Por exemplo, se o backup do log contiver uma operação de adicionar arquivo por arquivo file23, esse arquivo pode ser realocado usando a opção MOVE no RESTORE LOG.
Quando usada com o Backup de Instantâneo do SQL Server, a opção MOVE pode ser usada somente para relocar arquivos em um blob do Azure na mesma conta de armazenamento do blob original. A opção MOVE não pode ser usada para restaurar o backup de instantâneo em um arquivo local ou em outra conta de armazenamento.
Se uma RESTORE VERIFYONLY instrução for usada quando você planeja realocar um banco de dados no mesmo servidor ou copiá-lo para outro servidor, a opção MOVE pode ser necessária para verificar se há espaço suficiente disponível no destino e identificar possíveis colisões com arquivos existentes.
Para obter mais informações, veja Copiar bancos de dados com Backup e Restauração.
CREDENTIAL
Apoiado por:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
Aplica-se ao: SQL Server 2012 (11.x) SP1 CU2 e posterior
Usado apenas ao restaurar um backup do Armazenamento de Blobs do Microsoft Azure.
Observação
Com o SQL Server 2012 (11.x) SP1 CU2 até o SQL Server 2016 (13.x), você pode apenas restaurar de um único dispositivo ao fazer uma restauração de uma URL. Para fazer uma restauração de vários dispositivos ao restaurar usando uma URL, é necessário usar o SQL Server 2016 (13.x) ou posterior, bem como tokens SAS (Assinatura de Acesso Compartilhado). Para obter mais informações, consulte Habilitar o backup gerenciado do SQL Server no Microsoft Azure e Simplificando a criação de credenciais do SQL com tokens SAS (Assinatura de Acesso Compartilhado) no Armazenamento do Azure com o PowerShell.
REPLACE
Apoiado por:RESTORE
Especifica que o SQL Server deve criar o banco de dados especificado e seus arquivos relacionados, mesmo que já exista outro banco de dados com o mesmo nome. Nesse caso, o banco de dados existente é excluído. Quando a opção REPLACE não é especificada, ocorre uma verificação de segurança. Isto impede que um banco de dados diferente seja substituído por acidente. A verificação de segurança garante que a RESTOREDATABASE instrução não restaure o banco de dados no servidor atual se existirem as seguintes condições:
O banco de dados nomeado na RESTORE instrução já existe no servidor atual, e
O nome do banco de dados é diferente do nome de banco de dados registrado no conjunto de backup.
O REPLACE também permite RESTORE sobrescrever um arquivo existente que não pode ser verificado como pertencente ao banco de dados que está sendo restaurado. Normalmente, RESTORE recusa-se a sobrescrever arquivos pré-existentes. WITH REPLACE também pode ser usado da mesma forma para a RESTORE opção LOG.
REPLACE também substitui o requisito de fazer backup do log final antes da restauração do banco de dados.
Para informações sobre o impacto do uso da opção SUBSTITUIR, veja RESTORE (Transact-SQL).
RESTART
Apoiado por:RESTORE
Especifica que o SQL Server deve reinicializar uma operação de restauração que foi interrompida. RESTART reinicia a operação de restauração no ponto em que foi interrompida.
RESTRICTED_USER
Apoiado por:RESTORE
Restringe o acesso para o banco de dados recém-restaurado a membros das funções db_owner, dbcreator ou sysadmin. RESTRICTED_USER substitui a opção DBO_ONLY. DBO_ONLY foi descontinuado no SQL Server 2008 (10.0.x).
Use com a opção RECOVERY.
Opções de conjunto de backup
Essas opções funcionam no conjunto de backup que contém o backup a ser restaurado.
FILE = { backup_set_file_number | @backup_set_file_number }
Apoiado por:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, e RESTORE VERIFYONLY.
Identifica o conjunto de backup a ser restaurado. Por exemplo, um backup_set_file_number de 1 indica o primeiro conjunto de backup na mídia de backup e um backup_set_file_number de 2 indica o segundo conjunto de backup. Você pode obter a backup_set_file_number de um conjunto de backup usando a RESTORE HEADERONLY instrução.
Quando não especificado, o padrão é 1, exceto RESTORE HEADERONLY que, caso em que todos os conjuntos de backup do conjunto de mídia são processados. Para obter mais informações, confira Especificando um conjunto de backup.
Importante
Essa opção FILE não está relacionada à opção FILE para especificar um arquivo de banco de dados, FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.
SENHA = { senha | @password_variable }
Apoiado por:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, e RESTORE VERIFYONLY.
Fornece a senha do conjunto de backup. A senha de um conjunto de backup é uma cadeia de caracteres.
Observação
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.
Se uma senha foi especificada quando o conjunto de backup foi criado, essa senha será necessária para executar qualquer operação de restauração do conjunto de backup. É um erro para especificar a senha incorreta ou para especificar uma senha se o conjunto de backup não tiver uma.
Importante
Essa senha fornece apenas uma proteção fraca para o conjunto de mídias. Para obter mais informações, consulte a seção Permissões da instrução relevante.
[ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { <nome_do_banco_de_dados> | @database_name_variable } ]
Introduzido no SQL Server 2022 (16.x).
Obrigatório para a restauração do backup de instantâneo.
BACKUP SERVER ou BACKUP GROUP.... Confira Criar um backup de instantâneo do Transact-SQL.
METADATA_ONLY é sinônimo de SNAPSHOT. A VDI (interface de dispositivo virtual) usa SNAPSHOT. Para saber mais sobre a VDI, confira Referência da VDI (interface de dispositivo virtual).
Opções de conjunto de mídias
Essas opções funcionam no conjunto de mídias como um todo.
MEDIANAME = { media_name | @media_name_variable }
Apoiado por:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
Especifica o nome da mídia. Se fornecido, o nome da mídia deve corresponder ao nome da mídia nos volumes de backup. Caso contrário, a operação de restauração será finalizada. Se nenhum nome de mídia for indicado na RESTORE instrução, a verificação de um nome de mídia correspondente nos volumes de backup não é realizada.
Importante
O uso consistente de nomes de mídia em operações de backup e restauração fornece uma verificação extra de segurança para a mídia selecionada para a operação de restauração.
MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
Apoiado por:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
Fornece a senha do conjunto de mídias. A senha de um conjunto de mídias é uma cadeia de caracteres.
Observação
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.
Se uma senha foi fornecida quando o conjunto de mídias foi formatado, essa senha será necessária para acessar qualquer conjunto de backup no conjunto de mídias. É um erro para especificar a senha incorreta ou para especificar uma senha se o conjunto de mídias não tiver uma.
Importante
Essa senha fornece apenas uma proteção fraca para o conjunto de mídias. Para obter mais informações, consulte a seção "Permissões" da instrução relevante.
TAMANHO BLOCO = { tamanho | do bloco@blocksize_variable }
Apoiado por:RESTORE
Especifica o tamanho do bloco físico, em bytes. Os tamanhos com suporte são 512, 1024, 2048, 4096, 8192, 16384, 32768 e 65536 (64 KB) bytes. O padrão é 65536 para dispositivos de fita e 512 para outros dispositivos. Normalmente, essa opção é desnecessária porque RESTORE seleciona automaticamente um tamanho de bloco apropriado para o dispositivo. A declaração explícita de um tamanho de bloco substitui a seleção automática de tamanho de bloco.
Se estiver restaurando um backup de um CD-ROM, especifique BLOCKSIZE=2048.
Observação
Normalmente, essa opção afeta o desempenho apenas durante a leitura de dispositivos de fita.
Opções de transferência de dados
As opções permitem otimizar a transferência de dados do dispositivo de backup.
BUFFERCOUNT = { buffercount | @buffercount_variable }
Apoiado por:RESTORE
Especifica o número total de buffers de E/S a ser usado para a operação de restauração. É possível especificar qualquer inteiro positivo. No entanto, grandes números de buffers podem provocar erros de "memória insuficiente" devido a espaço de endereço virtual inadequado no processo Sqlservr.exe.
O espaço total usado pelos buffers é determinado por: buffercount****maxtransfersize.
MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }
Apoiado por:RESTORE
Especifica a maior unidade de transferência em bytes a ser usada entre a mídia de backup e o SQL Server. Os valores possíveis são múltiplos de 65536 bytes (64 KB), estendendo-se até 4194304 bytes (4 MB).
Observação
Quando o banco de dados tiver configurado o FILESTREAM ou incluir Grupos de Arquivos OLTP In-Memory, MAXTRANSFERSIZE, no momento da restauração deve ser maior ou igual ao que foi usado quando o backup foi criado.
Opções de gerenciamento de erros
Essas opções permitem determinar se somas de verificação de backup estão habilitadas para a operação de restauração e se a operação será interrompida quando um erro for encontrado.
{ SOMA DE VERIFICAÇÃO | NO_CHECKSUM }
Apoiado por:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
O comportamento padrão é verificar somas de verificação se elas estiverem presentes e continuar sem verificação se não estiverem presentes.
CHECKSUM
Especifica que as somas de verificação de backup devem ser verificadas e, se o backup não tiver somas de verificação, faz com que a operação de restauração falhe com uma mensagem indicando que somas de verificação não estão presentes.
Observação
As somas de verificação de página serão relevantes para operações de backup somente se as somas de verificação de backup forem usadas.
Por padrão, ao encontrar um checksum inválido, RESTORE reporta um erro de checksum e para. No entanto, se você especificar CONTINUE_AFTER_ERROR, RESTORE isso prossegue após devolver um erro de checksum e o número da página contendo o checksum inválido, se a corrupção permitir.
Para obter mais informações sobre como trabalhar com somas de verificação de backup, confira Possíveis erros de mídia durante backup e restauração (SQL Server).
NO_CHECKSUM
Desabilita explicitamente a validação de somas de verificação pela operação de restauração.
{ STOP_ON_ERROR | CONTINUE_AFTER_ERROR }
Apoiado por:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
STOP_ON_ERROR
Especifica que a operação de restauração para com o primeiro erro encontrado. Esse é o comportamento padrão para RESTORE, exceto para VERIFYONLY, que tem CONTINUE_AFTER_ERROR como padrão.
CONTINUE_AFTER_ERROR
Determina que a operação de restauração deve continuar depois que um erro for encontrado.
Se um backup contiver páginas danificadas, será melhor repetir a operação de restauração usando um backup alternativo que não contenha os erros, por exemplo, um backup feito antes das páginas serem danificadas. No entanto, como um último recurso, é possível restaurar um backup danificado com o uso da opção CONTINUE_AFTER_ERROR da instrução RESTORE e tentar salvar os dados.
Opções de FILESTREAM
FILESTREAM ( DIRECTORY_NAME =directory_name )
Apoiado por:RESTORE e RESTORE VERIFYONLY
Aplica-se a: SQL Server 2012 (11.x) e posterior
Um nome de diretório compatível com o Windows. Esse nome deve ser exclusivo entre todos os nomes de diretórios FILESTREAM no nível de banco de dados na instância do SQL Server. A comparação de exclusividade é feita sem diferenciar maiúsculas de minúsculas, independentemente das configurações de ordenação do SQL Server.
Opções de monitoramento
Essas opções permitem monitorar a transferência de dados do dispositivo de backup.
ESTATÍSTICAS [ = porcentagem ]
Apoiado por:RESTORE e RESTORE VERIFYONLY
Exibe uma mensagem a cada vez que outra porcentagem for concluída e é usada para medir o progresso. Se percentage for omitido, o SQL Server exibirá uma mensagem após a conclusão de cada 10% (aproximadamente).
A opção STATS informa a porcentagem concluída de acordo com o limite de relatório do próximo intervalo. Esse limite é aproximadamente a porcentagem especificada. Por exemplo, com STATS=10, o Mecanismo de Banco de Dados relata aproximadamente nesse intervalo. Por exemplo, em vez de exibir precisamente 40%, a opção pode exibir 43%. Para conjuntos de backup grandes, isso não é um problema porque a porcentagem concluída muda muito lentamente entre chamadas de E/S concluídas.
Opções de fita
Essas opções são usadas apenas para dispositivos TAPE. Se um dispositivo que não seja de fita estiver sendo usado, essas opções serão ignoradas.
{ REBOBINAR | NOREWIND }
Essas opções são usadas apenas para dispositivos TAPE. Se um dispositivo não fita estiver sendo usado, essas opções serão ignoradas.
REWIND
Apoiado por:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
Especifica que o SQL Server libera e rebobina a fita. REWIND é o padrão.
NOREWIND
Apoiado por:RESTORE e RESTORE VERIFYONLY
A especificação de NOREWIND em qualquer outra restauração gera um erro.
Especifica que o SQL Server mantém a fita aberta após a operação de backup. É possível usar essa opção para melhorar o desempenho ao executar várias operações de backup em uma fita.
NOREWIND implica CARGA, e essas opções são incompatíveis dentro de uma única RESTORE afirmação.
Observação
Se você usar NOREWIND, a instância do SQL Server mantém a propriedade da unidade de fita até que uma BACKUP instrução ou RESTORE rodando no mesmo processo use a opção REWIND ou UNLOAD, ou a instância do servidor seja desligada. Manter a fita aberta evita que outros processos a acessem. Para obter informações sobre como exibir uma lista de fitas abertas e fechar uma fita aberta, confira Dispositivos de backup (SQL Server).
{ DESCARREGAR | DESCARREGAR }
Apoiado por:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY, e RESTORE VERIFYONLY.
Essas opções são usadas apenas para dispositivos TAPE. Se um dispositivo não fita estiver sendo usado, essas opções serão ignoradas.
Observação
UNLOAD/NOUNLOAD é uma configuração de sessão que persiste durante a vida útil da sessão ou até que ela seja redefinida especificando a alternativa.
UNLOAD
Especifica que a fita é rebobinada e descarregada automaticamente quando o backup for concluído. UNLOAD é o padrão quando uma sessão começa.
NOUNLOAD
Especifica que, após a RESTORE operação, a fita permanece carregada na unidade de fita.
<replication_WITH_option>
Esta opção será relevante somente se o banco de dados foi replicado quando o backup foi criado.
KEEP_REPLICATION
Apoiado por:RESTORE
Use KEEP_REPLICATION ao configurar a replicação para trabalhar com envio de logs. Ela impede que as configurações de replicação sejam removidas quando um backup de banco de dados ou de log é restaurado em um servidor em espera passiva e o banco de dados é recuperado. Não é permitido especificar essa opção ao restaurar um backup com a opção NORECOVERY. Para garantir funções de replicação corretamente após a restauração:
Os bancos de dados
msdbemasterno servidor em espera passiva devem estar sincronizados com os bancos de dadosmsdbemasterno servidor primário.O servidor em espera passiva deve ser renomeado para usar o mesmo nome que o servidor primário.
<change_data_capture_WITH_option>
Essa opção será relevante apenas se o banco de dados estiver habilitado para Change Data Capture quando o backup foi criado.
KEEP_CDC
Apoiado por:RESTORE
KEEP_CDC deve ser usado para impedir que as configurações de captura de dados de alterações sejam removidas quando um backup de banco de dados ou de log é restaurado em outro servidor e o banco de dados é recuperado. Não é permitido especificar essa opção ao restaurar um backup com a opção NORECOVERY.
A restauração do banco de dados com KEEP_CDC não cria os trabalhos de captura de dados de alterações. Para extrair alterações do log após restaurar o banco de dados, recrie o trabalho do processo de captura e o trabalho de limpeza do banco de dados restaurado. Para obter informações, consulte sys.sp_cdc_add_job (Transact-SQL).
Para obter informações sobre como usar a captura de dados de alterações com o espelhamento de banco de dados, consulte Change Data Capture e outros recursos do SQL Server.
<service_broker_WITH_options>
Ativa ou desativa a entrega de mensagens do Agente de Serviço ou define um novo identificador do Agente de Serviço. Essa opção será relevante apenas se o Agente de Serviço estava habilitado (ativado) para o banco de dados quando o backup foi criado.
{ ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER }
Apoiado por:RESTORE DATABASE
ENABLE_BROKER
Especifica que a entrega de mensagens do Agente de Serviço é habilitada no final da restauração para que as mensagens possam ser enviadas imediatamente. Por padrão, a entrega de mensagens do Agente de Serviço é desabilitado durante a restauração. O banco de dados retém o identificador do Service Broker.
ERROR_BROKER_CONVERSATIONS
Encerra todas as conversas com um erro que declara que o banco de dados está anexado ou restaurado. Isso permite que seus aplicativos executem a limpeza habitual para conversas existentes. A entrega de mensagens do Service Broker permanece desabilitada até que essa operação seja concluída e, em seguida, é habilitada. O banco de dados retém o identificador do Service Broker.
NEW_BROKER
Especifica que o banco de dados seja atribuído a um novo identificador do Service Broker. Como o banco de dados é considerado um novo Service Broker, as conversas existentes nele são imediatamente removidas sem produzir mensagens de caixa de diálogo de término. Qualquer rota que referencia o antigo identificador do Service Broker deverá ser recriada com o novo identificador.
<point_in_time_WITH_options>
Apoiado por:RESTORE {DATABASE|LOG} e apenas para modelos de recuperação full ou bulk-log.
Você pode restaurar um banco de dados para uma transação ou momento específico, especificando o ponto de recuperação de destino em uma cláusula STOPAT, STOPATMARK ou STOPBEFOREMARK. Uma transação ou momento especificado sempre é restaurado a partir de um backup de log. Em cada RESTORE instrução LOG da sequência de restauração, você deve especificar seu tempo ou transação alvo em uma cláusula idêntica de STOPAT, STOPATMARK ou STOPBEFOREMARK.
Como um pré-requisito para uma restauração pontual, você deve restaurar primeiro um backup de banco de dados completo cujo ponto de extremidade seja anterior ao ponto de recuperação de destino. Para ajudar a identificar qual backup de banco de dados restaurar, você pode opcionalmente especificar sua cláusula WITH STOPAT, STOPATMARK ou STOPBEFOREMARK em uma RESTOREDATABASE instrução para gerar um erro caso o backup de dados seja muito recente para o tempo alvo especificado. Mas o backup de dados completo é sempre restaurado, mesmo que ele contenha o tempo de destino.
Observação
As opções RESTORE_DATABASE e RESTORE_LOG WITH em um momento são semelhantes, mas apenas RESTORE o LOG suporta o argumento mark_name .
{STOPAT | STOPATMARK | STOPBEFOREMARK}
STOPAT = { 'datetime' | @_datetime_var* }
Especifica que o banco de dados seja restaurado para o estado em que estava na data e hora especificadas pelo parâmetro datetime ou @datetime_var. Para obter informações sobre como especificar uma data e hora, confira Tipos de dados e funções de data e hora (Transact-SQL).
Se uma variável for usada para STOPAT, a variável deverá ser um tipo de dados varchar, char, smalldatetime ou datetime. Apenas registros do log de transações gravados antes da data e hora especificadas são aplicados ao banco de dados.
Observação
Se o tempo STOPAT especificado for após o último backup do LOG, o banco de dados fica no estado não recuperado, como se RESTORE o LOG rodasse com o NORECOVERY.
Para obter mais informações, confira Restaurar um banco de dados do SQL Server em um ponto específico (Modelo de recuperação completa).
STOPATMARK = { 'mark_name' | 'lsn:lsn_number' } [ AFTER 'datetime' ]
Especifica recuperação para um ponto de recuperação especificado. A transação especificada é incluída na recuperação, mas ela será confirmada apenas se tiver sido confirmada originalmente quando foi realmente gerada.
Tanto RESTOREDATABASE o LOG RESTORE quanto o LOG suportam o parâmetro lsn_number . Esse parâmetro especifica um número de sequência de log.
O parâmetro mark_name é suportado apenas pela RESTORE instrução LOG. Esse parâmetro identifica uma marca de transação no backup de log.
Em uma RESTORE instrução LOG, se APÓS a data-hora for omitida, a recuperação para na primeira marca com o nome especificado. Se AFTER datetime for especificado, a recuperação será interrompida na primeira marca que tem o nome especificado exatamente ou após datetime.
Observação
Se a marca, LSN ou tempo especificados for após o último backup do LOG, o banco de dados fica no estado não recuperado, como se RESTORE o LOG rodasse com NORECOVERY.
Para obter mais informações, confira Usar transações marcadas para recuperar bancos de dados relacionados de forma consistente (modelo de recuperação completa) e Recuperar para um número de sequência de log (SQL Server).
STOPBEFOREMARK = { 'mark_name'' | lsn:lsn_number' } [ AFTER 'datetime' ]
Especifica recuperação até o ponto de recuperação especificado. A transação especificada não é incluída na recuperação e é revertida quando WITH RECOVERY for usado.
Tanto RESTOREDATABASE o LOG RESTORE quanto o LOG suportam o parâmetro lsn_number . Esse parâmetro especifica um número de sequência de log.
O parâmetro mark_name é suportado apenas pela RESTORE instrução LOG. Esse parâmetro identifica uma marca de transação no backup de log.
Em uma RESTORE instrução LOG, se APÓS a data-hora for omitida, a recuperação para pouco antes da primeira marcação com o nome especificado. Se AFTER datetime for especificado, a recuperação será interrompida logo antes da primeira marca que tem o nome especificado exatamente ou após datetime.
Importante
Se uma sequência de restauração parcial excluir qualquer grupo de arquivos FILESTREAM, não haverá suporte para a restauração point-in-time. Você pode forçar a sequência de restauração a continuar. No entanto, os grupos de arquivos FILESTREAM que são omitidos da RESTORE instrução nunca podem ser restaurados. Para forçar uma restauração point-in-time, especifique a opção CONTINUE_AFTER_ERROR junto com a opção STOPAT, STOPATMARK ou STOPBEFOREMARK. Se você especificar CONTINUE_AFTER_ERROR, a sequência de restauração parcial terá êxito e o grupo de arquivos FILESTREAM se tornará irrecuperável.
Conjuntos de resultados
Para saber mais sobre conjuntos de resultados, confira os seguintes artigos:
Comentários
Para comentários adicionais, confira os seguintes artigos:
Especificando um conjunto de backup
Um conjunto de backup contém o backup de uma única operação de backup bem-sucedida. RESTORE, RESTORERESTORE FILELISTONLY, RESTORERESTORE HEADERONLY, e RESTORERESTORE VERIFYONLY as instruções operam em um único conjunto de backup dentro do conjunto de mídia no dispositivo ou dispositivos de backup especificados. Você deve especificar o backup necessário de dentro do conjunto de mídias. Você pode obter a backup_set_file_number de um conjunto de backup usando a RESTORE HEADERONLY instrução.
A opção para especificar o conjunto de backup para restauração é:
FILE ={ backup_set_file_number | @backup_set_file_number }
Em que backup_set_file_number indica a posição do backup no conjunto de mídias. Um backup_set_file_number igual a 1 (FILE = 1) indica o primeiro conjunto de backup na mídia de backup e um backup_set_file_number igual a 2 (FILE = 2) indica o segundo conjunto de backup, e assim por diante.
O comportamento dessa opção varia conforme a instrução, como descrito na seguinte tabela:
| de | Comportamento da opção FILE do conjunto de backup |
|---|---|
| RESTORE | O número do arquivo do conjunto de backup padrão é 1. Apenas uma opção de ARQUIVO de backup é permitida em uma RESTORE instrução. É importante especificar conjuntos de backup na ordem. |
| RESTORE FILELISTONLY | O número do arquivo do conjunto de backup padrão é 1. |
| RESTORE HEADERONLY | Por padrão, todos os conjuntos de backup no conjunto de mídias são processados. O RESTORE HEADERONLY conjunto de resultados retorna informações sobre cada conjunto de backup, incluindo sua Posição no conjunto de mídia. Para retornar informações sobre um conjunto de backup especificado, use o número de sua posição como o valor de backup_set_file_number na opção FILE. Nota: Para mídia de fita, RESTORE o HEADER processa apenas conjuntos de backup na fita carregada. |
| RESTORE VERIFYONLY | O backup_set_file_number padrão é 1. |
Observação
A opção FILE para especificar um conjunto de backup não está relacionada à opção FILE para especificar um arquivo de banco de dados, FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.
Resumo de suporte para opções WITH
As seguintes opções WITH são suportadas apenas pela RESTORE instrução: BLOCKSIZE, BUFFERCOUNT, MAXTRANSFERSIZE, PARTIAL, KEEP_REPLICATION, { RECOVERY | NÃO RECUPERO | ESPERE }, SUBSTITUIR, REINICIAR, RESTRICTED_USER E { PARADA | STOPATMARK | PARADAANTEMARCA }
Observação
A opção PARCIAL é suportada apenas por RESTOREDATABASE.
A tabela a seguir lista as opções de WITH usadas por uma ou mais instruções e indica quais instruções oferecem suporte a cada opção. Uma marca de verificação (√) indica que uma opção tem suporte. Um traço (–) indica que a opção não tem suporte.
| Opção WITH | RESTORE | RESTORE FILELISTONLY | RESTORE HEADERONLY | RESTORE LABELONLY | RESTORE REWINDONLY | RESTORE VERIFYONLY |
|---|---|---|---|---|---|---|
| { CHECKSUM | NO_CHECKSUM } |
√ | √ | √ | √ | - | √ |
| { CONTINUE_AFTER_ERROR | STOP_ON_ERROR } |
√ | √ | √ | √ | - | √ |
| FILE1 | √ | √ | √ | - | - | √ |
| LOADHISTORY | - | - | - | - | - | √ |
| MEDIANAME | √ | √ | √ | √ | - | √ |
| MEDIAPASSWORD | √ | √ | √ | √ | - | √ |
| MOVE | √ | - | - | - | - | √ |
| PASSWORD | √ | √ | √ | - | - | √ |
| { REBOBINAR | NOREWIND } | √ | Apenas REWIND | Apenas REWIND | Apenas REWIND | - | √ |
| ESTATÍSTICAS | √ | - | - | - | - | √ |
| { UNLOAD | NOUNLOAD} | √ | √ | √ | √ | √ | √ |
1 FILE =backup_set_file_number, que é distinto de {FILE | FILEGROUP}.
Permissões
Para permissões, confira os seguintes artigos:
Exemplos
Para exemplos, confira os seguintes artigos: