Instruções RESTORE (Transact-SQL)
Restaura backups do banco de dados SQL feitos com o comando BACKUP.
Selecionar um produto
Na linha a seguir, selecione o nome do produto em que você tem interesse e somente as informações do produto serão exibidas.
Para obter mais informações sobre as convenções de sintaxe, confira Convenções de sintaxe Transact-SQL.
* SQL Server *
SQL Server
Esse comando permite executar os seguintes cenários de restauração:
- Restaurar um banco de dados inteiro de um backup de banco de dados completo (uma restauração completa).
- Restaurar parte de um banco de dados (uma restauração parcial).
- Restaurar arquivos ou grupos de arquivos específicos para um banco de dados (uma restauração de arquivo).
- Restaurar páginas específicas para um banco de dados (uma restauração de página).
- Restaurar um log de transações em um banco de dados (uma restauração de log de transações).
- Reverter um banco de dados ao momento determinado capturado por um instantâneo do banco de dados.
Outros recursos
- Para obter informações sobre o cenários de restauração do SQL Server, consulte Visão geral da restauração e recuperação.
- Ao restaurar um banco de dados de outra instância, considere as informações descritas em Gerenciar metadados ao disponibilizar um banco de dados em outra instância do servidor (SQL Server).
- Para obter mais informações sobre a restauração do Armazenamento de Blobs do Microsoft Azure, confira Backup e restauração do SQL Server com o Armazenamento de Blobs do Microsoft Azure.
- O backup e a restauração no armazenamento de objetos compatível com o S3 foram introduzidos no SQL Server 2022 (16.x). Para obter mais informações sobre a restauração do armazenamento de objetos compatível com o S3, confira Backup e restauração do SQL Server com armazenamento de objetos compatível com o S3. Confira também a opção Backup do SQL Server na URL para armazenamento de objetos compatível com S3.
Sintaxe
- Para obter mais informações sobre descrições dos argumentos, consulte Argumentos RESTORE.
--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
[ FROM <backup_device> [ ,...n ] ]
[ WITH
{
[ RECOVERY | NORECOVERY | STANDBY =
{standby_file_name | @standby_file_name_var }
]
| , <general_WITH_options> [ ,...n ]
| , <replication_WITH_option>
| , <change_data_capture_WITH_option>
| , <FILESTREAM_WITH_option>
| , <service_broker_WITH options>
| , <point_in_time_WITH_options-RESTORE_DATABASE>
} [ ,...n ]
]
[;]
--To perform the first step of the initial restore sequence of a piecemeal restore:
RESTORE DATABASE { database_name | @database_name_var }
<files_or_filegroups> [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
PARTIAL, NORECOVERY
[ , <general_WITH_options> [ ,...n ]
| , <point_in_time_WITH_options-RESTORE_DATABASE>
] [ ,...n ]
[;]
--To Restore Specific Files or Filegroups:
RESTORE DATABASE { database_name | @database_name_var }
<file_or_filegroup> [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
{
[ RECOVERY | NORECOVERY ]
[ , <general_WITH_options> [ ,...n ] ]
} [ ,...n ]
[;]
--To Restore Specific Pages:
RESTORE DATABASE { database_name | @database_name_var }
PAGE = 'file:page [ ,...n ]'
[ , <file_or_filegroups> ] [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
NORECOVERY
[ , <general_WITH_options> [ ,...n ] ]
[;]
--To Restore a Transaction Log:
RESTORE LOG { database_name | @database_name_var }
[ <file_or_filegroup_or_pages> [ ,...n ] ]
[ FROM <backup_device> [ ,...n ] ]
[ WITH
{
[ RECOVERY | NORECOVERY | STANDBY =
{standby_file_name | @standby_file_name_var }
]
| , <general_WITH_options> [ ,...n ]
| , <replication_WITH_option>
| , <point_in_time_WITH_options-RESTORE_LOG>
} [ ,...n ]
]
[;]
--To Revert a Database to a Database Snapshot:
RESTORE DATABASE { database_name | @database_name_var }
FROM DATABASE_SNAPSHOT = database_snapshot_name
<backup_device>::=
{
{ logical_backup_device_name |
@logical_backup_device_name_var }
| { DISK
| TAPE
| URL
} = { 'physical_backup_device_name' |
@physical_backup_device_name_var }
}
<files_or_filegroups>::=
{
FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
| FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
| READ_WRITE_FILEGROUPS
}
<general_WITH_options> [ ,...n ]::=
--Restore Operation Options
MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
[ ,...n ]
| REPLACE
| RESTART
| RESTRICTED_USER | CREDENTIAL
--Backup Set Options
| FILE = { backup_set_file_number | @backup_set_file_number }
| PASSWORD = { password | @password_variable }
| [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]
--Media Set Options
| MEDIANAME = { media_name | @media_name_variable }
| MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
| BLOCKSIZE = { blocksize | @blocksize_variable }
--Data Transfer Options
| BUFFERCOUNT = { buffercount | @buffercount_variable }
| MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }
--Error Management Options
| { CHECKSUM | NO_CHECKSUM }
| { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }
--Monitoring Options
| STATS [ = percentage ]
--Tape Options.
| { REWIND | NOREWIND }
| { UNLOAD | NOUNLOAD }
<replication_WITH_option>::=
| KEEP_REPLICATION
<change_data_capture_WITH_option>::=
| KEEP_CDC
<FILESTREAM_WITH_option>::=
| FILESTREAM ( DIRECTORY_NAME = directory_name )
<service_broker_WITH_options>::=
| ENABLE_BROKER
| ERROR_BROKER_CONVERSATIONS
| NEW_BROKER
<point_in_time_WITH_options-RESTORE_DATABASE>::=
| {
STOPAT = { 'datetime'| @datetime_var }
| STOPATMARK = 'lsn:lsn_number'
[ AFTER 'datetime']
| STOPBEFOREMARK = 'lsn:lsn_number'
[ AFTER 'datetime']
}
<point_in_time_WITH_options-RESTORE_LOG>::=
| {
STOPAT = { 'datetime'| @datetime_var }
| STOPATMARK = { 'mark_name' | 'lsn:lsn_number' }
[ AFTER 'datetime']
| STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' }
[ AFTER 'datetime']
}
Argumentos
Para obter descrições dos argumentos, consulte Argumentos RESTORE.
Sobre cenários de restauração
O SQL Server dá suporte a vários cenários de restauração:
restauração completa do banco de dados
Restaura todo o banco de dados, começando com um backup completo do banco de dados, que pode ser seguido pela restauração de um backup diferencial do banco de dados (e backups de log). Para obter mais informações, consulte Restaurações completas de banco de dados – modelo de recuperação simples ou Restaurações completas de banco de dados – modelo de recuperação completa.
Restauração de arquivo
Restaura um arquivo ou grupo de arquivos em um banco de dados com vários grupos de arquivos. No modelo de recuperação simples, o arquivo deve pertencer a um grupo de arquivos somente leitura. Depois de uma restauração completa do arquivo, um backup de arquivo diferencial pode ser restaurado. Para obter mais informações, consulte Restaurações de arquivo – modelo de recuperação completa e Restaurações de arquivo – modelo de recuperação simples.
Restauração de página
Restaura páginas individuais. A restauração de página só está disponível nos modelos de recuperação completa e bulk-logged. Para obter mais informações, consulte Restaurar páginas – SQL Server.
Restauração por etapas
Restaura o banco de dados por etapas, começando com o grupo de arquivos primário e um ou mais grupos de arquivos secundários. Uma restauração por etapas começa com um RESTORE DATABASE, usando a opção PARTIAL e especificando um ou mais grupos de arquivos secundários a serem restaurados. Para obter mais informações, consulte Restaurações por etapas – SQL Server.
Somente recuperação
Recupera dados que já estão consistentes com o banco de dados e só precisam ser disponibilizados. Para obter mais informações, consulte Recuperar um banco de dados sem restaurar dados.
Restauração de log de transações.
No modelo de recuperação completa ou bulk-logged, a restauração de backups de log é exigida para alcançar o ponto de recuperação desejado. Para obter mais informações sobre backups de log de restaurações, consulte Aplicar backups de log de transações – SQL Server.
Preparar um banco de dados de disponibilidade para um Grupo de Disponibilidade AlwaysOn
Para obter mais informações, consulte Preparar um banco de dados secundário manualmente para um grupo de disponibilidade – SQL Server.
Preparar um banco de dados espelho para espelhamento de banco de dados
Para obter mais informações, consulte Preparar um banco de dados espelho para espelhamento – SQL Server.
Restauração online
Observação
A restauração online é permitida somente na edição Enterprise do SQL Server.
Quando houver suporte para a restauração online, se o banco de dados estiver online, restaurações de páginas e de arquivos serão automaticamente restaurações online e, também, restaurações de grupos de arquivos secundários após o estágio inicial de uma restauração por etapas.
Observação
As restaurações online podem envolver transações adiadas.
Para obter mais informações, consulte Restauração online – SQL Server.
Considerações adicionais sobre opções de RESTORE
Palavras-chave de RESTORE descontinuadas
As seguintes palavras-chave foram descontinuadas no SQL Server 2008 (10.0.x):
Palavra-chave descontinuada | Substituída por... | Exemplo de palavra-chave de substituição |
---|---|---|
LOAD | RESTORE | RESTORE DATABASE |
TRANSACTION | LOG | RESTORE LOG |
DBO_ONLY | RESTRICTED_USER | RESTORE DATABASE ... WITH RESTRICTED_USER |
RESTORE LOG
RESTORE LOG pode incluir uma lista de arquivos para permitir a criação de arquivos durante o roll forward. Isso é usado quando o backup de log contiver registros de log gravados quando um arquivo foi adicionado ao banco de dados.
Observação
Para um banco de dados que usa o modelo de recuperação completa ou bulk-logged, na maioria dos casos é necessário fazer 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 um momento ou transação que ocorreu após o final do backup de dados. Para obter mais informações sobre backups da parte final do log, consulte Backups da parte final do log – SQL Server.
Comparação de RECOVERY e NORECOVERY
A reversão é controlada pela instrução RESTORE nas opções [ RECOVERY | NORECOVERY ]:
NORECOVERY especifica que a reversão não ocorre. Isso permite que o roll forward continue com a próxima instrução na sequência.
Nesse caso, a sequência de restauração pode restaurar outros backups e efetuar roll forward neles.
RECOVERY (o padrão) indica que a reversão deve ser executada após a conclusão do roll forward no backup atual. Nenhum backup posterior pode ser restaurado. Selecione essa opção depois de restaurar todos os backups necessários.
A recuperação do banco de dados exige que todo o conjunto de dados que está sendo restaurado (o conjunto de roll forward) seja consistente com o banco de dados. Se o conjunto de roll forward não tiver ido longe o suficiente para ficar consistente com o banco de dados e RECOVERY estiver especificado, o Mecanismo de Banco de Dados emitirá um erro. Saiba mais sobre a recuperação de banco de dados em Visão geral da restauração e recuperação (SQL Server).
Suporte de compatibilidade
Os backups do master
, model
e msdb
que foram criados com uma versão anterior do SQL Server não podem ser restaurados pelo SQL Server.
Observação
Nenhum backup do SQL Server pode ser restaurado para uma versão anterior do SQL Server além da versão na qual o backup foi criado.
Cada versão do SQL Server usa um caminho padrão diferente das versões anteriores. Assim, para restaurar um banco de dados que foi criado no local padrão dos backups de versões anteriores, você deve usar a opção MOVE. Para obter informações sobre o novo caminho padrão, consulte Locais de arquivos para instâncias padrão e nomeadas do SQL Server.
Depois de você restaurar um banco de dados da versão anterior para o SQL Server, o banco de dados será atualizado automaticamente. Normalmente, o banco de dados se torna disponível imediatamente. No entanto, se um banco de dados do SQL Server 2005 (9.x) tiver índices de texto completo, o processo de atualização importará, redefinirá ou recriará esses índices, dependendo da configuração da propriedade de servidor upgrade_option. Se a opção de atualização for definida como importar (upgrade_option = 2) ou recriar (upgrade_option = 0), os índices de texto completo permanecerão indisponíveis durante a atualização. Dependendo da quantidade de dados a serem indexados, a importação pode levar várias horas e a recriação pode ser até dez vezes mais demorada. Lembre-se também de que, quando a opção de atualização estiver definida para importar, os índices de texto completo associados serão recriados se um catálogo de texto completo não estiver disponível. Para alterar a configuração da propriedade de servidor upgrade_option , use sp_fulltext_service.
Quando um banco de dados é anexado ou restaurado pela primeira vez a uma nova instância do SQL Server, uma cópia da chave mestra de banco de dados (criptografada pela chave mestra de serviço) ainda não está armazenada no servidor. É necessário usar a instrução OPEN MASTER KEY para descriptografar a DMK (chave mestra do banco de dados). Após a descriptografia da DMK, você tem a opção de habilitar a descriptografia automática no futuro usando a instrução ALTER MASTER KEY REGENERATE para provisionar o servidor com uma cópia da DMK criptografada com a SMK (chave mestra de serviço). Quando um banco de dados for atualizado de uma versão anterior, a DMK deverá ser regenerada para usar o algoritmo AES mais recente. Para obter mais informações sobre como regenerar a DMK, consulte ALTER MASTER KEY. O tempo necessário para regenerar a chave DMK para atualizar o AES depende do número de objetos protegidos pela DMK. É necessário regenerar a chave DMK para atualizar o AES somente uma vez, isso não tem impacto sobre regenerações futuras como parte de uma estratégia de rotação de chave.
Comentários
Durante uma restauração offline, se o banco de dados especificado estiver em uso, RESTORE forçará a saída do usuário depois de um pequeno atraso. Para restauração online de um grupo de arquivos não primário, o banco de dados pode permanecer em uso, exceto quando o grupo de arquivos que está sendo restaurado for colocado offline. Todos os dados no banco de dados especificado são substituídos pelos dados restaurados.
As operações de restauração entre plataformas, mesmo entre tipos diferentes de processadores, podem ser executadas desde que a ordenação do banco de dados tenha suporte no sistema operacional.
RESTORE pode ser reiniciado depois de um erro. Além disso, você pode instruir RESTORE a prosseguir, apesar dos erros, e ele restaura o máximo possível de dados (confira a opção CONTINUE_AFTER_ERROR
).
RESTORE não é permitido em uma transação explícita ou implícita.
A restauração de um banco de dados master
danificado é executada por meio de um procedimento especial. Para obter mais informações, consulte Fazer backup e restaurar bancos de dados do sistema.
Restaurar um banco de dados limpa o cache de planos para o banco de dados que está sendo restaurado. A limpeza do cache de planos gera uma recompilação de todos os planos de execução subsequentes e pode provocar uma redução repentina e temporária do desempenho de consultas.
Para restaurar um banco de dados de disponibilidade, primeiro restaure o banco de dados à instância de SQL Server, em seguida, adicione o banco de dados ao grupo de disponibilidade.
Aceleração e descarregamento integrados para compactação e descompactação de backup
O SQL Server 2022 (16.x) introduz o ALGORITHM
, que identifica um algoritmo de compressão da operação. Para obter mais informações sobre compactação, confira COMPRESSÃO de backup.
Para saber mais, confira Operações de restauração
Restauração a partir da URL
URL é o formato usado para especificar o local e o nome do arquivo para o Armazenamento de Blobs do Microsoft Azure ou o armazenamento de objetos compatível com o S3. Embora o Armazenamento de Blobs do Azure seja um serviço, a implementação é semelhante ao disco e à fita para permitir uma experiência de restauração consistente e uniforme para todos dispositivos.
Para obter mais informações sobre a restauração do Armazenamento de Blobs do Microsoft Azure, confira Backup e restauração do SQL Server com o Armazenamento de Blobs do Microsoft Azure.
O backup e a restauração no armazenamento de objetos compatível com o S3 foram introduzidos no SQL Server 2022 (16.x). Para obter mais informações sobre a restauração do armazenamento de objetos compatível com o S3, confira Backup e restauração do SQL Server com armazenamento de objetos compatível com o S3. Confira também a opção Backup do SQL Server na URL para armazenamento de objetos compatível com S3.
Interoperabilidade
Restauração e configuração do banco de dados
Durante uma restauração, a maioria das opções do banco de dados que são configuráveis com ALTER DATABASE é redefinida com os valores em vigor no momento do término do backup.
Porém, o uso da opção WITH RESTRICTED_USER substitui esse comportamento pela configuração da opção de acesso do usuário. Essa configuração sempre é definida seguindo uma instrução RESTORE que inclui a opção WITH RESTRICTED_USER.
Restaurar um banco de dados criptografado
Para restaurar um banco de dados criptografado, é necessário ter acesso ao certificado ou à chave assimétrica usada para criptografar o banco de dados. Sem o certificado ou a chave assimétrica, o banco de dados não pode ser restaurado. Como resultado, o certificado usado para criptografar a chave de criptografia do banco de dados deverá ser retido enquanto o backup for necessário. Para obter mais informações, consulte SQL Server Certificates and Asymmetric Keys.
Restaurar um bancos de dados habilitado para armazenamento vardecimal
O backup e a restauração funcionam corretamente com o formato de armazenamento vardecimal. Para obter mais informações sobre o formato de armazenamento vardecimal, consulte sp_db_vardecimal_storage_format.
Restaurar dados de texto completo
Dados de texto completo são restaurados com outros dados do banco de dados durante uma restauração completa. Usando a sintaxe RESTORE DATABASE database_name FROM backup_device
comum, os arquivos de texto completo são restaurados como parte da restauração de arquivo de banco de dados.
A instrução RESTORE também pode ser usada para executar restaurações em locais alternados, restaurações diferenciais, restaurações de arquivos e grupos de arquivos e restaurações de arquivos e grupos de arquivos diferenciais de dados de texto completo. Além disso, RESTORE pode restaurar apenas arquivos de texto completo, assim como dados de banco de dados.
Observação
Catálogos de texto completo importados do SQL Server 2005 (9.x) ainda são tratados como arquivos de banco de dados. Nesse caso, o procedimento usado pelo SQL Server 2005 (9.x) para fazer backup de catálogos de texto completo ainda se aplica, exceto pelo fato de que não é mais necessário pausar e retomar a operação de backup. Para obter mais informações, consulte Fazendo backup e restaurando catálogos de texto completo.
Restauração para o SQL Server 2022 e o recurso de remoção automática
Durante a restauração de um banco de dados para o SQL Server 2022 (16.x) de uma versão anterior, é recomendável executar sp_updatestats
no banco de dados, definindo os metadados adequados para o recurso de remoção automático das estatísticas. Para obter mais informações, confira Opção de remoção automática de estatísticas.
Clusters de Big Data do SQL Server
Determinadas operações, incluindo a definição de configurações de servidor (nível de instância) ou a adição manual de um banco de dados a um grupo de disponibilidade, exigem uma conexão com a instância do SQL Server. Operações como sp_configure
, RESTORE DATABASE
ou qualquer comando DDL em um banco de dados que pertence a um grupo de disponibilidade exigem uma conexão com a instância do SQL Server. Por padrão, um cluster Big Data não inclui um ponto de extremidade que habilita uma conexão com a instância. Você deve expor esse ponto de extremidade manualmente.
Para instruções, confira Conectar-se a bancos de dados na réplica primária.
Metadados
O SQL Server inclui tabelas de histórico de backup e restauração que controlam a atividade de backup e restauração de cada instância de servidor. Quando uma restauração é executada, as tabelas de histórico de backup também são modificadas. Para obter informações sobre essas tabelas, consulte Histórico de backup e informações de cabeçalho.
Impacto da opção REPLACE
REPLACE raramente deve ser usado e só depois de cuidadosa consideração. Normalmente a restauração evita a substituição acidental de um banco de dados por um banco de dados diferente. Se o banco de dados especificado em uma instrução RESTORE já existir no servidor atual e a GUID de família do banco de dados especificado for diferente da GUID de família do banco de dados registrado no conjunto de backup, o banco de dados não será restaurado. Essa é uma proteção importante.
A opção REPLACE substitui várias verificações de segurança importantes que a restauração geralmente executa. As verificações substituídas são as seguintes:
Restauração de um banco de dados existente com um backup tirado de outro banco de dados.
Com a opção REPLACE, a restauração permite que você substitua um banco de dados existente por qualquer banco de dados do conjunto de backup, mesmo que o nome do banco de dados especificado seja diferente do nome de banco de dados registrado no conjunto de backup. Isso pode resultar na substituição acidental de um banco de dados por um banco de dados diferente.
Restauração de um banco de dados que usa o modelo de recuperação bulk-logged em que um backup da parte final do log não foi feito e a opção
STOPAT
não é usada.Com a opção REPLACE, você pode perder trabalho confirmado porque não foi feito backup do log gravado mais recentemente.
Substituição de arquivos existentes.
Por exemplo, um engano poderia permitir a substituição de arquivos do tipo errado, como arquivos .xls, ou que estivessem sendo usados por outro banco de dados que não estivesse online. A perda de dados arbitrária é possível se arquivos existentes forem substituídos, embora o banco de dados restaurado esteja completo.
Refazer uma restauração
Não é possível desfazer os efeitos de uma restauração; no entanto, você pode recusar os efeitos de roll forward e de cópia dos dados reiniciando um arquivo por vez. Para recomeçar, restaure o arquivo desejado e execute o roll forward novamente. Por exemplo, se você restaurou muitos backups de log acidentalmente e excedeu o ponto de parada pretendido, reinicie a sequência.
Uma sequência de restauração pode ser anulada e reiniciada com a restauração de todo o conteúdo dos arquivos afetados.
Reverter um banco de dados para um instantâneo do banco de dados
Uma operação de reversão de banco de dados (especificada com a opção DATABASE_SNAPSHOT) reverte um banco de dados de origem completo, revertendo-o para o momento de um instantâneo do banco de dados, ou seja, com a substituição do banco de dados de origem pelos dados do momento específico mantidos no instantâneo do banco de dados especificado. Só o instantâneo para o qual você está revertendo pode existir atualmente. A operação de reversão, então, reconstrói o log (portanto, você não poderá efetuar roll forward em um banco de dados revertido até o ponto do erro do usuário).
A perda de dados é limitada às atualizações no banco de dados desde a criação do instantâneo. Os metadados de um banco de dados revertido são iguais aos metadados no momento da criação do instantâneo. No entanto, a reversão para um instantâneo descarta todos os catálogos de texto completo.
A reversão a partir de um instantâneo do banco de dados não é destinada à recuperação de mídia. Ao contrário de um conjunto de backup regular, o instantâneo de banco de dados é uma cópia incompleta dos arquivos do banco de dados. Se o banco de dados ou o instantâneo do banco de dados está corrompido, é provável que a reversão a partir de um instantâneo seja impossível. Além disso, mesmo quando possível, é improvável que a reversão corrija o problema no caso de corrupção.
Restrições na reversão
Não há suporte para a reversão nas seguintes condições:
- O banco de dados de origem contém algum grupo de arquivos somente leitura ou compactado.
- Há algum arquivo offline que estava online quando o instantâneo foi criado.
- Existe mais de um instantâneo do banco de dados atualmente.
Para obter mais informações, consulte Reverter um banco de dados para um instantâneo do banco de dados.
Segurança
Uma operação de backup pode, opcionalmente, especificar senhas para um conjunto de mídias, um conjunto de backup ou ambos. Quando uma senha tiver sido definida em um conjunto de backup ou de mídias, será preciso especificar a senha ou as senhas corretas na instrução RESTORE. Essas senhas impedem operações de restauração não autorizadas e acréscimos não autorizados de conjuntos de backup à mídia usando ferramentas do SQL Server. Porém, mídia protegida por senha pode ser substituída pela opção FORMAT da instrução BACKUP.
Importante
A proteção fornecida por esta senha é fraca. Destina-se a evitar uma restauração incorreta com o uso de ferramentas do SQL Server por usuários autorizados ou não autorizados. Não impede a leitura dos dados de backup por outros meios ou a substituição da senha. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. A prática recomendada para proteger backups é armazenar as fitas de backup em um local seguro ou fazer backup em arquivos de disco protegidos por ACLs (listas de controle de acesso) adequadas. As ACLs devem ser definidas no diretório raiz em que os backups são criados.
Para obter informações específicas sobre o backup e a restauração do SQL Server com o Armazenamento de Blobs do Microsoft Azure, confira Backup e restauração do SQL Server com o Armazenamento de Blobs do Microsoft Azure.
O backup e a restauração no armazenamento de objetos compatível com o S3 foram introduzidos no SQL Server 2022 (16.x). Para obter mais informações sobre a restauração do armazenamento de objetos compatível com o S3, confira Backup e restauração do SQL Server com armazenamento de objetos compatível com o S3. Confira também a opção Backup do SQL Server na URL para armazenamento de objetos compatível com S3.
Permissões
Se o banco de dados que está sendo restaurado não existir, o usuário deverá ter permissões CREATE DATABASE
para poder executar o comando RESTORE. Se o banco de dados existir, as permissões RESTORE assumirão como padrão os membros das funções de servidor fixas sysadmin
e dbcreator
e o proprietário (dbo
) do banco de dados (para a opção FROM DATABASE_SNAPSHOT
, o banco de dados sempre existe).
As permissões RESTORE são concedidas a funções nas quais as informações de associação estão sempre disponíveis para o servidor. Como a associação da função de banco de dados fixa pode ser verificada apenas quando o banco de dados está acessível e não danificado, o que nem sempre é o caso quando RESTORE é executado, os membros da função de banco de dados fixa db_owner
não têm permissões RESTORE.
Exemplos
Todos os exemplos presumem que um backup de banco de dados completo foi executado.
Os exemplos de RESTORE incluem o seguinte:
- a. Restaurando um banco de dados completo
- B. Restaurando backups de banco de dados diferenciais e completos
- C. Restaurando um banco de dados usando a sintaxe RESTART
- D. Restaurando um banco de dados e movendo arquivos
- E. Copiando um banco de dados usando BACKUP e RESTORE
- F. Restauração pontual usando STOPAT
- G. Restaurando o log de transações até uma marca
- H. Restaurando com a sintaxe de TAPE
- I. Restaurando com a sintaxe de FILE e FILEGROUP
- J. Revertendo de um instantâneo do banco de dados
- K. Restaurando do Armazenamento de Blobs do Microsoft Azure
- L. Restauração de um backup de instantâneo
Observação
Para obter outros exemplos, consulte os tópicos de instruções de restauração listados em Visão geral de recuperação e restauração.
a. Restaurar um banco de dados completo
O exemplo a seguir restaura um backup de banco de dados completo do dispositivo de backup lógico AdventureWorksBackups
. Para obter um exemplo de como criar esse dispositivo, consulte Dispositivos de backup.
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorks2022Backups;
Observação
Para um banco de dados que usa o modelo de recuperação completa ou bulk-logged, o SQL Server requer que se faça backup do final do log antes da restauração do banco de dados. Para obter mais informações, consulte Backups da parte final do log.
B. Restaurar backups diferenciais e completos de banco de dados
O exemplo a seguir restaura um backup de banco de dados completo seguido por um backup diferencial do dispositivo de backup Z:\SQLServerBackups\AdventureWorks2022.bak
, que contém os dois backups. O backup de banco de dados completo a ser restaurado é o sexto conjunto de backup no dispositivo (FILE = 6
), e o backup de banco de dados diferencial é o nono no dispositivo (FILE = 9
). Assim que o backup diferencial é recuperado, o banco de dados é recuperado.
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
WITH FILE = 6,
NORECOVERY;
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
WITH FILE = 9,
RECOVERY;
C. Restaurar um banco de dados usando a sintaxe RESTART
O exemplo a seguir usa a opção RESTART
para reiniciar uma operação RESTORE
interrompida por uma deficiência de força no servidor.
-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups;
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups WITH RESTART;
D. Restaurar um banco de dados e mover arquivos
O exemplo a seguir restaura um banco de dados completo e log de transações e move o banco de dados restaurado para o diretório C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data
.
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups
WITH NORECOVERY,
MOVE 'AdventureWorks2022_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
MOVE 'AdventureWorks2022_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';
RESTORE LOG AdventureWorks2022
FROM AdventureWorksBackups
WITH RECOVERY;
E. Copiar um banco de dados usando BACKUP e RESTORE
O exemplo a seguir usa as instruções BACKUP
e RESTORE
para fazer uma cópia do banco de dados AdventureWorks2022
. A instrução MOVE
causa a restauração dos dados e do arquivo de log nos locais especificados. A instrução RESTORE FILELISTONLY
é usada para determinar o número e os nomes dos arquivos no banco de dados que está sendo restaurado. A nova cópia do banco de dados é nomeada TestDB
. Para obter mais informações, consulte RESTORE FILELISTONLY.
BACKUP DATABASE AdventureWorks2022
TO AdventureWorksBackups ;
RESTORE FILELISTONLY
FROM AdventureWorksBackups ;
RESTORE DATABASE TestDB
FROM AdventureWorksBackups
WITH MOVE 'AdventureWorks2022_Data' TO 'C:\MySQLServer\testdb.mdf',
MOVE 'AdventureWorks2022_Log' TO 'C:\MySQLServer\testdb.ldf';
GO
F. Restauração pontual com STOPAT
O exemplo a seguir restaura um banco de dados para seu estado de 12:00 AM
em April 15, 2020
e mostra uma operação de restauração que envolve vários backups de log. No dispositivo de backup, AdventureWorksBackups
, o backup de banco de dados completo a ser restaurado é o terceiro conjunto de backup no dispositivo (FILE = 3
), o primeiro backup de log é o quarto conjunto de backup (FILE = 4
), e o segundo backup de log é o quinto conjunto de backup (FILE = 5
).
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 3, NORECOVERY;
RESTORE LOG AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE LOG AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks2022 WITH RECOVERY;
G. Restaurar o log de transações até uma marca
O exemplo a seguir restaura o log de transações até a marca na transação marcada denominada ListPriceUpdate
.
USE AdventureWorks2022;
GO
BEGIN TRANSACTION ListPriceUpdate
WITH MARK 'UPDATE Product list prices';
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 1.10
WHERE ProductNumber LIKE 'BK-%';
GO
COMMIT TRANSACTION ListPriceUpdate;
GO
-- Time passes. Regular database
-- and log backups are taken.
-- An error occurs in the database.
USE master;
GO
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 3, NORECOVERY;
GO
RESTORE LOG AdventureWorks2022
FROM AdventureWorksBackups
WITH FILE = 4,
RECOVERY,
STOPATMARK = 'UPDATE Product list prices';
H. Restauração com a sintaxe TAPE
O exemplo a seguir restaura um backup de banco de dados completo de um dispositivo de backup TAPE
.
RESTORE DATABASE AdventureWorks2022
FROM TAPE = '\\.\tape0';
I. Restauração com a sintaxe FILE e FILEGROUP
O exemplo a seguir restaura um banco de dados nomeado MyDatabase
que tem dois arquivos, um grupo de arquivos secundário e um log de transações. O banco de dados usa o modelo de recuperação completa.
O backup do banco de dados é o nono conjunto de backup no conjunto de mídias em um dispositivo de backup lógico nomeado MyDatabaseBackups
. Depois, três backups de log, que estão nos próximos três conjuntos de backup (10
, 11
e 12
) no dispositivo MyDatabaseBackups
, são restaurados usando WITH NORECOVERY
. Depois que o último backup de log é restaurado com NORECOVERY
, o banco de dados é recuperado.
Observação
A recuperação é executada como uma etapa separada para reduzir a possibilidade de recuperação antecipada, antes que todos os backups de log tenham sido restaurados. Saiba mais sobre a recuperação de banco de dados em Visão geral da restauração e recuperação (SQL Server).
No RESTORE DATABASE
, observe que há dois tipos de opções de FILE
. As opções FILE
que precedem o nome do dispositivo de backup especificam os nomes de arquivos lógicos dos arquivos de banco de dados restaurados do conjunto de backup; por exemplo, FILE = 'MyDatabase_data_1'
. Esse conjunto de backups não é o primeiro backup de banco de dados no conjunto de mídias; portanto, sua posição no conjunto de mídias é indicada com a opção FILE
na cláusula WITH
, FILE = 9
.
RESTORE DATABASE MyDatabase
FILE = 'MyDatabase_data_1',
FILE = 'MyDatabase_data_2',
FILEGROUP = 'new_customers'
FROM MyDatabaseBackups
WITH
FILE = 9,
NORECOVERY;
GO
-- Restore the log backups
RESTORE LOG MyDatabase
FROM MyDatabaseBackups
WITH FILE = 10,
NORECOVERY;
GO
RESTORE LOG MyDatabase
FROM MyDatabaseBackups
WITH FILE = 11,
NORECOVERY;
GO
RESTORE LOG MyDatabase
FROM MyDatabaseBackups
WITH FILE = 12,
NORECOVERY;
GO
--Recover the database
RESTORE DATABASE MyDatabase WITH RECOVERY;
GO
J. Reverter de um instantâneo do banco de dados
O exemplo a seguir reverte um banco de dados para um instantâneo do banco de dados. O exemplo presume que existe apenas um instantâneo atualmente no banco de dados. Para obter um exemplo de como criar esse instantâneo do banco de dados, consulte Criar um instantâneo do banco de dados.
Observação
A reversão para um instantâneo descarta todos os catálogos de texto completo.
USE master;
RESTORE DATABASE AdventureWorks2022 FROM DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800';
GO
Para obter mais informações, consulte Reverter um banco de dados para um instantâneo do banco de dados.
K. Restauração por meio do Armazenamento de Blobs do Microsoft Azure
Os três exemplos abaixo envolvem o uso do serviço de Armazenamento do Microsoft Azure. O nome da Conta de armazenamento é mystorageaccount
. O contêiner para arquivos de dados é chamado myfirstcontainer
. O contêiner para arquivos de backup é chamado mysecondcontainer
. Uma política de acesso armazenada foi criada com direitos de leitura, gravação, exclusão e lista para cada contêiner. As credenciais do SQL Server foram criadas usando Assinaturas de Acesso Compartilhado que estão associadas às Políticas de Acesso Armazenado. Para obter informações específicas sobre o backup e a restauração do SQL Server com o Armazenamento de Blobs do Microsoft Azure, confira Backup e restauração do SQL Server com o Armazenamento de Blobs do Microsoft Azure.
K1. Restaurar um backup de banco de dados completo do serviço de Armazenamento do Microsoft Azure
Um backup de banco de dados completo, localizado em mysecondcontainer
, de Sales
será restaurado no myfirstcontainer
. Atualmente, o Sales
não existe no servidor.
RESTORE DATABASE Sales
FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
STATS = 10;
K2. Restaurar um backup de banco de dados completo do serviço de Armazenamento do Microsoft Azure para o armazenamento local
Um backup de banco de dados completo, localizado em mysecondcontainer
, de Sales
será restaurado no armazenamento local. Atualmente, o Sales
não existe no servidor.
RESTORE DATABASE Sales
FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/Sales.bak'
WITH MOVE 'Sales_Data1' to 'H:\DATA\Sales_Data1.mdf',
MOVE 'Sales_log' to 'O:\LOG\Sales_log.ldf',
STATS = 10;
K3. Restaurar um backup de banco de dados completo do armazenamento local para o serviço de Armazenamento do Microsoft Azure
RESTORE DATABASE Sales
FROM DISK = 'E:\BAK\Sales.bak'
WITH MOVE 'Sales_Data1' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_Data1.mdf',
MOVE 'Sales_log' to 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_log.ldf',
STATS = 10;
L. Restauração do backup de instantâneo
Introduzido no SQL Server 2022 (16.x). Para obter mais informações, confira Criar um backup de instantâneo do Transact-SQL.
L1. Restaurar um backup completo
RESTORE DATABASE Sales
FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
WITH METADATA_ONLY;
L2. Restaurar um backup e aplicar um log de transações
RESTORE DATABASE Sales
FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
WITH METADATA_ONLY,
NORECOVERY;
RESTORE LOG Sales
FROM DISK = 'D:\MSSQL\Backup\SalesLog.trn'
WITH RECOVERY;
L3. Restauração de um backup de instantâneo e colocação dos arquivos de banco de dados e de log em uma nova localização
RESTORE DATABASE Sales
FROM DISK = 'D:\MSSQL\Backup\SalesSnapshotFull.bkm'
WITH METADATA_ONLY,
MOVE Sales_Data TO 'D:\MSSQL\Sales.mdf',
MOVE Sales_Log TO 'D:\MSSQL\Sales_log.ldf';
Próximas etapas
- Visão geral da restauração e recuperação (SQL Server)
- Fazer backup e restaurar bancos de dados do SQL Server
- Fazer backup e restaurar bancos de dados do sistema (SQL Server)
- Restore a Database Backup Using SSMS
- Fazer backup e restaurar índices e catálogos de texto completo
- Fazer backup e restaurar bancos de dados replicados
- BACKUP
- Conjuntos de mídias, famílias de mídia e conjuntos de backup
- RESTORE REWINDONLY
- RESTORE VERIFYONLY
- RESTORE FILELISTONLY (Transact-SQL)
- RESTORE HEADERONLY (Transact-SQL)
- Informações de histórico e cabeçalho de backup
* Instância Gerenciada de SQL *
Instância Gerenciada do Azure SQL
Esse comando permite restaurar um banco de dados inteiro de um backup de banco de dados completo (uma restauração completa) da conta do Armazenamento de Blobs do Azure.
Para outros comandos RESTORE com suporte, consulte:
- RESTORE FILELISTONLY (Transact-SQL)
- RESTORE HEADERONLY (Transact-SQL)
- RESTORE LABELONLY ONLY (Transact-SQL)
- RESTORE VERIFYONLY (Transact-SQL)
Importante
Para fazer a restauração por meio de backups automáticos da Instância Gerenciada de SQL, confira Restauração do Banco de Dados SQL.
Sintaxe
--To Restore an Entire Database from a Full database backup (a Complete Restore):
RESTORE DATABASE { database_name | @database_name_var }
FROM URL = { 'physical_device_name' | @physical_device_name_var } [ ,...n ]
[;]
Argumentos
DATABASE
Especifica o banco de dados de destino.
FROM URL
Especifica um ou mais dispositivos de backup colocados em URLs que serão usados para a operação de restauração. O formato da URL é usado para restaurar os backups do serviço de armazenamento do Microsoft Azure.
Importante
Para fazer uma restauração de vários dispositivos ao restaurar de uma URL, é necessário usar os tokens SAS (Assinatura de Acesso Compartilhado). Para obter exemplos sobre como criar uma Assinatura de Acesso Compartilhado, consulte Backup do SQL Server em uma URL e Simplificando a criação de credenciais do SQL com tokens SAS (Assinatura de Acesso Compartilhado) no Armazenamento do Azure com o PowerShell.
n É um espaço reservado que indica que até 64 dispositivos de backup podem ser especificados em uma lista separada por vírgulas.
Comentários
Como pré-requisito, você precisa criar uma credencial com o nome que corresponda à URL da conta de armazenamento de blobs, e colocar a Assinatura de Acesso Compartilhado como secreta. O comando RESTORE pesquisará as credenciais usando a URL de armazenamento de blobs a fim de localizar as informações necessárias para ler o dispositivo de backup.
A operação RESTORE é assíncrona: a restauração continua mesmo se a conexão de cliente é interrompida. Se sua conexão for interrompida, será possível marcar a exibição sys.dm_operation_status para o status de uma operação de restauração (bem como para o banco de dados CREATE e DROP).
As opções de banco de dados a seguir são definidas/substituídas e não podem ser alteradas posteriormente:
- NEW_BROKER (se o agente não estiver habilitado no arquivo .bak)
- ENABLE_BROKER (se o agente não estiver habilitado no arquivo .bak)
- AUTO_CLOSE=OFF (se um banco de dados no arquivo .bak tiver AUTO_CLOSE=ON)
- RECOVERY FULL (se um banco de dados no arquivo .bak tiver modo de recuperação SIMPLE ou BULK_LOGGED)
- O grupo de arquivos otimizado para memória será adicionado e o XTP, chamado, se ele não estiver no arquivo .bak de origem. Qualquer grupo de arquivos otimizado para memória existente é renomeado para XTP
- As opções SINGLE_USER e RESTRICTED_USER são convertidas em MULTI_USER
Limitações – Instância Gerenciada de SQL
Estas limitações se aplicam:
- Arquivos .BAK que contêm vários conjuntos de backup não podem ser restaurados.
- Arquivos .BAK que contêm vários arquivos de log não podem ser restaurados.
- A restauração falhará se o .bak contiver dados FILESTREAM.
- Os backups que contêm bancos de dados que tenham objetos ativos na memória não podem ser restaurados em um nível de desempenho Uso Geral.
- Os backups que contêm bancos de dados em modo somente leitura não podem ser restaurados no momento.
Para obter mais informações, confira Instância Gerenciada de SQL do Azure
Restaurar um banco de dados criptografado
Para restaurar um banco de dados criptografado, é necessário ter acesso ao certificado ou à chave assimétrica usada para criptografar o banco de dados. Sem o certificado ou a chave assimétrica, o banco de dados não pode ser restaurado. Como resultado, o certificado usado para criptografar a chave de criptografia do banco de dados deverá ser retido enquanto o backup for necessário. Para obter mais informações, consulte SQL Server Certificates and Asymmetric Keys.
Permissões
O usuário deve ter permissões CREATE DATABASE
para poder executar RESTORE.
CREATE LOGIN mylogin WITH PASSWORD = 'Very Strong Pwd123!';
GRANT CREATE ANY DATABASE TO [mylogin];
As permissões RESTORE são concedidas a funções nas quais as informações de associação estão sempre disponíveis para o servidor. Como a associação da função de banco de dados fixa pode ser verificada apenas quando o banco de dados está acessível e não danificado, o que nem sempre é o caso quando RESTORE é executado, os membros da função de banco de dados fixa db_owner
não têm permissões RESTORE.
Exemplos
Os exemplos a seguir restauram um backup de banco de dados somente de cópia por meio da URL, incluindo a criação de uma credencial.
a. Restaurar o banco de dados de quatro dispositivos de backup
-- Create credential
CREATE CREDENTIAL [https://mybackups.blob.core.windows.net/wide-world-importers]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2017-11-09&ss=bq&srt=sco&sp=rl&se=2022-06-19T22:41:07Z&st=2018-06-01T14:41:07Z&spr=https&sig=s7wddcf0w%3D';
GO
-- Restore database
RESTORE DATABASE WideWorldImportersStandard
FROM URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/00-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/01-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/02-WideWorldImporters-Standard.bak',
URL = N'https://mybackups.blob.core.windows.net/wide-world-importers/03-WideWorldImporters-Standard.bak'
O seguinte erro é mostrado se o banco de dados já existe: Msg 1801, Level 16, State 1, Line 9 Database 'WideWorldImportersStandard' already exists. Choose a different database name.
B. Restaurar o banco de dados especificado por meio da variável
DECLARE @db_name sysname = 'WideWorldImportersStandard';
DECLARE @url nvarchar(400) = N'https://mybackups.blob.core.windows.net/wide-world-importers/WideWorldImporters-Standard.bak';
RESTORE DATABASE @db_name
FROM URL = @url
C. Acompanhar o progresso da instrução restore
SELECT query = a.text, start_time, percent_complete,
eta = dateadd(second,estimated_completion_time/1000, getdate())
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command = 'RESTORE DATABASE'
Observação
Esta exibição provavelmente mostra duas solicitações de restore. Uma é a instrução RESTORE original enviada pelo cliente e a outra é a instrução RESTORE em segundo plano que está sendo executada, mesmo se houver falha na conexão do cliente.
* Analytics
Platform System (PDW) *
Sistema de plataforma de análise
Restaura um banco de dados de usuário do PDW (Analytics Platform System) de um backup de banco de dados para um dispositivo PDW (Analytics Platform System). O banco de dados é restaurado por meio de um backup que foi criado anteriormente pelo comando BACKUP DATABASE - Analytics Platform System. Use as operações de backup e restauração para criar um plano de recuperação de desastre ou mover bancos de dados de um dispositivo para outro.
Observação
A restauração do banco de dados do sistema master
inclui restaurar informações de logon do dispositivo. Para restaurar o banco de dados master
, use a página Restaurar o banco de dados mestre da ferramenta Gerenciador de Configurações. Um administrador com acesso ao nó de Controle pode executar essa operação. Para obter mais informações sobre backups de banco de dados do PDW (Analytics Platform System), confira "Backup e restauração" no Documentação de produto do Analytics Platform System (PDW).
Sintaxe
-- Restore the master database
-- Use the Configuration Manager tool.
Restore a full user database backup.
RESTORE DATABASE database_name
FROM DISK = '\\UNC_path\full_backup_directory'
[;]
--Restore a full user database backup and then a differential backup.
RESTORE DATABASE database_name
FROM DISK = '\\UNC_path\differential_backup_directory'
WITH [ ( ] BASE = '\\UNC_path\full_backup_directory' [ ) ]
[;]
--Restore header information for a full or differential user database backup.
RESTORE HEADERONLY
FROM DISK = '\\UNC_path\backup_directory'
[;]
Argumentos
RESTORE DATABASE database_name
Especifica para restaurar um banco de dados de usuário para um banco de dados chamado database_name. O banco de dados restaurado pode ter um nome diferente do banco de dados de origem que foi feito backup. database_name já não pode existir como um banco de dados no dispositivo de destino. Para obter mais informações sobre nomes de bancos de dados permitidos, confira "Regras de nomenclatura de objetos" na documentação do produto Analytics Platform System (PDW).
A restauração de um banco de dados de usuário restaura um backup de banco de dados completo e, opcionalmente, em seguida, restaura um backup diferencial no dispositivo. Uma restauração de um banco de dados de usuário inclui a restauração de usuários e funções de banco de dados.
FROM DISK = '\\UNC_path\backup_directory'
O caminho e o diretório de rede do qual o Analytics Platform System (PDW) restaurará os arquivos de backup. Por exemplo, FROM DISK = '\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup'.
backup_directory Especifica o nome de um diretório que contém o backup completo ou diferencial. Por exemplo, você pode executar uma operação RESTORE HEADERONLY em um backup completo ou diferencial.
full_backup_directory Especifica o nome de um diretório que contém o backup completo.
differential_backup_directory Especifica o nome de um diretório que contém o backup diferencial.
- O caminho e o diretório de backup já devem existir e devem ser especificados como um caminho UNC (convenção de nomenclatura de universal) totalmente qualificado.
- O caminho para o diretório de backup não pode ser um caminho local e não pode ser um local em um dos nós de dispositivo do PDW (Analytics Platform System).
- O tamanho máximo do caminho UNC e do nome do diretório de backup é de 200 caracteres.
- O servidor ou o host precisa ser especificado como um endereço IP.
RESTORE HEADERONLY
Especifica para retornar somente as informações de cabeçalho para um backup de banco de dados de usuário. Entre os outros campos, o cabeçalho inclui a descrição do texto do backup e o nome do backup. O nome do backup não precisa ter o mesmo nome do diretório que armazena os arquivos de backup.
Os resultados de RESTORE HEADERONLY seguem o mesmo padrão dos resultados de RESTORE HEADERONLY do SQL Server. O resultado tem mais de 50 colunas, e nem todas são usadas pelo Analytics Platform System (PDW). Para obter uma descrição das colunas nos resultados de RESTORE HEADERONLY do SQL Server, consulte RESTORE HEADERONLY.
Permissões
Requer a permissão CREATE ANY DATABASE
.
Exige uma conta do Windows que tem permissão para acessar e ler por meio do diretório de backup. O nome de conta do Windows e a senha também precisam ser armazenados no PDW (Analytics Platform System).
- Para verificar se as credenciais já estão nesse local, use sys.dm_pdw_network_credentials.
- Para adicionar ou atualizar as credenciais, use sp_pdw_add_network_credentials - Azure Synapse Analytics.
- Para remover as credenciais do PDW (Analytics Platform System), use sp_pdw_remove_network_credentials – Azure Synapse Analytics.
Tratamento de erros
O comando RESTORE DATABASE resulta em erros nas seguintes condições:
- O nome do banco de dados a ser restaurado já existe no dispositivo de destino. Para evitar isso, escolha um nome exclusivo de banco de dados ou remova o banco de dados existente antes de executar a restauração.
- Há um conjunto inválido de arquivos de backup no diretório de backup.
- As permissões de logon não são suficientes para restaurar um banco de dados.
- O Analytics Platform System (PDW) não tem as permissões corretas para o local de rede em que os arquivos de backup estão localizados.
- O local de rede para o diretório de backup não existe ou não está disponível.
- Não há espaço em disco suficiente nos nós de Computação ou no nó de Controle. O Analytics Platform System (PDW) não confirma se o espaço em disco suficiente existe no dispositivo antes de iniciar a restauração. Portanto, é possível gerar um erro de espaço em disco insuficiente ao executar a instrução RESTORE DATABASE. Quando ocorrer falta de espaço em disco suficiente, o PDW (Analytics Platform System) reverterá a restauração.
- O dispositivo de destino no qual o banco de dados está sendo restaurado tem menos nós de Computação que o dispositivo de origem do qual o banco de dados foi copiado em backup.
- Houve uma tentativa de restauração do banco de dados em uma transação.
Comentários
O Analytics Platform System (PDW) rastreia o sucesso das restaurações de banco de dados. Antes de restaurar um backup de banco de dados diferencial, Analytics Platform System (PDW) verifica se a restauração do banco de dados completo foi concluída com êxito.
Após uma restauração, o banco de dados de usuário terá o nível de compatibilidade 120 do banco de dados. Isso é verdadeiro para todos os bancos de dados, seja qual for seu nível de compatibilidade original.
Restaurar para um dispositivo com um número maior de nós de computação
Execute DBCC SHRINKLOG (Azure Synapse Analytics) depois de restaurar um banco de dados de um dispositivo menor até o maior, pois a redistribuição aumentará o log de transações.
A restauração de um backup em um dispositivo com um número maior de nós de Computação aumenta o tamanho do banco de dados alocado proporcionalmente ao número de nós de Computação.
Por exemplo, ao restaurar um banco de dados de 60 GB de um dispositivo de 2 nós (30 GB por nó) em um dispositivo de 6 nós, o Analytics Platform System (PDW) cria um banco de dados de 180 GB (6 nós com 30 GB por nó) no dispositivo de 6 nós. Inicialmente, o Analytics Platform System (PDW) restaura o banco de dados em dois nós para que isso corresponda à configuração de origem e, em seguida, redistribui os dados para todos os seis nós.
Após a redistribuição, cada nó de Computação conterá menos dados reais e mais espaço livre do que cada nó de Computação no dispositivo de origem menor. Use o espaço adicional para adicionar mais dados ao banco de dados. Se o tamanho do banco de dados restaurado for maior do que o necessário, use ALTER DATABASE - PDW para reduzir os tamanhos de arquivos de banco de dados.
Limitações e restrições
Para essas limitações e restrições, o dispositivo de origem é o dispositivo por meio do qual o backup do banco de dados foi criado e o dispositivo de destino é o dispositivo no qual o banco de dados será restaurado.
- A restauração de um banco de dados não recompila as estatísticas automaticamente.
- Apenas uma instrução RESTORE DATABASE ou BACKUP DATABASE pode ser executada no dispositivo em determinado momento. Se várias instruções de backup e restauração forem enviadas simultaneamente, o dispositivo as colocará em uma fila e as processará uma por vez.
- Apenas é possível restaurar um backup de banco de dados em um dispositivo de destino do Analytics Platform System (PDW) que tenha o mesmo número ou mais nós de Computação do que o dispositivo de origem. O dispositivo de destino não pode ter menos nós de Computação que o dispositivo de origem.
- Não é possível restaurar um backup que foi criado em um dispositivo que tem o hardware do SQL Server 2012 PDW em um dispositivo que tem o hardware do SQL Server 2008 R2. Isso se aplica mesmo se o dispositivo foi adquirido originalmente com o hardware do SQL Server 2008 R2 PDW e agora executa o software do SQL Server 2012 PDW.
Bloqueio
Usa um bloqueio exclusivo no objeto DATABASE.
Exemplos
a. Exemplos simples de RESTORE
O exemplo a seguir restaura um backup completo para o banco de dados do SalesInvoices2013
. Os arquivos de backup são armazenados no diretório \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full
. O banco de dados SalesInvoices2013
ainda não pode existir no dispositivo de destino ou esse comando falhará com um erro.
RESTORE DATABASE SalesInvoices2013
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full';
B. Restaurar um backup completo e diferencial
O exemplo a seguir restaura um backup completo e, em seguida, um backup diferencial para o banco de dados SalesInvoices2013
O backup completo do banco de dados é restaurado do backup completo que está armazenado no diretório \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full
. Se a restauração for concluída com êxito, o backup diferencial será restaurado no banco de dados SalesInvoices2013
. O backup diferencial é armazenado no diretório \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff
.
RESTORE DATABASE SalesInvoices2013
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff'
WITH BASE = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]
C. Restaurar o cabeçalho do backup
Este exemplo restaura as informações de cabeçalho para o backup de banco de dados \\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full
. O comando resulta em uma linha de informações para o backup do Invoices2013Full
.
RESTORE HEADERONLY
FROM DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full'
[;]
Use as informações de cabeçalho para verificar o conteúdo de um backup ou para garantir que o dispositivo de restauração de destino é compatível com o dispositivo de backup de origem antes de tentar restaurar o backup.