Declarações RESTORE - Argumentos (Transact-SQL)

Aplica-se a: SQL Server

Este artigo documenta os argumentos descritos nas secções de Sintaxe do RESTORE {DATABASE|LOG} e do conjunto associado de instruções auxiliares: RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY e RESTORE VERIFYONLY. A maioria dos argumentos é apoiada apenas por um subconjunto destas seis afirmações. O suporte de cada argumento é indicado na descrição do argumento.

Transact-SQL convenções de sintaxe

Sintaxe

Para sintaxe, veja os seguintes artigos:

Argumentos

DATABASE

Suportado por:RESTORE

Especifica o banco de dados de destino. Se for especificada uma lista de ficheiros e grupos de ficheiros, apenas esses ficheiros e grupos de ficheiros são restaurados.

Para um banco de dados usando o modelo de recuperação completa ou bulk-logged, o SQL Server exige, na maioria dos casos, que você faça backup da parte final do log antes de restaurar o banco de dados. Restaurar um banco de dados sem primeiro fazer backup da parte final do log resulta em um erro, a menos que a instrução RESTORE DATABASE contenha a cláusula WITH REPLACE ou WITH STOPAT, que deve especificar uma hora ou transação que ocorreu após o término do backup de dados. Para obter mais informações sobre backups de tail-log, consulte Tail-Log Backups (SQL Server).

LOG

Suportado por:RESTORE

Especifica que deve ser aplicada uma cópia de segurança do registo de transações a esta base de dados. Os registos de transações devem ser aplicados por ordem sequencial. O SQL Server verifica o registo de transações com backup para garantir que as transações estão a ser carregadas na base de dados correta e na sequência correta. Para aplicar múltiplos registos de transações, utilize a opção NORECOVERY em todas as operações de restauro, exceto na última.

Note

Normalmente, o último registo restaurado é o backup do registo de cauda. Uma cópia de segurança tail-log é uma cópia de segurança de registos feita mesmo antes de restaurar uma base de dados, normalmente após uma falha na base de dados. Fazer uma cópia de segurança do tail-log da base de dados possivelmente danificada evita a perda de trabalho ao capturar o log que ainda não foi feito backup (a cauda do log). Para obter mais informações, consulte Tail-Log backups (SQL Server).

Para mais informações, consulte Aplicar backups de log de transações (SQL Server).

{ database_name | @database_name_var }

Suportado por:RESTORE

É a base de dados onde o registo ou base de dados completa é restaurado. Se fornecida como uma variável (@database_name_var), este nome pode ser especificado como uma constante de cadeia (@database_name_var = base_de_dados) ou como uma variável de tipo de código de caracteres, exceto para os tipos de dados ntext ou texto .

<file_or_filegroup_or_page> [ ,... n ]

Suportado por:RESTORE

Especifica o nome de um ficheiro lógico, grupo de ficheiros ou página a incluir numa instrução RESTORE DATABASE ou RESTORE LOG. Pode especificar uma lista de ficheiros ou grupos de ficheiros.

Para uma base de dados que utiliza o modelo de recuperação simples, as opções FILE e FILEGROUP só são permitidas se os ficheiros ou grupos de ficheiros de destino forem apenas leitura, ou se isto for uma restauração PARCIAL (o que resulta num grupo de ficheiros desativado).

Para uma base de dados que utiliza o modelo de recuperação completo ou logado em massa, após usar RESTORE DATABASE para restaurar um ou mais ficheiros, grupos de ficheiros e/ou páginas, normalmente, deve aplicar o registo de transações aos ficheiros que contêm os dados restaurados; Aplicar o registo torna esses ficheiros consistentes com o resto da base de dados. As exceções a isto são as seguintes:

  • Se os ficheiros a ser restaurados eram apenas leitura antes de terem sido guardados pela última vez, então não é necessário aplicar um registo de transações, e a instrução RESTORE informa-o desta situação.

  • Se a cópia de segurança contiver o grupo de ficheiros primário e estiver a ser realizada uma restauração parcial. Neste caso, o registo de restauração não é necessário porque o registo é restaurado automaticamente a partir do conjunto de backup.

FICHEIRO = { logical_file_name_in_backup | @logical_file_name_in_backup_var }

Nomeia um ficheiro para incluir na restauração da base de dados.

FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

Nomeia um grupo de ficheiros para incluir na restauração da base de dados.

O FILEGROUP é permitido no modelo de recuperação simples apenas se o grupo de ficheiros especificado for apenas de leitura e isto for uma restauração parcial (isto é, se for usado WITH PARTIAL (isto é, se for usado WITH PARTIAL). Quaisquer grupos de ficheiros de leitura/escrita não restaurados são marcados como desativados e não podem ser posteriormente restaurados na base de dados resultante.

READ_WRITE_FILEGROUPS

Seleciona todos os grupos de ficheiros de leitura e escrita. Esta opção é particularmente útil quando tem grupos de ficheiros apenas de leitura que pretende restaurar após a leitura-escrita dos grupos de ficheiros antes dos grupos de ficheiros só de leitura.

PÁGINA = 'ficheiro:página [ ,... n ]'

Especifica uma lista de uma ou mais páginas para uma restauração de páginas (que é suportada apenas para bases de dados que utilizam os modelos de recuperação completa ou logada em massa). Os valores são os seguintes:

PÁGINA
Indica uma lista de um ou mais ficheiros e páginas.

ficheiro
É o ID do ficheiro que contém uma página específica a restaurar.

Página
É o ID da página a restaurar no ficheiro.

n
É um marcador de posição que indica que podem ser especificadas várias páginas.

O número máximo de páginas que podem ser restauradas num único ficheiro numa sequência de restauro é 1000. No entanto, se tiver mais do que um pequeno número de páginas danificadas num ficheiro, considere restaurar o ficheiro inteiro em vez das páginas.

Note

As restaurações de páginas nunca são recuperadas.

Para mais informações sobre restauro de páginas, consulte Restaurar Páginas (SQL Server).

[ ,... n ]
É um marcador de posição que indica que múltiplos ficheiros, grupos de ficheiros e páginas podem ser especificados numa lista separada por vírgulas. O número é ilimitado.

DE { <backup_device> [ ,... n ] | <database_snapshot> }

Normalmente, especifica os dispositivos de backup a partir dos quais restaurar o backup. Alternativamente, numa instrução RESTORE DATABASE, a cláusula FROM pode especificar o nome de um snapshot de base de dados para o qual está a reverter a base de dados, caso em que nenhuma cláusula WITH é permitida.

Se a cláusula FROM for omitida, a restauração de uma cópia de segurança não ocorre. Em vez disso, a base de dados é recuperada. Isto permite-lhe recuperar uma base de dados que foi restaurada com a opção NORECOVERY ou mudar para um servidor de 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 lógicos ou físicos de backup a utilizar na operação de restauro.

Suportado por:RESTORE,RESTORE FILELISTONLY,RESTORE HEADERONLY,RESTORE LABELONLY, RESTORE REWINDONLY eRESTORE VERIFYONLY.

<backup_device>::= Especifica um dispositivo de backup lógico ou físico a usar para a operação de backup, da seguinte forma:

{ logical_backup_device_name | @logical_backup_device_name_var }
É o nome lógico, que deve seguir as regras para identificadores, do(s) dispositivo(s) de backup criado (s ) por sp_addumpdevice a partir do qual a base de dados é restaurada. Se fornecida como uma variável (@logical_backup_device_name_var), o nome do dispositivo de backup pode ser especificado como uma constante de cadeia (@logical_backup_device_name_var = logical_backup_device_name) ou como uma variável do tipo de código de caracteres, exceto para os tipos de dados ntext ou texto .

{DISCO | FITA } = { 'physical_backup_device_name'physical_backup_device_name_var | @ }
Permite restaurar cópias de segurança a partir do disco ou dispositivo de fita nomeado. Os tipos de dispositivos de disco e fita devem ser especificados com o nome real (por exemplo, caminho completo e nome do ficheiro) do dispositivo: DISK ='Z:\SQLServerBackups\AdventureWorks.bak' ou TAPE ='\\\\.\TAPE0'. Se especificado como uma variável (@physical_backup_device_name_var), o nome do dispositivo pode ser especificado como uma constante de cadeia (@physical_backup_device_name_var = 'physical_backup_device_name') ou como uma variável do tipo de dado de cadeia de caracteres, exceto para os tipos de dados ntext ou texto .

Se estiver a usar um servidor de rede com um nome UNC (que deve conter o nome da máquina), especifique um tipo de dispositivo de disco. Para mais informações sobre como usar nomes UNC, consulte Backup Devices (SQL Server).

A conta sob a qual está a executar o SQL Server deve ter acesso de LEITURA ao computador remoto ou ao servidor de rede para realizar uma operação de RESTAURO.

n
É um marcador de posição que indica que até 64 dispositivos de backup podem ser especificados numa lista separada por vírgulas.

Se uma sequência de restauração requer tantos dispositivos de backup quantos foram usados para criar o conjunto de media ao qual pertencem os backups, depende se a restauração está offline ou online, da seguinte forma:

  • A restauração offline permite que um backup seja restaurado usando menos dispositivos do que os usados para criar o backup.

  • A restauração online requer todos os dispositivos de backup do backup. Uma tentativa de restaurar com menos dispositivos falha.

Por exemplo, considere um caso em que uma base de dados foi guardada até quatro unidades de fita ligadas ao servidor. Uma restauração online requer que tenha quatro discos ligados ao servidor; Uma restauração offline permite-te restaurar o backup se houver menos de quatro discos na máquina.

Note

Quando está a restaurar uma cópia de segurança de um conjunto de media espelhado, pode especificar apenas um único espelho para cada família de medias. Na presença de erros, no entanto, ter os outros espelhos permite resolver rapidamente alguns problemas de restauração. Pode substituir um volume de suporte danificado pelo volume correspondente de outro espelho. Tenha em atenção que, para restaurações offline, pode restaurar a partir de menos dispositivos do que famílias multimédia, mas cada família é processada apenas uma vez.

<database_snapshot>::=

Suportado por:RESTORE DATABASE

DATABASE_SNAPSHOT =database_snapshot_name
Reverte a base de dados para o snapshot especificado por database_snapshot_name. A opção DATABASE_SNAPSHOT está disponível apenas para uma restauração completa da base de dados. Numa operação de reversão, o snapshot da base de dados substitui um backup completo da base de dados.

Uma operação de revert exige que o snapshot especificado da base de dados seja o único presente na base de dados. Durante a operação de revert, o snapshot da base de dados e a base de dados de destino e são ambos marcados como In restore. Para mais informações, consulte a secção "Observações" em RESTAURAR BASE de DADOS.

WITH Options

Especifica as opções a serem usadas por uma operação de restauro. Para um resumo das declarações que utilizam cada opção, veja "Resumo do Suporte para Opções WITH", mais adiante neste artigo.

Note

As opções WITH estão aqui organizadas pela mesma ordem que na secção "Sintaxe" em RESTORE {DATABASE|LOG}.

PARCIAL

Suportado por:RESTORE DATABASE

Especifica uma operação de restauro parcial que restaura o grupo de ficheiros primário e qualquer(es) grupo(s) secundário(s) especificado(s). A opção PARTIAL seleciona implicitamente o grupo de ficheiros primário; especificar FILEGROUP = 'PRIMARY' é desnecessário. Para restaurar um grupo de ficheiros secundário, deve especificar explicitamente o grupo usando a opção FILE ou a opção FILEGROUP.

A opção PARTIAL não é permitida nas instruções RESTORE LOG.

A opção PARTIAL inicia a fase inicial de uma restauração fragmentada, que permite que os grupos de ficheiros restantes sejam restaurados posteriormente. Para mais informações, consulte Restaurações Parciais (SQL Server).

[ RECUPERAÇÃO | SEM RECUPERAÇÃO | EM ESPERA ]

Suportado por:RESTORE

RECUPERAÇÃO
Instrui a operação de restauro a reverter quaisquer transações não comprometidas. Após o processo de recuperação, a base de dados está pronta para uso. Se nem NORECOVERY, RECOVERY nem STANDBY forem especificados, RECOVERY é o padrão.

Se forem planeadas operações RESTORE subsequentes (RESTORE LOG, ou RESTORE DATABASE a partir de diferencial), DEVER-SE especificar em vez disso NORECOVERY ou STANDBY.

Ao restaurar conjuntos de backup de uma versão anterior do SQL Server, pode ser necessária uma atualização da base de dados. Esta atualização é realizada automaticamente quando o WITH RECOVERY é especificado. Para mais informações, consulte Aplicar backups de log de transações (SQL Server).

Note

Se a cláusula FROM for omitida, NORECOVERY, RECOVERY ou STANDBY devem ser especificados na cláusula WITH.

NORECUPERAÇÃO

Instrui a operação de restauro a não reverter transações não comprometidas. Se tiver de ser aplicado outro registo de transações mais tarde, especifique a opção NORECOVERY ou STANDBY. Se nem NORECOVERY, RECOVERY nem STANDBY forem especificados, RECOVERY é o padrão. Durante uma operação de restauro offline usando a opção NORECOVERY, a base de dados não é utilizável.

Para restaurar uma cópia de segurança de uma base de dados e um ou mais registos de transações ou sempre que são necessárias múltiplas instruções RESTORE (por exemplo, ao restaurar uma cópia de segurança completa da base de dados seguida de uma backup diferencial), RESTORE requer a opção WITH NORECOVERY em todas as instruções, exceto na RESTORE final. Uma boa prática é usar as instruções WITH NORECOVERY em TODAS numa sequência de restauro em vários passos até ser atingido o ponto de recuperação desejado, e depois usar uma instrução RESTORE WITH RECOVERY separada apenas para recuperação.

Quando usado com uma operação de restauro de ficheiros ou grupos de ficheiros, o NORECOVERY obriga a base de dados a permanecer no estado de restauro após a operação de restauro. Isto é útil em qualquer uma destas situações:

  • Está a ser executado um script de restauração e o registo está sempre a ser aplicado.

  • É utilizada uma sequência de restaurações de ficheiros e a base de dados não está destinada a ser utilizável entre duas das operações de restauro.

Em alguns casos, RESTORE WITH NORECOVERY avança o roll forward o suficiente para ser consistente com a base de dados. Nesses casos, a reversão não ocorre e os dados permanecem offline, como seria de esperar com esta opção. No entanto, o Database Engine emite uma mensagem informativa que indica que o conjunto roll-forward pode agora ser recuperado usando a opção RECOVERY.

ESPERA = standby_file_name

Especifica um ficheiro de espera que permite desfazer os efeitos de recuperação. A opção STANDBY é permitida para restauração offline (incluindo restauro parcial). A opção não é permitida para a restauração online. Tentar especificar a opção STANDBY para uma operação de restauro online faz com que a operação de restauro falhe. O STANDBY também não é permitido quando é necessária uma atualização da base de dados.

O ficheiro 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 ficheiro de espera permite que uma base de dados seja aberta para acesso apenas de leitura entre restauros de registos de transações e pode ser usado tanto em situações de servidor de reserva quente como em situações especiais de recuperação, nas quais é útil inspecionar a base de dados entre restaurações de registos. Após uma operação de RESTAURAR COM STANDBY, o ficheiro de desfazer é automaticamente eliminado pela próxima operação de RESTAURO. Se este ficheiro de espera for eliminado manualmente antes da próxima operação de RESTAURO, então toda a base de dados deve ser restaurada novamente. Enquanto a base de dados estiver no estado STANDBY, deve tratar este ficheiro de standby com o mesmo cuidado que qualquer outro ficheiro de base de dados. Ao contrário de outros ficheiros de base de dados, este ficheiro só é mantido aberto pelo Database Engine durante operações ativas de restauro.

O standby_file_name especifica um ficheiro de espera cuja localização está armazenada no registo da base de dados. Se um ficheiro existente estiver a usar o nome especificado, o ficheiro é sobrescrito; caso contrário, o Database Engine cria o ficheiro.

O requisito de tamanho de um determinado ficheiro de espera depende do volume de ações de desfazer resultantes de transações não comprometidas durante a operação de restauro.

Importante

Se o espaço livre no disco estiver esgotado na unidade que contém o nome do ficheiro de reserva especificado, a operação de restauro para.

Para uma comparação entre RECOVERY e NORECOVERY, consulte a secção "Observações" no RESTORE.

HISTÓRICO DE CARGA

Suportado por:RESTORE VERIFYONLY

Especifica que a operação de restauro carrega a informação nas msdb tabelas de histórico. A opção LOADHISTORY carrega informação, para o conjunto único de backup a verificar, cerca de SQL Server backups armazenados no media definidos para as tabelas de histórico de backup e restauro na base de dados msdb. Para mais informações sobre tabelas de histórico, consulte System Tables (Transact-SQL).

Tenha em atenção que usar LOADHISTORY para backups que já existem nas msdb tabelas de histórico adicionará a mesma informação com um novo backup_set_id. Além disso, se usar o LOADHISTORY para recriar o histórico de backup em msdb, seja num servidor diferente ou depois de ter sido apagado do servidor original, recomenda-se executar os comandos de restauro dos backups na ordem em que foram feitos. Isto garante que a cadeia LSN permanece intacta e que o assistente de restauro SSMS lê corretamente o histórico de backup para gerar a sequência correta de restauração. A utilização do LOADHISTORY com o histórico de backup recriado fora de ordem pode resultar num erro ao tentar restaurar ("Não é possível criar o plano de restauro devido a quebra na cadeia LSN. (Microsoft. SqlServer.SmoExtended)").

<general_WITH_options> [ ,... n ]

As seguintes opções gerais WITH são todas suportadas nas instruções RESTORE DATABASE e RESTORE LOG. Algumas destas opções são também suportadas por uma ou mais instruções auxiliares, como referido.

Opções de operação de restauro

Estas opções afetam o comportamento da operação de restauro.

MOVER 'logical_file_name_in_backup' PARA 'operating_system_file_name' [ ,... n ]

Suportado por:RESTORE e RESTORE VERIFYONLY

Especifica que os dados ou ficheiros de registo cujo nome lógico é especificado por logical_file_name_in_backup devem ser movidos restaurando-os para a localização especificada por operating_system_file_name. O nome de arquivo lógico de um arquivo de dados ou de log em um conjunto de backup corresponde ao seu nome lógico no banco de dados quando o conjunto de backup foi criado.

n é um marcador de posição que indica que pode especificar instruções MOVE adicionais. Especifique uma instrução MOVE para cada ficheiro lógico que queira restaurar do conjunto de backup para uma nova localização. Por defeito, o ficheiro logical_file_name_in_backup é restaurado à sua localização original.

Note

Para obter uma lista dos ficheiros lógicos do conjunto de backup, use RESTORE FILELISTONLY.

Se uma instrução RESTORE for usada para realocar uma base de dados no mesmo servidor ou copiá-la para outro servidor, a opção MOVE pode ser necessária para realocar os ficheiros da base de dados e evitar colisões com ficheiros existentes.

Quando usada com RESTORE LOG, a opção MOVE pode ser usada apenas para realocar ficheiros que foram adicionados durante o intervalo coberto pelo registo a ser restaurado. Por exemplo, se a cópia de segurança do log contiver uma operação de adicionar ficheiro por ficheiro file23, esse ficheiro pode ser realocado usando a opção MOVER em RESTAURAR REGISTO.

Quando usada com o SQL Server Snapshot Backup, a opção MOVE pode ser usada apenas para realocar ficheiros para um blob Azure dentro da mesma conta de armazenamento do blob original. A opção MOVE não pode ser usada para restaurar o backup do snapshot num ficheiro local ou numa conta de armazenamento diferente.

Se uma instrução RESTORE VERIFYONLY for usada quando planeia realocar uma base de dados no mesmo servidor ou copiá-la para outro servidor, a opção MOVE pode ser necessária para verificar se há espaço suficiente disponível no destino e identificar potenciais colisões com ficheiros existentes.

Para mais informações, consulte Copiar Bases de Dados com Backup e Restauro.

CREDENTIAL

Suportado por:RESTORE, RESTORE FILELISTONLY,RESTORE HEADERONLY,RESTORE LABELONLY eRESTORE VERIFYONLY.

Aplica-se: SQL Server 2012 (11.x) SP1 CU2 e posteriores

Usado apenas ao restaurar uma cópia de segurança do Microsoft Armazenamento de Blobs do Azure.

Note

Com o SQL Server 2012 (11.x) SP1 CU2 até ao SQL Server 2016 (13.x), só pode restaurar a partir de um único dispositivo ao restaurar a partir de URL. Para restaurar a partir de vários dispositivos ao restaurar a partir de URL, deve usar o SQL Server 2016 (13.x) ou posterior, e deve usar tokens de Assinatura de Acesso Partilhada (SAS). Para mais informações, consulte Ative SQL Server Managed Backup para Microsoft Azure e Simplificando a criação de credenciais SQL com tokens de Assinatura de Acesso Partilhada (SAS) em Armazenamento do Azure com Powershell.

REPLACE

Suportado por:RESTORE

Especifica que o SQL Server deve criar a base de dados especificada e os seus ficheiros relacionados, mesmo que já exista outra base de dados com o mesmo nome. Nesse caso, a base de dados existente é eliminada. Quando a opção SUBSTITUIR não é especificada, ocorre uma verificação de segurança. Isto evita que uma base de dados diferente se sobrescriva acidentalmente. A verificação de segurança assegura que a instrução RESTORE DATABASE não restaura a base de dados no servidor atual se existirem as seguintes condições:

  • A base de dados nomeada na instrução RESTORE já existe no servidor atual, e

  • O nome da base de dados é diferente do nome da base de dados registado no conjunto de backup.

O REPLACE também permite que o RESTORE sobrescrita um ficheiro existente que não pode ser verificado como pertencente à base de dados que está a ser restaurada. Normalmente, o RESTORE recusa-se a sobrescrever ficheiros pré-existentes. WITH REPLACE também pode ser usado da mesma forma para a opção RESTORE LOG.

O REPLACE também sobrepõe-se à exigência de fazer uma cópia de segurança da cauda do registo antes de restaurar a base de dados.

Para informações sobre o impacto da utilização da opção SUBSTITUIR, consulte RESTORE (Transact-SQL).

REINICIAR

Suportado por:RESTORE

Especifica que o SQL Server deve reiniciar uma operação de restauro que foi interrompida. O RESTART reinicia a operação de restauro no ponto em que foi interrompida.

RESTRICTED_USER

Suportado por:RESTORE.

Restringe o acesso à base de dados recém-restaurada a membros dos papéis de db_owner, dbcreator ou sysadmin . RESTRICTED_USER substitui a opção DBO_ONLY. DBO_ONLY foi descontinuado em SQL Server 2008 (10.0.x).

Use com a opção RECOVERY.

Opções do conjunto de backup

Estas opções operam no conjunto de cópias de segurança que contém a cópia a restaurar.

FICHEIRO = { backup_set_file_number | @backup_set_file_number }

Suportado por:RESTORE,RESTORE FILELISTONLY,RESTORE HEADERONLY eRESTORE VERIFYONLY.

Identifica o conjunto de backup a ser restaurado. Por exemplo, um backup_set_file_number de 1 indica o primeiro conjunto de backup no suporte de backup e um backup_set_file_number de 2 indica o segundo conjunto de backup. Pode obter a backup_set_file_number de um conjunto de backup usando a instrução RESTORE HEADERONLY .

Quando não especificado, o padrão é 1, exceto RESTORE HEADERONLY, caso em que todos os conjuntos de backup do conjunto de media são processados. Para mais informações, consulte Especificar um Conjunto de Backup.

Importante

Esta opção FILE não está relacionada com a opção FILE para especificar um ficheiro de base de dados, FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.

PASSWORD = { password | @password_variable }

Suportado por:RESTORE,RESTORE FILELISTONLY,RESTORE HEADERONLY eRESTORE VERIFYONLY.

Fornece a palavra-passe do conjunto de backup. Uma palavra-passe de backup é uma cadeia de caracteres.

Note

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.

Se uma palavra-passe foi especificada quando o conjunto de backup foi criado, essa palavra-passe é necessária para realizar qualquer operação de restauro a partir do conjunto de backup. É um erro especificar a palavra-passe errada ou especificar uma palavra-passe se o conjunto de backup não tiver uma.

Importante

Esta palavra-passe oferece apenas uma proteção fraca para o conjunto multimédia. Para mais informações, consulte a secção Permissões para a declaração relevante.

[ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { <database_name> | @database_name_variable } ]

Introduzido no SQL Server 2022 (16.x).

É necessário restaurar a partir de um backup snapshot. BACKUP SERVER, ou BACKUP GROUP... Veja Crie uma Transact-SQL backup de snapshot.

METADATA_ONLY é sinónimo de SNAPSHOT. A interface de dispositivo virtual (VDI) utiliza o SNAPSHOT. Para obter informações sobre VDI, consulte de referência da interface de dispositivo virtual (VDI).

Opções de Conjunto de Media

Essas opções operam no conjunto de mídia como um todo.

MEDIANAME = { media_name | @media_name_variable }

Suportado por:RESTORE, RESTORE FILELISTONLY,RESTORE HEADERONLY,RESTORE LABELONLY eRESTORE VERIFYONLY.

Especifica o nome para os media. Se for fornecido, o nome do meio deve corresponder ao nome do meio nos volumes de backup; caso contrário, a operação de restauro termina. Se não for indicado um nome de media na instrução RESTORE, a verificação de um nome de media correspondente nos volumes de backup não é realizada.

Importante

A utilização consistente dos nomes dos media nas operações de backup e restauro proporciona uma verificação de segurança extra para os suportes selecionados para a operação de restauro.

MEDIAPASSWORD = { mediapassword | @mediapassword_variable }

Suportado por:RESTORE, RESTORE FILELISTONLY,RESTORE HEADERONLY,RESTORE LABELONLY eRESTORE VERIFYONLY.

Fornece a palavra-passe do conjunto multimédia. Uma palavra-passe multi-definida é uma cadeia de caracteres.

Note

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.

Se uma palavra-passe foi fornecida quando o conjunto de media foi formatado, essa palavra-passe é necessária para aceder a qualquer conjunto de backup no conjunto. É um erro especificar a palavra-passe errada ou especificar uma palavra-passe se o conjunto de media não tiver nenhuma.

Importante

Esta palavra-passe oferece apenas uma proteção fraca para o conjunto multimédia. Para mais informações, consulte a secção "Permissões" para a declaração relevante.

BLOCKSIZE = { blocksize | @blocksize_variable }

Suportado por:RESTORE

Especifica o tamanho do bloco físico, em bytes. Os tamanhos suportados são 512, 1024, 2048, 4096, 8192, 16384, 32768 e 65536 (64 KB) bytes. O padrão é 65536 para dispositivos de fita e 512 caso contrário. Normalmente, esta opção é desnecessária porque o RESTORE seleciona automaticamente um tamanho de bloco apropriado ao dispositivo. A indicação explícita de um tamanho de bloco substitui a seleção automática do tamanho do bloco.

Se estiver a restaurar uma cópia de segurança a partir de um CD-ROM, especifique BLOCKSIZE=2048.

Note

Esta opção normalmente afeta apenas o desempenho ao ler de dispositivos de fita.

Opções de transferência de dados

As opções permitem-lhe otimizar a transferência de dados a partir do dispositivo de backup.

BUFFERCOUNT = { buffercount | @buffercount_variable }

Suportado por:RESTORE

Especifica o número total de buffers de E/S a serem usados para a operação de restauro. Você pode especificar qualquer número inteiro positivo; no entanto, um grande número de buffers pode causar erros de "falta de memória" devido ao espaço de endereço virtual inadequado no processo de Sqlservr.exe.

O espaço total utilizado pelos buffers é determinado por: buffercount****maxtransfersize.

MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

Suportado por:RESTORE

Especifica a maior unidade de transferência em bytes a ser usada entre o meio de backup e o SQL Server. Os valores possíveis são múltiplos de 65536 bytes (64 KB) que podem variar até 4194304 bytes (4 MB).

Note

Quando a base de dados configurou o FILESTREAM, ou inclui ou In-Memory Grupos de Ficheiros OLTP, 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

Estas opções permitem-lhe determinar se as somas de verificação de backup estão ativadas para a operação de restauro e se a operação para ao encontrar um erro.

{ CHECKSUM | NO_CHECKSUM }

Suportado por:RESTORE, RESTORE FILELISTONLY,RESTORE HEADERONLY,RESTORE LABELONLY eRESTORE VERIFYONLY.

O comportamento padrão é verificar os checksums se estiverem presentes e avançar sem verificação se não estiverem presentes.

CHECKSUM
Especifica que os checksums de backup devem ser verificados e, se o backup não tiver checksoms de backup, faz com que a operação de restauro falhe com uma mensagem indicando que os checksum não estão presentes.

Note

Os checksums de página são relevantes para operações de backup apenas se forem usados checksums de backup.

Por defeito, ao encontrar um checksum inválido, o RESTORE reporta um erro de checksum e para. No entanto, se especificar CONTINUE_AFTER_ERROR, o RESTORE prossegue após devolver um erro de checksum e o número da página que contém o checksum inválido, se a corrupção permitir.

Para mais informações sobre como trabalhar com checksums de backup, veja Possíveis Erros de Media Durante Backup e Restauro (SQL Server).

NO_CHECKSUM
Desativa explicitamente a validação dos checksums pela operação de restauro.

{ STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

Suportado por:RESTORE, RESTORE FILELISTONLY,RESTORE HEADERONLY,RESTORE LABELONLY eRESTORE VERIFYONLY.

STOP_ON_ERROR
Especifica que a operação de restauro termina com o primeiro erro encontrado. Este é o comportamento padrão do RESTORE, exceto para o VERIFYONLY, que tem CONTINUE_AFTER_ERROR como padrão.

CONTINUE_AFTER_ERROR
Especifica que a operação de restauro deve continuar após o encontro de um erro.

Se uma cópia de segurança contiver páginas danificadas, é melhor repetir a operação de restauro usando uma cópia de segurança alternativa que não contenha os erros — por exemplo, uma cópia de segurança feita antes das páginas serem danificadas. Como último recurso, no entanto, pode restaurar uma cópia de segurança danificada usando a opção CONTINUE_AFTER_ERROR da instrução de restauro e tentar recuperar os dados.

Opções do FILESTREAM

FILESTREAM ( DIRECTORY_NAME =directory_name )

Suportado por:RESTORE e RESTORE VERIFYONLY

Aplica-se a: SQL Server 2012 (11.x) e versões posteriores

Um nome de diretório compatível com o Windows. Este nome deve ser único entre todos os nomes de diretórios FILESTREAM ao nível da base de dados na instância do SQL Server. A comparação de unicidade é feita de forma insensível a maiúsculas e minúsculas, independentemente das definições de compilação do SQL Server.

Opções de monitorização

Estas opções permitem-lhe monitorizar a transferência de dados a partir do dispositivo de backup.

STATS [ = percentagem ]

Suportado por:RESTORE e RESTORE VERIFYONLY

Exibe uma mensagem sempre que outra porcentagem é concluída e é usada para avaliar o progresso. Se percentagem for omitido, SQL Server exibe uma mensagem após cada 10 por cento ser concluído (aproximadamente).

A opção STATS reporta a percentagem concluída até ao limiar para reportar o próximo intervalo. Isto corresponde aproximadamente à percentagem especificada; por exemplo, com STATS=10, o Database Engine reporta aproximadamente nesse intervalo; por exemplo, em vez de mostrar precisamente 40%, a opção pode mostrar 43%. Para conjuntos de backup grandes, isto não é um problema porque a percentagem de conclusão muda muito lentamente entre chamadas de I/O concluídas.

Opções de Fita

Estas 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 }

Estas opções são usadas apenas para dispositivos TAPE. Se estiver a ser usado um dispositivo que não seja fita, estas opções são ignoradas.

REBOBINAR
Suportado por:RESTORE, RESTORE FILELISTONLY,RESTORE HEADERONLY,RESTORE LABELONLY eRESTORE VERIFYONLY.

Especifica que o SQL Server liberte e recue a fita. REWIND é o padrão.

NOREWIND
Suportado por:RESTORE e RESTORE VERIFYONLY

Especificar o NOREWIND em qualquer outra instrução de restauro gera um erro.

Especifica que o SQL Server manterá a fita aberta após a operação de backup. Pode usar esta opção para melhorar o desempenho ao realizar múltiplas operações de backup numa fita.

NOREWIND implica NOUNLOAD, e estas opções são incompatíveis dentro de uma única instrução RESTORE.

Note

Se usar NOREWIND, a instância do SQL Server mantém a propriedade da unidade de fita até que uma instrução BACKUP ou RESTORE a correr no mesmo processo use a opção REWIND ou UNLOAD, ou até que a instância do servidor seja desligada. Manter a fita aberta impede que outros processos acessem a fita. Para informações sobre como mostrar uma lista de fitas abertas e fechar uma fita aberta, consulte Backup Devices (SQL Server).

{ DESCARREGAR | DESCARREGAR }

Suportado por:RESTORE,RESTORE FILELISTONLY,RESTORE HEADERONLY,RESTORE LABELONLY, RESTORE REWINDONLY eRESTORE VERIFYONLY.

Estas opções são usadas apenas para dispositivos TAPE. Se estiver a ser usado um dispositivo que não seja fita, estas opções são ignoradas.

Note

UNLOAD/NOUNLOAD é uma definição de sessão que persiste durante toda a duração da sessão ou até ser reiniciada, especificando a opção oposta.

DESCARREGAR
Especifica que a fita é automaticamente rebobinada e descarregada quando o backup é concluído. DESCARREGAR é o padrão quando uma sessão começa.

NOUNLOAD
Especifica que, após a operação de RESTORATION, a fita permanece carregada na unidade de fita.

<replication_WITH_option>

Essa opção só será relevante se o banco de dados tiver sido replicado quando o backup foi criado.

KEEP_REPLICATION
Suportado por:RESTORE

Use KEEP_REPLICATION ao configurar a replicação para funcionar com o transporte de logs. Impede que as definições de replicação sejam removidas quando uma cópia de segurança da base de dados ou de registos é restaurada num servidor de espera quente e a base de dados é recuperada. Especificar esta opção ao restaurar um backup com a opção NORECOVERY não é permitido. Para garantir que a replicação funciona corretamente após a restauração:

  • As msdb bases de dados e master no servidor de espera quente devem estar sincronizadas com as msdb bases de dados e master no servidor principal.

  • O servidor warm standby deve ser renomeado para usar o mesmo nome do servidor principal.

<change_data_capture_WITH_option>

Esta opção só é relevante se a base de dados estivesse ativada para captura de dados de alteração quando a cópia de segurança foi criada.

KEEP_CDC

Suportado por:RESTORE

KEEP_CDC devem ser usados para evitar que as definições de captura de dados alterados sejam removidas quando uma cópia de segurança de base de dados ou de registos é restaurada noutro servidor e a base de dados é recuperada. Especificar esta opção ao restaurar um backup com a opção NORECOVERY não é permitido.

Restaurar a base de dados com KEEP_CDC não cria os trabalhos de captura de dados de alteração. Para extrair alterações do registo após restaurar a base de dados, recrie o trabalho de captura e o trabalho de limpeza da base de dados restaurada. Para informações, veja sys.sp_cdc_add_job (Transact-SQL).

Para informações sobre a utilização da captura de dados de alteração com espelhamento de base de dados, consulte Captura de Dados de Alteração e Outras Funcionalidades SQL Server.

<service_broker_WITH_options>

Ativa ou desativa a entrega de mensagens do Service Broker ou define um novo identificador de Service Broker. Esta opção só é relevante se o Service Broker estivesse ativado (ativado) para a base de dados quando o backup foi criado.

{ ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER }

Suportado por:RESTORE DATABASE

ENABLE_BROKER
Especifica que a entrega de mensagens pelo Service Broker está ativada no final da restauração para que as mensagens possam ser enviadas imediatamente. Por defeito, a entrega de mensagens pelo Service Broker está desativada durante uma restauração. O banco de dados mantém o identificador existente do Service Broker.

ERROR_BROKER_CONVERSATIONS
Termina todas as conversas com um erro informando que o banco de dados está anexado ou restaurado. Isto permite que as suas aplicações façam uma limpeza regular das conversas existentes. A entrega de mensagens pelo Service Broker é desativada até que esta operação seja concluída, e depois é ativada. O banco de dados mantém o identificador existente do Service Broker.

NEW_BROKER
Especifica que a base de dados deve ser atribuída a um novo identificador de Service Broker. Como a base de dados é considerada um novo Service Broker, as conversas existentes na base de dados são imediatamente removidas sem produzir mensagens de diálogo final. Qualquer rota que faça referência ao antigo identificador de Service Broker deve ser recriada com o novo identificador.

<point_in_time_WITH_options>

Suportado por:RESTORE {DATABASE|LOG} e apenas para os modelos de recuperação completo ou em bloco.

Pode restaurar uma base de dados para um ponto específico no tempo ou transação, especificando o ponto de recuperação alvo numa cláusula STOPAT, STOPATMARK ou STOPBEFOREMARK. Um tempo ou transação especificado é sempre restaurado a partir de uma cópia de segurança de log. Em cada instrução RESTORE LOG da sequência de restauro, deve especificar o seu tempo ou transação alvo numa cláusula idêntica STOPAT, STOPATMARK ou STOPBEFOREMARK.

Como pré-requisito para uma restauração pontual no tempo, deve primeiro restaurar uma cópia de segurança completa da base de dados cujo ponto final seja anterior ao ponto de recuperação alvo. Para o ajudar a identificar qual backup da base de dados deve restaurar, pode opcionalmente especificar a sua cláusula WITH STOPAT, STOPATMARK ou STOPBEFOREMARK numa instrução RESTORE DATABASE para gerar um erro caso uma cópia de segurança de dados seja demasiado recente para o tempo alvo especificado. Mas a cópia de segurança completa dos dados é sempre restaurada, mesmo que contenha o tempo alvo.

Note

As opções de RESTORE_DATABASE e RESTORE_LOG WITH num momento são semelhantes, mas só o RESTORE LOG suporta o argumento mark_name .

{ STOPAT | STOPATMARK | STOPBEFOREMARK }

STOPAT = { 'datetime' | @_datetime_var* }
Especifica que a base de dados deve ser restaurada ao estado em que se encontrava na data e hora especificadas pelo parâmetro data-hora ou @datetime_var . Para informações sobre a especificação de uma data e hora, consulte Tipos e Funções de Data e Hora (Transact-SQL).

Se for usada uma variável para STOPAT, a variável deve ser varchar, char, smalldatetime ou datatime . Apenas os registos do registo de transações escritos antes da data e hora especificadas são aplicados à base de dados.

Note

Se o tempo STOPAT especificado for após a última cópia de segurança do LOG, a base de dados fica no estado não recuperado, tal como se o RESTORE LOG fosse executado com o NORECOVERY.

Para obter mais informações, consulte Restaurar uma Base de Dados do SQL Server para um Ponto no Tempo (Modelo de Recuperação Completa).

STOPATMARK = { 'mark_name' | 'lsn:lsn_number' } [ DEPOIS do 'datetime' ]
Especifica a recuperação até um ponto de recuperação especificado. A transação especificada é incluída na recuperação, mas só é comprometida se foi originalmente comprometida quando a transação foi efetivamente gerada.

Tanto RESTORE DATABASE como RESTORE LOG suportam o parâmetro lsn_number . Este parâmetro especifica um número de sequência logarítmica.

O parâmetro mark_name é suportado apenas pela instrução RESTORE LOG. Este parâmetro identifica uma marca de transação no backup do log.

Numa instrução RESTORE LOG, se DEPOIS da data-hora for omitida, a recuperação para no primeiro marcador com o nome especificado. Se APÓS a data-hora for especificada, a recuperação termina na primeira marca com o nome especificado exatamente na data ou depois dela.

Note

Se a marca, LSN ou tempo especificados for após a última cópia de segurança do LOG, a base de dados fica no estado não recuperado, tal como se o RESTORE LOG fosse executado com o NORECOVERY.

Para mais informações, veja Use Transações Marcadas para Recuperar Bases de Dados Relacionadas 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' } [ DEPOIS de 'hora do encontro' ]
Especifica a recuperação até um ponto de recuperação especificado. A transação especificada não é incluída na recuperação e é revertida quando se utiliza WITH RECOVERY.

Tanto RESTORE DATABASE como RESTORE LOG suportam o parâmetro lsn_number . Este parâmetro especifica um número de sequência logarítmica.

O parâmetro mark_name é suportado apenas pela instrução RESTORE LOG. Este parâmetro identifica uma marca de transação no backup do log.

Numa instrução RESTORE LOG, se APÓS a data-hora for omitida, a recuperação para pouco antes da primeira marca com o nome especificado. Se APÓS a data-hora for especificada, a recuperação para pouco antes da primeira marca com o nome especificado exatamente na data ou depois dela.

Importante

Se uma sequência de restauro parcial excluir qualquer grupo de ficheiros FILESTREAM, a restauração pontual no tempo não é suportada. Você pode forçar a sequência de restauração a continuar. No entanto, os grupos de ficheiros FILESTREAM que são omitidos na instrução RESTORE nunca podem ser restaurados. Para forçar uma restauração num momento no tempo, especifique a opção CONTINUE_AFTER_ERROR juntamente com a opção STOPAT, STOPATMARK ou STOPBEFOREMARK. Se você especificar CONTINUE_AFTER_ERROR, a sequência de restauração parcial será bem-sucedida e o grupo de arquivos FILESTREAM se tornará irrecuperável.

Conjuntos de resultados

Para conjuntos de resultados, consulte os seguintes artigos:

Observações

Para observações adicionais, consulte os seguintes artigos:

Especificação de um conjunto de backup

Um conjunto de backup contém o backup de uma única operação de backup bem-sucedida. AS INSTRUÇÕES RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY e RESTORE VERIFYONLY operam num único conjunto de backup dentro do conjunto de media no dispositivo ou dispositivos de backup especificados. Deves especificar a cópia de segurança que precisas a partir do conjunto multimédia. Pode obter a backup_set_file_number de um conjunto de backup usando a instrução RESTORE HEADERONLY .

A opção para especificar o conjunto de backup a restaurar é:

FILE ={ backup_set_file_number | @backup_set_file_number }

Onde backup_set_file_number indica a posição do backup no conjunto de suportes. Um backup_set_file_number de 1 (FILE = 1) indica o primeiro conjunto de backup no meio de backup e um backup_set_file_number de 2 (FILE = 2) indica o segundo conjunto de backup, e assim sucessivamente.

O comportamento desta opção varia consoante a afirmação, conforme descrito na tabela seguinte:

Declaração Comportamento da opção FILE do conjunto de backup
RESTORE O número padrão do ficheiro do conjunto de backup é 1. Apenas uma opção de ficheiro de backup é permitida numa instrução RESTORE. É importante especificar conjuntos de backup por ordem.
RESTAURAR FILELISTONLY O número padrão do ficheiro do conjunto de backup é 1.
RESTAURAR HEADERONLY Por defeito, todos os conjuntos de backup no conjunto de media são processados. O conjunto de resultados RESTORE HEADERONLY devolve informações sobre cada conjunto de backup, incluindo a sua Posição no conjunto de meios. Para devolver informação num dado conjunto de backup, use o seu número de posição como valor backup_set_file_number na opção FILE.

Nota: Para suportes de fita, o RESTORE HEADER processa apenas conjuntos de backup na fita carregada.
RESTAURAR VERIFICAAPENAS A backup_set_file_number padrão é 1.

Note

A opção FILE para especificar um conjunto de backup não está relacionada com a opção FILE para especificar um ficheiro de base de dados, FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.

Resumo do suporte para opções WITH

As seguintes opções WITH são suportadas apenas pela instrução RESTORE: BLOCKSIZE, BUFFERCOUNT, MAXTRANSFERSIZE, PARTIAL, KEEP_REPLICATION, { RECOVERY | SEM RECUPERAÇÃO | AGUARDAR }, SUBSTITUIR, REINICIAR, RESTRICTED_USER, e { STOPAT | STOPATMARK | STOPBEFOREMARK }

Note

A opção PARTIAL é suportada apenas pelo RESTORE DATABASE.

A tabela seguinte lista as opções WITH usadas por uma ou mais instruções e indica quais as instruções que suportam cada opção. Um visto de verificação (√) indica que uma opção é suportada; um traço (-) indica que uma opção não é suportada.

COM opção RESTORE RESTAURAR FILELISTONLY RESTAURAR HEADERONLY RESTAURAR LABELONLY RESTAURAR REWINDONLY RESTAURAR VERIFICAAPENAS
{ SOMA DE VERIFICAÇÃO

| NO_CHECKSUM }
-
{ CONTINUE_AFTER_ERROR

| STOP_ON_ERROR }
-
FICHEIRO 1 - -
HISTÓRICO DE CARGA - - - - -
MEDIANAME -
MEDIAPASSWORD -
MUDANÇA - - - -
PALAVRA-PASSE - -
{ REBOBINAR | NOREWIND } Só REBOBINAR Só REBOBINAR Só REBOBINAR -
ESTATÍSTICAS - - - -
{ DESCARREGAR | NOUNLOAD }

1 FICHEIRO= backup_set_file_number, que é distinto de {FICHEIRO | FILEGROUP}.

Permissions

Para permissões, consulte os seguintes artigos:

Exemplos

Para exemplos, veja os seguintes artigos:

Passos seguintes