Argumentos de RESTORE (Transact-SQL)

Este tópico documenta os argumentos descritos nas seções Sintaxe da instrução RESTORE {DATABASE|LOG} e do conjunto associado de instruções auxiliares: RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY e RESTORE 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 correspondente.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Argumentos

  • DATABASE
    Suportado 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 um backup do final do log antes da restauração do banco de dados. Restaurar um banco de dados sem antes fazer backup do final do log resultará em um erro, a não ser que a instrução RESTORE DATABASE contenha a cláusula WITH REPLACE ou WITH STOPAT, que deve especificar uma hora ou uma transação que ocorreu após o final dos backup de dados. Para obter mais informações sobre backups da parte final do log, consulte Backups da parte final do log.

  • LOG
    Suportado por: RESTORE

    Especifica que um backup do log de transações será aplicado a este banco de dados. Os logs de transações 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çãoObservação

    Normalmente, o último log restaurado é o backup do final do log. Um backup do final do log é um backup 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, consulte Backups da parte final do log.

    Para obter mais informações, consulte Trabalhando com backups de log de transações.

  • { database_name | **@**database_name_var}
    Suportado por: RESTORE

    É o banco de dados no qual o log ou banco de dados completo é restaurado. Se 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, com exceção dos tipos de dados ntext ou text.

  • <file_or_filegroup_or_page> [ ,...n ]
    Suportado por: RESTORE

    Especifica o nome de uma página, grupo de arquivos ou arquivo lógico a ser incluído em uma instrução RESTORE DATABASE ou RESTORE 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 expirado).

    Para um banco de dados que usa o modelo de recuperação completa ou bulk-logged, após usar RESTORE DATABASE para restaurar um ou mais arquivos, e/ou páginas, normalmente você deve aplicar o log de transações nos arquivos que contêm os dados restaurados. A aplicação do log torna esses arquivos consistentes com o restante do banco de dados. As exceções são as seguintes:

    • Se os arquivos que estão sendo restaurados eram somente leitura antes do último backup feito, um log de transações não precisará ser aplicado e a instrução RESTORE informará 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.

      Observação   FILEGROUP é permitido no modelo de recuperação simples apenas se o grupo de arquivos especificado for somente leitura e esta for uma restauração parcial (isto é, se WITH PARTIAL for usada). 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çãoObservação

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

      Para obter mais informações sobre restauração de página, consulte Executando restaurações de página.

    • [ ,...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. Como alternativa, em uma instrução RESTORE DATABASE, a cláusula FROM pode especificar o nome de um instantâneo do banco de dados para o qual você está revertendo o banco de dados e, nesse caso, 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.

Suportado 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 na 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 fornecido como uma variável (**@**logical_backup_device_name_var), o nome do dispositivo de backup pode ser especificado como uma constante de cadeia de caracteres (**@**logical_backup_device_name_var = logical_backup_device_name) ou como uma variável de tipo de dados de cadeia de caracteres, com exceção dos ntext ou tipos de dados 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 dispositivos de disco e fita devem ser especificados com o nome real (por exemplo, caminho completo e nome de arquivo) do dispositivo: DISK = 'Z:\\SQLServerBackups\\AdventureWorks2008R2.bak' ou TAPE = '\\\\.\\TAPE0'. Se especificado como uma variável (**@**physical_backup_device_name_var), o nome do dispositivo de backup pode ser especificado como uma constante de cadeia de caracteres (**@**physical_backup_device_name_var = 'physcial_backup_device_name') ou como uma variável de tipo de dados de cadeia de caracteres, com exceção dos tipos de dados ntext ou text.
            
            Se estiver usando um servidor de rede com um nome UNC (que deve conter o nome da máquina), especifique um tipo de dispositivo de disco. Para obter mais informações sobre como usar os nomes UNC, consulte [Dispositivos de backup](ms179313\(v=sql.105\).md).
            
            A conta sob a qual você está executando o SQL Server deve ter acesso READ ao computador remoto ou servidor de rede para executar uma operação RESTORE.
    
      - n  
        É um espaço reservado que indica que até 64 dispositivos de backup podem ser especificados em uma lista separada por vírgulas.
        
        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 offline permite que um backup seja restaurado usando menos dispositivos que os usados para criar o backup.
        
          - A restauração online requer todos os dispositivos do 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 na máquina.
        
        Para obter mais informações, consulte [Trabalhando com mídia de backup no SQL Server](ms191316\(v=sql.105\).md).
    
    <div class="alert">
    
    <table>
    <colgroup>
    <col style="width: 100%" />
    </colgroup>
    <thead>
    <tr class="header">
    <th><img src="images/ms191295.alert_note(pt-br,SQL.105).gif" title="Observação" alt="Observação" class="note" /><strong>Observação</strong></th>
    </tr>
    </thead>
    <tbody>
    <tr class="odd">
    <td><p>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. É possível 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.</p></td>
    </tr>
    </tbody>
    </table>
    
    </div>

  - \<database_snapshot\>::=  

Suportado por: RESTORE DATABASE

      - DATABASE_SNAPSHOT **=**database_snapshot_name  
        Reverte o banco de dados ao 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](ms186858\(v=sql.105\).md).

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, consulte "Resumo de suporte para opções WITH" posteriormente neste tópico.

ObservaçãoObservação

As opções WITH são organizadas aqui na mesma ordem como na seção "Sintaxe" em RESTORE {DATABASE|LOG}.

  • PARTIAL
    Suportado 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 instruções RESTORE LOG.

    A partir do SQL Server 2005, 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 Executando restauração por etapas.

    ObservaçãoObservação

    O estágio inicial de uma restauração por etapas substitui a restauração parcial do banco de dados no Microsoft SQL Server 2000. Uma restauração parcial do banco de dados era projetada para restaurar apenas uma parte danificada de um banco de dados (um subconjunto de grupos de arquivos) em um novo local de forma que os dados danificados ou ausentes possam ser copiados para o banco de dados original. Um banco de dados restaurado parcialmente não era projetado para uso como um banco de dados de produção e, para melhorar o desempenho, RESTORE ignorava muitas das verificações normais de segurança. No entanto, no SQL Server 2005 e em versões posteriores, a opção PARTIAL executa essas verificações de segurança.

  • [ RECOVERY | NORECOVERY | STANDBY ]
    Suportado 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 de RESTORE (RESTORE LOG ou RESTORE DATABASE de diferencial) forem planejadas, NORECOVERY ou STANDBY deverão ser especificadas no lugar.

      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, consulte Aplicando backups de log de transações.

      ObservaçãoObservaçã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 do banco de dados e um ou mais logs de transações ou sempre que várias instruções RESTORE forem necessárias (por exemplo, ao restaurar um backup completo seguido por um backup diferencial do banco de dados), RESTORE requer a opção WITH NORECOVERY em todas as instruções, menos na RESTORE final. A prática recomendada é usar WITH NORECOVERY em TODAS as instruções em uma sequência de restauração de várias etapas até que o ponto de recuperação desejado seja atingido e, em seguida, usar uma instrução RESTORE WITH RECOVERY separada 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 casos RESTORE WITH NORECOVERY efetua o conjunto de roll-forward com avanço suficiente para ficar 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.

      ObservaçãoObservação

      No SQL Server 2000, esse arquivo era conhecido como o "arquivo de desfazer".

      O arquivo em espera é usado para manter uma pré-imagem de "cópia na gravação" durante a fase de desfazer 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 operação RESTORE WITH STANDBY, o arquivo desfazer é excluído automaticamente pela próxima operação RESTORE. Se esse arquivo em espera for excluído manualmente antes da próxima operação RESTORE, o banco de dados inteiro deverá 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.

      Observação importanteImportante

      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 obter uma comparação de RECOVERY e NORECOVERY, consulte a seção "Comentários" em RESTORE.

  • LOADHISTORY
    Suportado 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, para o ú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, consulte Tabelas do sistema (Transact-SQL).

<general_WITH_options> [ ,...n ]

Todas as opções gerais de WITH têm suporte nas instruções RESTORE DATABASE e RESTORE LOG. Algumas dessas opções também têm suporte de uma ou mais instruções auxiliares, conforme observado a seguir.

Opções da operação de restauração

Essas opções afetam o comportamento da operação de restauração.

  • MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ...n ]
    Suportado por: RESTORE e RESTORE VERIFYONLY

    Especifica que os dados ou o arquivo de log cujo nome lógico é especificado pelo logical_file_name_in_backup devem ser movidos restaurando-os para o local especificado por operating_system_file_name. O nome do arquivo lógico de dados ou de log em um conjunto de backup corresponde a 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 todos os arquivos lógicos que você quer restaurar do conjunto de backup para um novo local. Por padrão, o arquivo logical_file_name_in_backup é restaurado para seu local original.

    ObservaçãoObservação

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

    Se uma instrução RESTORE for usada para relocar um banco de dados no mesmo servidor ou copiá-lo para um servidor diferente, a opção MOVE poderá ser necessária para relocar os arquivos do banco de dados e para evitar colisões com os arquivos existentes.

    Quando usada com RESTORE LOG, a opção MOVE pode ser usada apenas para relocar arquivos que foram adicionados durante o intervalo coberto pelo log que está sendo restaurado. Por exemplo, se o backup do log contiver uma operação de adição de arquivo para o arquivo file23, esse arquivo poderá ser relocado usando a opção MOVE em RESTORE LOG.

    Se uma instrução RESTORE VERIFYONLY for usada quando você planejar relocar um banco de dados no mesmo servidor ou copiá-lo para um servidor diferente, a opção MOVE poderá ser necessária para verificar se há espaço suficiente disponível no destino e para identificar potenciais colisões com arquivos existentes.

    Para obter mais informações, consulte Copiando bancos de dados com backup e restauração.

  • REPLACE
    Suportado 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 instrução RESTORE DATABASE não restaurará o banco de dados no servidor atual, se existirem as seguintes condições:

    • O banco de dados nomeado na instrução RESTORE já existe no servidor atual, e

    • O nome do banco de dados é diferente do nome de banco de dados registrado no conjunto de backup.

    REPLACE também permite que RESTORE substitua um arquivo existente que não pode ser verificado como pertencente ao banco de dados que está sendo restaurado. Normalmente, RESTORE se recusa a substituir arquivos preexistentes. WITH REPLACE também pode ser usado da mesma maneira para a opção RESTORE LOG.

    REPLACE também substitui o requisito de fazer backup do log final antes da restauração do banco de dados.

    Para obter mais informações, consulte Usando a opção REPLACE.

  • RESTART
    Suportado 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
    Suportado por: RESTORE.

    Restringe acesso para o banco de dados recém-restaurado a membros das funções db_owner, dbcreatorou sysadmin. RESTRICTED_USER substitui a opção DBO_ONLY. DBO_ONLY foi descontinuado com o SQL Server 2008.

    Use com a opção RECOVERY.

    Para obter mais informações, consulte Definindo opções do banco de dados.

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 }
    Suportado 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 o backup_set_file_number de um backup definido com o uso da instrução RESTORE HEADERONLY.

    Quando não especificado, o padrão é 1, com exceção de RESTORE HEADERONLY em cujo caso todos os conjuntos de backup no conjunto de mídias são processados. Para obter mais informações, consulte "Especificando um conjunto de backup", mais adiante neste tópico.

    Observação importanteImportante

    Essa opção FILE não está relacionada à opção FILE para especificar um arquivo do banco 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 e RESTORE VERIFYONLY.

    Fornece a senha do conjunto de backup. A senha de um conjunto de backup é uma cadeia de caracteres.

    ObservaçãoObservação

    Esse recurso será removido em uma versão futura do Microsoft 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.

    Observação importanteImportante

    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.

Opções de conjunto de mídias

Estas opções funcionam no conjunto de mídias como um todo.

  • MEDIANAME = { media_name | **@**media_name_variable}
    Suportado 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 fornecido na instrução RESTORE, a verificação de um nome de mídia correspondente nos volumes de backup não será executada.

    Observação importanteImportante

    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 }
    Suportado 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çãoObservação

    Esse recurso será removido em uma versão futura do Microsoft 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.

    Observação importanteImportante

    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.

  • BLOCKSIZE = { blocksize | **@**blocksize_variable }
    Suportado 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 ao 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çãoObservaçã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 }
    Suportado 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 }
    Suportado 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).

Opções de gerenciamento de erros

Essas opções permitem determinar se somas de verificação de backup são permitidas para a operação de restauração e se a operação será parada quando um erro for encontrado.

  • { CHECKSUM | NO_CHECKSUM }
    Suportado 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çãoObservaçã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 uma soma de verificação inválida, RESTORE relata um erro de soma de verificação e para. No entanto, se você especificar CONTINUE_AFTER_ERROR, a operação RESTORE continuará após retornar um erro de soma de verificação e o número da página que contém a soma de verificação inválida, se o dano permitir.

      Para obter mais informações sobre como trabalhar com somas de verificação de backup, consulte Detectando e lidando com erros de mídia durante backup e restauração.

    • NO_CHECKSUM
      Desabilita explicitamente a validação de somas de verificação pela operação de restauração.

  • { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }
    Suportado 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, com exceção de VERIFYONLY que tem CONTINUE_AFTER_ERROR como o padrão.

    • CONTINUE_AFTER_ERROR
      Determina que a operação de restauração deve continuar depois que um erro for encontrado.

      Para obter informações sobre como continuar apesar dos erros, consulte Respondendo a erros de restauração dos SQL Server causado por backups danificados.

      Se um backup contiver páginas danificadas, é 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 usando a opção CONTINUE_AFTER_ERROR da instrução RESTORE e tentar salvar os dados.

Opções de monitoramento

Essas opções permitem monitorar a transferência de dados do dispositivo de backup.

  • STATS [ = percentage ]
    Suportado 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 por cento (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 não fita estiver sendo usado, essas opções serão ignoradas.

  • { REWIND | 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
      Suportado 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
      Suportado por: RESTORE e RESTORE VERIFYONLY

      A especificação de NOREWIND em qualquer outra restauração gera um erro.

      Especifica que o SQL Server manterá 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 em NOUNLOAD e essas opções são incompatíveis dentro de uma única instrução RESTORE.

      ObservaçãoObservação

      Se NOREWIND for usado, a instância do SQL Server reterá a propriedade da unidade de fita até que uma instrução BACKUP ou RESTORE em execução no mesmo processo use a opção REWIND ou UNLOAD ou que a instância do servidor seja encerrada. 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, consulte Dispositivos de backup.

  • { UNLOAD | NOUNLOAD}
    Suportado 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çãoObservação

    UNLOAD/NOUNLOAD é uma configuração de sessão que persiste durante o tempo de vida 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 depois da operação RESTORE a fita permanecerá carregada na unidade de fita.

<replication_WITH_option>

Essa opção será pertinente apenas se o banco de dados foi replicado quando o backup foi criado.

  • KEEP_REPLICATION
    Suportado por: RESTORE

    KEEP_REPLICATION deve ser usado 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 msdb e master no servidor em espera passiva devem estar sincronizados com os bancos de dados msdb e master no 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
    Suportado por: RESTORE

    KEEP_CDC deve ser usada para impedir que as configurações de Change Data Capture 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 criará os trabalhos de Change Data Capture. 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).

<service_broker_WITH_options>  [ ,...n ]

Ativa ou desativa a entrega de mensagens do Service Broker ou define um novo identificador do Service Broker. Para obter informações sobre a entrega de mensagens e identificadores do Service Broker, consulte Gerenciando identidades do Service Broker. Essa opção será relevante apenas se o Service Broker estava habilitado (ativado) para o banco 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 do Service Broker será ativada no final da restauração para que as mensagens possam ser enviadas imediatamente. Por padrão, a entrega de mensagens do Service Broker é 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>

Suportado por: RESTORE {DATABASE|LOG} e apenas para os modelos de recuperação completa e de bulk-logged.

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 instrução RESTORE LOG da sequência de restauração, você deve especificar a transação ou o tempo de destino em uma cláusula STOPAT, STOPATMARK ou STOPBEFOREMARK idêntica.

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, opcionalmente, você pode especificar a cláusula WITH STOPAT, STOPATMARK ou STOPBEFOREMARK em uma instrução RESTORE DATABASE para gerar um erro, se um backup de dados for muito recente para o tempo de destino especificado. Mas o backup de dados completo é sempre restaurado, mesmo que ele contenha o tempo de destino.

ObservaçãoObservação

As opções RESTORE_DATABASE e RESTORE_LOG point-in-time WITH são semelhantes, mas apenas RESTORE LOG oferece suporte ao 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, consulte Usando dados de data e hora.

      Se uma variável for usada para STOPAT, ela deverá ser de tipo de dados varchar, char, smalldatetimeou datetime. Apenas registros do log de transações gravados antes da data e hora especificadas são aplicados ao banco de dados.

      ObservaçãoObservação

      Se a hora STOPAT for após o último backup do LOG, o banco de dados será deixado no estado sem-recuperação, exatamente como se RESTORE LOG fosse executado com NORECOVERY.

      Para obter mais informações, consulte Restaurando um banco de dados para um ponto em um backup.

    • 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.

      RESTORE DATABASE e RESTORE LOG oferecem suporte ao parâmetro lsn_number. Esse parâmetro especifica um número de sequência de log.

      O parâmetro mark_name tem suporte apenas da instrução RESTORE LOG. Esse parâmetro identifica uma marca de transação no backup de log.

      Em uma instrução RESTORE LOG, se AFTER datetime for omitido, a recuperação parará na primeira marca com o nome especificado. Se AFTER datetime estiver especificado, a recuperação será parada na primeira marca que tem o nome especificado exatamente ou após datetime.

      ObservaçãoObservação

      Se a marca especificada, LSN ou hora for após o último backup do LOG, o banco de dados será deixado no estado não recuperado, exatamente como se RESTORE LOG fosse executado com NORECOVERY.

      Para obter mais informações, consulte Usando transações marcadas (modelo de recuperação completa) e Recuperação para um número de sequência de log (LSN).

    • 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.

      RESTORE DATABASE e RESTORE LOG oferecem suporte ao parâmetro lsn_number. Esse parâmetro especifica um número de sequência de log.

      O parâmetro mark_name tem suporte apenas da instrução RESTORE LOG. Esse parâmetro identifica uma marca de transação no backup de log.

      Em uma instrução RESTORE LOG, se AFTER datetime for omitido, a recuperação parará exatamente antes da primeira marca com o nome especificado. Se AFTER datetime estiver especificado, a recuperação será parada exatamente antes da primeira marca que tem o nome especificado exatamente ou após datetime.

    Observação importanteImportante

    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. É possível forçar a sequência de restauração a continuar. Contudo, os grupos de arquivos FILESTREAM omitidos da instrução RESTORE nunca poderão 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 obter conjuntos de resultados, consulte os tópicos a seguir:

Comentários

Para obter comentários adicionais, consulte os tópicos a seguir:

Especificando 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 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 o backup_set_file_number de um backup definido com o uso da instrução RESTORE HEADERONLY.

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 de 1 (FILE = 1) indica o primeiro conjunto de backup na mídia de backup e um backup_set_file_number de 2 (FILE = 2) indica o segundo conjunto de backup e assim por diante.

O comportamento dessa opção varia dependendo da instrução, conforme descrito na tabela a seguir.

Instrução

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 FILE de conjunto de backup é permitida em uma instrução RESTORE. É 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 conjunto de resultados de RESTORE HEADERONLY retorna informações sobre cada conjunto de backup, incluindo sua Posição no conjunto de mídias. Para retornar informações sobre um determinado conjunto de backup, use o número de sua posição como o valor de backup_set_file_number na opção FILE.

ObservaçãoObservação
Para mídia de fita, RESTORE HEADER processa conjuntos de backup na fita carregada.

RESTORE VERIFYONLY

O backup_set_file_number padrão é 1.

ObservaçãoObservação

A opção FILE para especificar um conjunto de backup não está relacionada à opção FILE para especificar um arquivo do banco de dados, FILE= { logical_file_name_in_backup | @logical_file_name_in_backup_var }.

Resumo de suporte para opções WITH

As opções WITH a seguir têm suporte apenas da instrução RESTORE: BLOCKSIZE, BUFFERCOUNT, MAXTRANSFERSIZE, PARTIAL, KEEP_REPLICATION, { RECOVERY | NORECOVERY | STANDBY }, REPLACE, RESTART, RESTRICTED_USER e { STOPAT | STOPATMARK | STOPBEFOREMARK }

ObservaçãoObservação

A opção PARTIAL tem suporte apenas de RESTORE DATABASE.

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

{ REWIND | NOREWIND }

Apenas REWIND

Apenas REWIND

Apenas REWIND

STATS

{UNLOAD | NOUNLOAD}

1 FILE **=**backup_set_file_number que é distinto de {FILE | FILEGROUP}.

Exemplos

Para obter exemplos, consulte os tópicos a seguir: