Você está na página 1de 14

Criar um backup completo do banco de

dados
Aplica-se a: SQL Server

Este tópico descreve como criar um backup de banco de dados completo no SQL Server
usando SQL Server Management Studio, Transact-SQL ou PowerShell.

Para obter mais informações, consulte SQL Server Backup and Restore with Azure Blob
Storage and SQL Server Backup to URL .

Limitações e restrições
 A BACKUPinstrução não é permitida em uma transação explícita ou implícita.
 Os backups criados por uma versão mais recente do SQL Server não podem ser
restaurados em versões anteriores do SQL Server.

Para obter uma visão geral e uma análise mais profunda dos conceitos e tarefas de
backup, consulte 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 os
backups de banco de dados completos com uma série de backups de banco 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 adiciona uma entrada no log
de erros do SQL Server e no 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, dificultando a localização de outras mensagens. Nesses
casos, você pode suprimir essas entradas de log de backup usando o sinalizador de
rastreamento 3226 se nenhum de seus scripts depender dessas entradas. Para obter
mais informações, consulte Sinalizadores de rastreamento (Transact-SQL) .
Segurança
TRUSTWORTHY está definido como OFF em um backup de banco de dados. Para obter
informações sobre como definir TRUSTWORTHY como ON, consulte Opções de ALTER
DATABASE SET (Transact-SQL) .

A partir do SQL Server 2012 (11.x), as opções PASSWORD e MEDIAPASSWORD não


estão mais disponíveis para criar backups. Você ainda pode restaurar backups criados
com senhas.

Permissões
BACKUP DATABASEe BACKUP LOGas permissões padrão para membros da função de servidor
fixa sysadmin e as funções de banco de dados fixas db_owner e db_backupoperator .

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 na qual o serviço do 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 as permissões
de acesso ao arquivo. 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.

Usando o SQL Server Management Studio


Observação

Ao especificar uma tarefa de backup usando o SQL Server Management Studio, você pode
gerar o script Transact-SQL BACKUP correspondente clicando no botão Script e
selecionando um destino de script.

1. Após conectar-se à instância apropriada do Microsoft SQL Server Database Engine,


no Object Explorer , expanda a árvore do servidor.
2. Expanda Bancos de dados e selecione um banco de dados do usuário ou
expanda Bancos de dados do sistema e selecione um banco de dados do sistema.
3. Clique com o botão direito do mouse no banco de dados do qual deseja fazer
backup, aponte para Tarefas e selecione Fazer backup... .
4. Na caixa de diálogo Fazer backup do banco de dados , o banco de dados
selecionado aparece na lista suspensa (que pode ser alterada para qualquer outro
banco de dados no servidor).
5. Na lista suspensa Tipo de backup , selecione um tipo de backup - o padrão
é Completo .

Importante

Você deve executar pelo menos um backup completo do banco de dados antes de
executar um diferencial ou um backup de log de transação.

6. Em Componente de backup , selecione Banco de dados .


7. Na seção Destino , revise o local padrão do arquivo de backup (na pasta
../mssql/data).

Você pode usar a lista suspensa Fazer backup em para selecionar um dispositivo
diferente. Selecione Adicionar para adicionar objetos de backup e/ou
destinos. Você pode distribuir o conjunto de backup em vários arquivos para maior
velocidade de backup.

Para remover um destino de backup, selecione-o e selecione Remover . Para


visualizar o conteúdo de um destino de backup existente, selecione-o e
selecione Conteúdo .

8. (opcional) Revise 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 a página
Geral , a página de opções de mídia e a página de opções de backup .

9. Selecione OK para iniciar o backup.


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

 Depois de 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 marcar a caixa de seleção 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 (SQL Server) . Um backup
somente cópia não está disponível para o tipo de backup diferencial .
 A opção Substituir mídia está desativada na página Opções de mídia se você
estiver fazendo backup em um URL.

Exemplos

Para os exemplos a seguir, crie um banco de dados de teste com o seguinte código
Transact-SQL:

SQLcópia de
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

A. Backup completo em disco para o local padrão

Neste exemplo, SQLTestDBserá feito backup do banco de dados em disco no local de


backup padrão.
1. Após conectar-se à instância apropriada do Microsoft SQL Server Database Engine,
no Object Explorer , expanda a árvore do servidor.
2. Expanda Bancos de dados , clique com o botão direito do mouse em SQLTestDB,
aponte para Tarefas e selecione Fazer backup... .
3. Selecione OK .
4. 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 local não padrão

Neste exemplo, o SQLTestDBbackup do banco de dados será feito em disco em um local


de sua escolha.

1. Após conectar-se à instância apropriada do Microsoft SQL Server Database Engine,


no Object Explorer , expanda a árvore do servidor.
2. Expanda Bancos de dados , clique com o botão direito do mouse em SQLTestDB,
aponte para Tarefas e selecione Fazer backup... .
3. Na página Geral da seção Destino , selecione Disco na lista suspensa Fazer
backup em:.
4. Selecione Remover até que todos os arquivos de backup existentes tenham sido
removidos.
5. Selecione Adicionar e a caixa de diálogo Selecionar destino de backup será
aberta.
6. Insira um caminho válido e um nome de arquivo na caixa de texto Nome do
arquivo e use .bak como extensão para simplificar a classificação desse arquivo.
7. Selecione OK e, em seguida, selecione OK novamente para iniciar o backup.
8. 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, SQLTestDBserá feito backup do banco de dados com criptografia no local
de backup padrão.

1. Após conectar-se à instância apropriada do Microsoft SQL Server Database Engine,


no Object Explorer , expanda a árvore do servidor.
2. 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 seu SQLTestDBbanco de dados.
3. Execute os seguintes comandos para criar uma chave mestra de banco de dados e
um certificado no masterbanco de dados.

SQLcópia de
-- Create the master key
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';

-- 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 = '23987hxJ#KL95234nl0zBe'

-- Create the certificate encrypted by the master key


CREATE CERTIFICATE MyCertificate
WITH SUBJECT = 'Backup Cert', EXPIRY_DATE = '20201031';

4. No Object Explorer , no nó DatabasesSQLTestDB , clique com o botão direito do


mouse em , aponte para Tasks e selecione Back Up... .
5. Na página Opções de mídia , na seção Substituir mídia , selecione Fazer backup
em um novo conjunto de mídia e apagar todos os conjuntos de backup
existentes .
6. Na página Opções de backup na seção Criptografia , marque a caixa de
seleção Criptografar backup .
7. Na lista suspensa Algoritmo, selecione AES 256 .
8. Na lista suspensa Certificado ou chave assimétrica,MyCertificate selecione .
9. Selecione OK .
D. Fazer backup no Armazenamento de Blobs do Azure

O exemplo cria um backup completo do banco de dados SQLTestDBpara o


Armazenamento de Blobs do Azure. O exemplo pressupõe que você já tenha uma conta
de armazenamento com um contêiner de blob. O exemplo cria uma assinatura de acesso
compartilhado para você; este 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 do Azure em uma conta de


armazenamento, crie um antes de continuar. Consulte criar uma conta de
armazenamento de uso geral e criar um contêiner .

1. Após conectar-se à instância apropriada do Microsoft SQL Server Database Engine,


no Object Explorer , expanda a árvore do servidor.
2. Expanda Bancos de dados , clique com o botão direito do mouse em SQLTestDB,
aponte para Tarefas e selecione Fazer backup... .
3. Na página Geral da seção Destino , selecione URL na lista suspensa Fazer
backup em:.
4. Selecione Adicionar e a caixa de diálogo Selecionar destino de backup será
aberta.
5. Se você registrou anteriormente 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.
6. Na caixa de diálogo Conectar-se a uma assinatura da Microsoft , entre em sua
conta.
7. Na caixa de texto suspensa Selecionar conta de armazenamento , selecione sua
conta de armazenamento.
8. Na caixa de texto suspensa Selecionar Contêiner de Blob , selecione seu
contêiner de blob.
9. Na caixa de calendário suspensa Expiração da Política de Acesso Compartilhado
, selecione uma data de vencimento para a política de acesso compartilhado
que você criou neste exemplo.
10. Selecione Criar credencial para gerar uma assinatura e credencial de acesso
compartilhado no SQL Server Management Studio.
11. Selecione OK para fechar a caixa de diálogo Conectar a uma assinatura da
Microsoft .
12. Na caixa de texto Arquivo de backup , modifique o nome do arquivo de backup
(opcional).
13. Selecione OK para fechar a caixa de diálogo Selecione um destino de backup .
14. Selecione OK para iniciar o backup.
15. Quando o backup for concluído com êxito, selecione OK para fechar a caixa de
diálogo do SQL Server Management Studio.

Usando o Transact-SQL
Crie um backup de banco de dados completo executando a BACKUP DATABASEinstrução
para criar o backup de banco de dados completo, especificando:

 O nome do banco de dados para backup.


 O dispositivo de backup no qual o backup completo do banco de dados é
gravado.

A sintaxe básica do Transact-SQL para um backup completo do banco de dados é:

BACKUP DATABASE database TO backup_device [ , ... n ] [ WITH with_options [ , ... o ] ] ;

Opção Descrição
base de dados É o banco de dados cujo backup será feito.
dispositivo_de_backup [ , ... n ] Especifica uma lista de 1 a 64 dispositivos de backup a serem
usados para a operação de backup. Você pode especificar um
Opção Descrição
dispositivo de backup físico ou um dispositivo de backup lógico
correspondente, se já estiver definido. Para especificar um
dispositivo de backup físico, use a opção DISK ou TAPE:

{ DISK | TAPE } = physical_backup_device_name

Para obter mais informações, consulte Dispositivos de backup


(SQL Server) .
COM com_opções [ , ... o ] Usado para especificar uma ou mais opções, o . Para obter
informações sobre algumas das opções básicas com, consulte a
etapa 2.

Opcionalmente, especifique uma ou mais opções WITH . Algumas opções básicas do


WITH são descritas aqui. Para obter informações sobre todas as opções WITH ,
consulte BACKUP (Transact-SQL) .

Conjunto de backup básico COM opções:

 { COMPRESSÃO | NO_COMPRESSION } : somente no SQL Server 2008 Enterprise


e posterior, especifica se a compactação de backup é executada neste backup,
substituindo o padrão no nível do servidor.
 ENCRYPTION (ALGORITHM, SERVER CERTIFICATE | ASYMMETRIC KEY) : No
SQL Server 2014 ou posterior somente, especifique o algoritmo de criptografia a ser
usado e o certificado ou chave assimétrica a ser usado para proteger a criptografia.
 DESCRIÇÃO = { ' texto ' | @ text_variable }: especifica o texto de formato livre que
descreve o conjunto de backup. A string pode ter no máximo 255 caracteres.
 NOME = { backup_set_name | @ backup_set_name_var } : Especifica o nome do
conjunto de backup. Os nomes podem ter no máximo 128 caracteres. Se NAME não
for especificado, estará em branco.

Por padrão, BACKUPanexa o backup a um conjunto de mídia existente, preservando os


conjuntos de backup existentes. Para especificar explicitamente, use a NOINITopção. Para
obter informações sobre como anexar 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 :

FORMATO [ , MEDIANAME = { media_name | @media_name_variable }


] [ , MEDIADESCRIPTION = { texto | @ variável_texto } ]
Use a cláusula FORMAT quando estiver usando a mídia pela primeira vez ou quiser
substituir todos os dados existentes. Opcionalmente, atribua um nome e uma descrição
à nova mídia.

Importante

Tenha muito cuidado ao usar a cláusula FORMAT da BACKUPinstrução porque ela destrói
todos os backups que foram armazenados anteriormente na mídia de backup.

Exemplos

Para os exemplos a seguir, crie um banco de dados de teste com o seguinte código
Transact-SQL:

SQLcópia de
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

A. Fazer backup em um dispositivo de disco

O exemplo a seguir faz backup do SQLTestDBbanco de dados completo em disco,


usando FORMATpara criar um novo conjunto de mídia.
SQLcópia de
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 SQLTestDBbanco de dados completo em fita,


anexando o backup aos backups anteriores.

SQLcópia de
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. O
exemplo então faz backup do banco de dados SQLTestDB completo para esse
dispositivo.

SQLcópia de
-- 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

Usando o PowerShell
Use o cmdlet Backup-SqlDatabase . Para indicar explicitamente um backup de banco
de dados completo, especifique o parâmetro -BackupAction com seu valor
padrão, Database . Este parâmetro é opcional para backups completos do banco de
dados.

Observação

Esses exemplos requerem o módulo SqlServer. Para determinar se ele está instalado,
execute Get-Module -Name SqlServer. Para instalar, execute Install-Module -Name
SqlServerem 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 no SQL Server Management Studio
para se conectar a uma instalação do SQL Server, poderá omitir a parte da credencial, pois
sua credencial no SSMS é usada automaticamente para estabelecer a conexão entre o
PowerShell e sua instância do SQL Server.

Exemplos

A. Backup completo (local)

O exemplo a seguir cria um backup de banco de dados completo do <myDatabase>banco


de dados para o local de backup padrão da instância do
servidor Computer\Instance. Opcionalmente, este exemplo especifica -BackupAction
Database .

Para obter os exemplos completos de sintaxe, consulte Backup-SqlDatabase .

PowerShellcópia de
$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 <myServer>instância para o Armazenamento de Blobs do
Azure. Uma política de acesso armazenada foi criada com direitos de leitura, gravação e
lista. A credencial do SQL
Server, https://<myStorageAccount>.blob.core.windows.net/<myContainer>, foi criada
usando uma Assinatura de Acesso Compartilhado associada à Política de Acesso
Armazenado. O comando PowerShell usa o parâmetro BackupFile para especificar o
local (URL) e o nome do arquivo de backup.

PowerShellcópia de
$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

Você também pode gostar