Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Este artigo descreve como criar um backup de banco de dados completo no SQL Server usando o SQL Server Management Studio, o Transact-SQL ou o PowerShell.
Para obter mais informações, consulte backup e restauração do SQL Server com o Armazenamento de Blobs do Azure e o backup do SQL Server na URL do Armazenamento de Blobs do Azure.
Limitações
- A instrução
BACKUPnão é permitida em uma transação explícita ou implícita. - Backups criados por versões mais recentes do SQL Server não podem ser restaurados em versões anteriores do SQL Server.
Para obter uma visão geral e aprofundamento dos conceitos e tarefas de backup, consulte a visão geral do backup (SQL Server) antes de continuar.
Recomendações
- À medida que um banco de dados aumenta de tamanho, os backups completos do banco de dados levam mais tempo para serem concluídos e exigem mais espaço de armazenamento. Para bancos de dados grandes, considere complementar backups de banco de dados completos com uma série de backups de bancos de dados diferenciais.
- Estime o tamanho de um backup de banco de dados completo usando o procedimento armazenado do sistema sp_spaceused .
- Por padrão, toda operação de backup bem-sucedida acrescenta uma entrada ao log de erros do SQL Server e ao log de eventos do sistema. Se você fizer backup com frequência, as mensagens de sucesso se acumularão rapidamente, resultando em enormes logs de erros, o que dificulta a localização de outras mensagens. Em tais situações, você pode suprimir essas entradas de log de backup usando o sinalizador de rastreamento 3226, caso nenhum dos seus scripts dependa dessas entradas. Para obter mais informações, consulte Definir sinalizadores de rastreamento com DBCC TRACEON.
Segurança
TRUSTWORTHY é definido como OFF em um backup de banco de dados. Para obter informações sobre como definir TRUSTWORTHYON, consulte as opções ALTER DATABASE SET.
A partir do SQL Server 2012 (11.x), as opções e PASSWORD as MEDIAPASSWORD opções não estão disponíveis para a criação de backups. Você ainda poderá restaurar os backups criados com senhas.
Permissões
As permissões BACKUP DATABASE e BACKUP LOG usam como padrão os membros da função de servidor fixa sysadmin e as funções de banco de dados fixas db_owner e db_backupoperator.
Os problemas de propriedade e permissão no arquivo físico do dispositivo de backup podem interferir em uma operação de backup. O serviço do SQL Server deve ler e gravar no dispositivo. A conta sob a qual o serviço SQL Server é executado deve ter permissões de gravação no dispositivo de backup. No entanto, sp_addumpdevice, que adiciona uma entrada para um dispositivo de backup nas tabelas do sistema, não verifica permissões de acesso a arquivos. Problemas no arquivo físico do dispositivo de backup podem não aparecer até que o backup seja usado ou uma tentativa de restauração.
Usar o SQL Server Management Studio
Observação
Ao especificar uma tarefa de backup usando o SQL Server Management Studio, você pode gerar o script backup de Transact-SQL correspondente selecionando o botão Script e selecionando um destino de script.
Depois de se conectar à instância apropriada do Mecanismo de Banco de Dados do SQL Server, no Pesquisador de Objetos, expanda a árvore do servidor.
Expanda Bancos de Dadose selecione um banco de dados de usuário ou expanda Bancos de Dados de Sistema e selecione um banco de dados de sistema.
Clique com o botão direito do mouse no banco de dados que você deseja fazer backup, aponte para Tarefas e selecione Fazer Backup....
Na caixa de diálogo Fazer Backup do Banco de Dados , o banco de dados selecionado aparece na lista suspensa. (Você pode alterar o banco de dados para qualquer outro banco de dados no servidor.)
Na lista de tipos de backup , selecione um tipo de backup. O padrão é Completo.
Importante
Você deve executar pelo menos um backup de banco de dados completo antes de executar um backup de log de transações ou diferencial.
Em Componente de Backup, clique em Banco de Dados.
Na seção Destino, examine a localização padrão para o arquivo de backup (na pasta ../mssql/data).
Você pode usar o Backup para listar para selecionar um dispositivo diferente. Selecione Adicionar para adicionar objetos de backup e/ou destinos. Você pode retirar o conjunto de backup em vários arquivos para aumentar a velocidade de backup.
Para remover um destino de backup, selecione-o e selecione Remover. Para exibir o conteúdo de um destino de backup existente, selecione-o e selecione Conteúdo.
(Opcional) Examine as outras configurações disponíveis nas páginas Opções de Mídia e Opções de Backup .
Para obter mais informações sobre as várias opções de backup, consulte Banco de Dados de Backup (Página Geral), Banco de Dados de Backup (página Opções de Mídia) e Banco de Dados de Backup (Página Opções de Backup).
Selecione OK para iniciar o backup.
Quando o backup for concluído com êxito, selecione OK para fechar a caixa de diálogo do SQL Server Management Studio.
Informações adicionais
Após criar um backup de banco de dados completo, você pode criar um backup de banco de dados diferencial ou um backup de log de transações.
(Opcional) Você pode selecionar a caixa de seleção de backup somente cópia para criar um backup somente cópia. Um backup somente cópia é um backup do SQL Server independente da sequência de backups convencionais do SQL Server. Para obter mais informações, consulte backups somente cópia. Um backup somente cópia não está disponível para o tipo de backup Diferencial.
A opção Substituir mídia estará desabilitada na página Opções de Mídia se você estiver fazendo backup para uma URL.
Exemplos
Para os exemplos a seguir, crie um banco de dados de teste com o código Transact-SQL a seguir:
USE [master]
GO
CREATE DATABASE [SQLTestDB]
GO
USE [SQLTestDB]
GO
CREATE TABLE SQLTest
(
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR(100) NOT NULL,
dt1 DATETIME NOT NULL DEFAULT getdate()
);
GO
USE [SQLTestDB]
GO
INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO
SELECT * FROM SQLTest
GO
R. Backup completo em disco para o local padrão
Neste exemplo, o SQLTestDB banco de dados faz backup no disco no local de backup padrão.
Depois de se conectar à instância apropriada do Mecanismo de Banco de Dados do SQL Server, no Pesquisador de Objetos, expanda a árvore do servidor.
Expanda Banco de Dados, clique com o botão direito do mouse em
SQLTestDB, aponte para Tarefas e selecione Fazer Backup....Selecione OK.
Quando o backup for concluído com êxito, selecione OK para fechar a caixa de diálogo do SQL Server Management Studio.
B. Backup completo em disco para um local não padrão
Neste exemplo, o SQLTestDB banco de dados faz backup no disco em um local que você escolher.
Depois de se conectar à instância apropriada do Mecanismo de Banco de Dados do SQL Server, no Pesquisador de Objetos, expanda a árvore do servidor.
Expanda Banco de Dados, clique com o botão direito do mouse em
SQLTestDB, aponte para Tarefas e selecione Fazer Backup....Na página Geral na seção Destino , selecione Disco no Backup para listar.
Selecione Remover até que todos os arquivos de backup existentes sejam removidos.
Selecione Adicionar. A caixa de diálogo Selecionar Destino de Backup é aberta.
Insira um caminho válido e um nome de arquivo na caixa Nome do arquivo . Use .bak como a extensão para simplificar a classificação do arquivo.
Selecione OK, depois OK novamente para iniciar o backup.
Quando o backup for concluído com êxito, selecione OK para fechar a caixa de diálogo do SQL Server Management Studio.
C. Criar um backup criptografado
Neste exemplo, o SQLTestDB banco de dados faz backup com criptografia para o local de backup padrão.
Depois de se conectar à instância apropriada do Mecanismo de Banco de Dados do SQL Server, no Pesquisador de Objetos, expanda a árvore do servidor.
Expanda Bancos de Dados, expanda Bancos de Dados do Sistema, clique com o botão direito do mouse
mastere selecione Nova Consulta para abrir uma janela de consulta com uma conexão com seuSQLTestDBbanco de dados.Execute os comandos a seguir para criar uma chave mestra de banco de dados e um certificado dentro do
masterbanco de dados.-- Create the master key. CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'; -- If the master key already exists, open it in the same session that you create the certificate. (See next step.) OPEN MASTER KEY DECRYPTION BY PASSWORD = '<password>' -- Create the certificate encrypted by the master key. CREATE CERTIFICATE MyCertificate WITH SUBJECT = 'Backup Cert', EXPIRY_DATE = '20201031';No Pesquisador de Objetos, no nó Banco de Dados, clique com o botão direito do mouse em
SQLTestDB, aponte para Tarefas e selecione Fazer Backup....Na página Opções de Mídia , na seção Substituir mídia , selecione Fazer backup em um novo conjunto de mídias e apagar todos os conjuntos de backup existentes.
Na página Opções de Backup , na seção Criptografia , selecione Criptografar backup.
Na lista Algoritmo , selecione AES 256.
Na lista de chaves certificado ou assimétrica , selecione
MyCertificate.Selecione OK.
D. Fazer backup no Armazenamento de Blobs do Azure
Este exemplo cria um backup de banco de dados completo do Armazenamento de Blobs do SQLTestDB Azure. O exemplo é escrito com a suposição de que você já tem uma conta de armazenamento com um contêiner de blob. O exemplo cria uma assinatura de acesso compartilhado. O exemplo falhará se o contêiner tiver uma assinatura de acesso compartilhado existente.
Se você não tiver um contêiner de Armazenamento de Blobs em uma conta de armazenamento, crie um antes de continuar. Confira Criar uma conta de armazenamento de uso geral e Criar um contêiner.
Depois de se conectar à instância apropriada do Mecanismo de Banco de Dados do SQL Server, no Pesquisador de Objetos, expanda a árvore do servidor.
Expanda Banco de Dados, clique com o botão direito do mouse em
SQLTestDB, aponte para Tarefas e selecione Fazer Backup....Na página Geral , na seção Destino , selecione URL no Backup para listar.
Selecione Adicionar. A caixa de diálogo Selecionar Destino de Backup é aberta.
Se você já registrou o contêiner de armazenamento do Azure que deseja usar com o SQL Server Management Studio, selecione-o. Caso contrário, selecione Novo contêiner para registrar um novo contêiner.
Na caixa de diálogo Conectar-se a uma Assinatura da Microsoft , entre em sua conta.
Na caixa Selecionar Conta de Armazenamento , selecione sua conta de armazenamento.
Na caixa Selecionar Contêiner de Blobs , selecione o contêiner de blob.
Na caixa de calendário Expiração da Política de Acesso Compartilhado , selecione uma data de validade para a política de acesso compartilhado criada neste exemplo.
Selecione Criar Credencial para gerar uma assinatura de acesso compartilhado e uma credencial no SQL Server Management Studio.
Selecione OK para fechar a caixa de diálogo Conectar a uma Assinatura da Microsoft .
Na caixa Arquivo de Backup , altere o nome do arquivo de backup se desejar.
Selecione OK para fechar a caixa de diálogo Selecionar um destino de backup .
Selecione OK para iniciar o backup.
Quando o backup for concluído com êxito, selecione OK para fechar a caixa de diálogo do SQL Server Management Studio.
Observação
Atualmente, não há suporte para fazer backup no Armazenamento de Blobs usando identidades gerenciadas.
Usar Transact-SQL
Crie um backup de banco de dados completo executando a BACKUP DATABASE instrução, especificando:
- O nome do banco de dados do qual fazer backup.
- O dispositivo de backup em que o backup completo do banco de dados será gravado.
A sintaxe básica Transact-SQL para o backup de banco de dados completo é:
BACKUP DATABASE <database>
TO <backup_device> [ , ...n ]
[ WITH <with_options> [ , ...o ] ];
| Opção | Descrição |
|---|---|
<database> |
O banco de dados que deve ser feito backup. |
<backup_device> [ , ...n ] |
Especifica uma lista entre 1 e 64 dispositivos de backup a serem usados para a operação de backup. Você pode especificar um dispositivo de backup físico ou especificar um dispositivo de backup lógico correspondente, se já estiver definido. Para especificar um dispositivo de backup físico, use a opção ou DISK a opçãoTAPE:{ DISK | TAPE } =physical_backup_device_namePara obter mais informações, confira Dispositivos de backup (SQL Server). |
WITH <with_options> [ , ...o ] |
Usado para especificar uma ou mais opções, o. As informações sobre algumas das opções básicas WITH são seguidas. |
Opcionalmente, especifique uma ou mais WITH opções. Algumas opções básicas WITH são descritas aqui. Para obter informações sobre todas as WITH opções, consulte BACKUP.
Opções básicas do conjunto WITH de backup:
- { COMPACTAÇÃO | NO_COMPRESSION }. No SQL Server 2008 (10.0.x) Enterprise e somente posterior, especifica se a compactação de backup é executada no backup, substituindo o padrão no nível do servidor.
- CRIPTOGRAFIA (ALGORITMO, CERTIFICADO DO SERVIDOR | CHAVE ASSIMÉTRICA). No SQL Server 2014 ou somente posterior, especifica o algoritmo de criptografia a ser usado e o certificado ou a chave assimétrica a ser usada para proteger a criptografia.
- DESCRIPTION = { 'text' | @text_variable }. Especifica o texto de forma livre que descreve o conjunto de backup. A cadeia de caracteres pode conter um máximo de 255 caracteres.
-
NAME = { backup_set_name | @backup_set_name_var }. Especifica o nome do conjunto de backup. Os nomes podem ter no máximo de 128 caracteres. Se
NAMEnão for especificado, ele fica em branco.
Por padrão, BACKUP acrescenta o backup a um conjunto de mídias existente, preservando os conjuntos de backup existentes. Para especificar explicitamente essa configuração, use a opção NOINIT . Para obter informações sobre como acrescentar a conjuntos de backup existentes, consulte Conjuntos de mídia, famílias de mídia e conjuntos de backup (SQL Server).
Para formatar a mídia de backup, use a opção FORMAT :
FORMAT [ , MEDIANAME = { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { text | @text_variable } ]
Use a FORMAT cláusula quando estiver usando mídia pela primeira vez ou quando quiser substituir todos os dados existentes. Opcionalmente, atribua à nova mídia um nome e uma descrição.
Importante
Tenha cuidado ao usar a FORMAT cláusula da BACKUP instrução porque essa opção destrói todos os backups armazenados anteriormente na mídia de backup.
Exemplos
Para os exemplos a seguir, crie um banco de dados de teste com o código Transact-SQL a seguir:
USE [master]
GO
CREATE DATABASE [SQLTestDB]
GO
USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR(100) NOT NULL,
dt1 DATETIME NOT NULL DEFAULT GETDATE()
)
GO
USE [SQLTestDB]
GO
INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO
SELECT * FROM SQLTest
GO
R. Fazer backup em um dispositivo de disco
O exemplo a seguir faz backup do banco de dados completo SQLTestDB em disco. Ele usa FORMAT para criar um novo conjunto de mídias.
USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO DISK = 'c:\tmp\SQLTestDB.bak'
WITH FORMAT,
MEDIANAME = 'SQLServerBackups',
NAME = 'Full Backup of SQLTestDB';
GO
B. Fazer backup em um dispositivo de fita
O exemplo a seguir faz backup do banco de dados completo SQLTestDB em fita. Ele acrescenta o backup aos backups anteriores.
USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO TAPE = '\\.\Tape0'
WITH NOINIT,
NAME = 'Full Backup of SQLTestDB';
GO
C. Fazer backup em um dispositivo de fita lógico
O exemplo a seguir cria um dispositivo de backup lógico para uma unidade de fita. Em seguida, o exemplo faz backup do banco de dados completo SQLTestDB para esse dispositivo.
-- Create a logical backup device,
-- SQLTestDB_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXEC sp_addumpdevice 'tape', 'SQLTestDB_Bak_Tape', '\\.\tape0'; USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO SQLTestDB_Bak_Tape
WITH FORMAT,
MEDIANAME = 'SQLTestDB_Bak_Tape',
MEDIADESCRIPTION = '\\.\tape0',
NAME = 'Full Backup of SQLTestDB';
GO
Usar o PowerShell
Use o Backup-SqlDatabase cmdlet. Para indicar explicitamente um backup de banco de dados completo, especifique o -BackupAction parâmetro com seu valor padrão. Database Esse parâmetro é opcional para backups completos de banco de dados.
Observação
Esses exemplos exigem o módulo SqlServer. Para determinar se ele está instalado, execute Get-Module -Name SqlServer. Para instalá-lo, execute Install-Module -Name SqlServer em uma sessão de administrador do PowerShell.
Para obter mais informações, consulte SQL Server PowerShell Provider.
Importante
Se você estiver abrindo uma janela do PowerShell de dentro do SSMS (SQL Server Management Studio) para se conectar a uma instância do SQL Server, poderá omitir a parte da credencial porque sua credencial no SSMS é usada automaticamente para estabelecer a conexão entre o PowerShell e sua instância do SQL Server.
Exemplos
R. Backup completo (local)
O exemplo a seguir cria um backup de banco de dados completo do banco de dados <myDatabase> para o local de backup padrão da instância de servidor Computer\Instance. Opcionalmente, este exemplo especifica -BackupAction Database.
Para obter exemplos de sintaxe completa, consulte Backup-SqlDatabase.
$credential = Get-Credential
Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database <myDatabase> -BackupAction Database -Credential $credential
B. Backup completo no Azure
O exemplo a seguir cria um backup completo do banco de dados <myDatabase> na instância para o <myServer> Armazenamento de Blobs. Uma política de acesso armazenado foi criada com direitos de leitura, gravação e listagem. A credencial https://<myStorageAccount>.blob.core.windows.net/<myContainer>do SQL Server foi criada usando uma assinatura de acesso compartilhado associada à política de acesso armazenada. O comando usa o $backupFile parâmetro para especificar o local (URL) e o nome do arquivo de backup.
$credential = Get-Credential
$container = 'https://<myStorageAccount>blob.core.windows.net/<myContainer>'
$fileName = '<myDatabase>.bak'
$server = '<myServer>'
$database = '<myDatabase>'
$backupFile = $container + '/' + $fileName
Backup-SqlDatabase -ServerInstance $server -Database $database -BackupFile $backupFile -Credential $credential
Tarefas relacionadas
- Criar um backup de banco de dados diferencial (SQL Server)
- Restaurar um backup de banco de dados usando o SSMS
- Restaurar um backup de banco de dados no modelo de recuperação simples (Transact-SQL)
- Restaurar banco de dados para ponto de falha – recuperação completa
- Restaurar um banco de dados para um novo local (SQL Server)
- Usar o Assistente de Plano de Manutenção
Conteúdo relacionado
- Solucionar problemas de operações de backup e restauração do SQL Server
- Visão geral do backup (SQL Server)
- Backups de log de transações (SQL Server)
- Conjuntos de mídia, famílias de mídia e conjuntos de backup (SQL Server)
- sp_addumpdevice (Transact-SQL)
- BACKUP (Transact-SQL)
- Fazer backup do banco de dados (página Geral)
- Fazer backup do banco de dados (página Opções de Backup)
- Backups diferenciais (SQL Server)
- Backups completos do banco de dados (SQL Server)