Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Este artigo descreve como criar um backup completo de base de dados no SQL Server utilizando o SQL Server Management Studio (SSMS), Transact-SQL ou PowerShell.
Para obter mais informações, consulte Cópia de segurança e restauro do SQL Server com o Armazenamento de Blobs do Azure e Cópia de segurança do SQL Server para URL no Armazenamento de Blobs do Azure. Para uma visão geral dos conceitos e tarefas de backup, veja Visão geral de Backup (SQL Server).
Recomendações
À medida que uma base de dados cresce, as cópias de segurança completas da base de dados demoram mais tempo e requerem mais armazenamento. Para bases de dados grandes, complemente backups completos com uma série de backups diferenciais de bases de dados.
Estime o tamanho de uma cópia de segurança completa da base de dados com o procedimento armazenado de sistema sp_spaceused.
Por defeito, cada backup bem-sucedido adiciona uma entrada ao registo de erros do SQL Server e ao registo de eventos do sistema. Cópias de segurança frequentes podem preencher estes registos e tornar outras mensagens difíceis de encontrar.
Para suprimir entradas de registo de cópias de segurança, utilize o sinalizador de rastreio 3226, desde que os seus scripts não dependam dessas entradas.
Limitações
Não pode usar a BACKUP instrução numa transação explícita ou implícita.
Não é possível restaurar backups de versões mais recentes do SQL Server em versões anteriores. Por exemplo, não pode restaurar um backup do SQL Server 2025 (17.x) no SQL Server 2022 (16.x).
Segurança
TRUSTWORTHY está definido como OFF em um backup de banco de dados. Para definir TRUSTWORTHY como ON, consulte as ALTER DATABASE SET opções.
A partir do SQL Server 2012 (11.x), as PASSWORD opções e MEDIAPASSWORD não estão disponíveis para criar backups. Você ainda pode restaurar backups criados com senhas.
Permissões
As permissões BACKUP DATABASE e BACKUP LOG, por predefinição, pertencem aos membros da função fixa de servidor sysadmin e das funções fixas de base de dados db_owner e db_backupoperator.
A conta do serviço SQL Server deve ter permissões de leitura e escrita no ficheiro físico do dispositivo de backup. Problemas de propriedade ou permissões desse ficheiro impedem as operações de backup e restauro, e só aparecem quando a operação de backup ou restauro é executada.
Por exemplo, o procedimento armazenado do sistema sp_addumpdevice , que adiciona uma entrada de dispositivo de backup às tabelas do sistema, não valida o acesso a ficheiros.
Usar o SQL Server Management Studio
No Object Explorer, liga-te ao Database Engine e depois expande a árvore de servidores.
Expanda Bases de Dados e depois selecione uma base de dados de utilizadores. Ou, expanda as Bases de Dados do Sistema e selecione uma base de dados do sistema.
Clique com o botão direito na base de dados que quer fazer backup, aponte para Tarefas e depois selecione Backup....
Na caixa de diálogo Cópia de Segurança da Base de Dados, a base de dados que selecionou aparece na lista pendente. Podes mudar a base de dados para qualquer outra base de dados no servidor.
Na lista Tipo de backup , selecione um tipo de backup. O padrão é Full.
Importante
Você deve executar pelo menos um backup de banco de dados completo antes de poder executar um backup diferencial ou de log de transações.
Em componente Backup, selecione Banco de Dados .
Na seção de destino , reveja o local padrão para o arquivo de backup (na pasta de dados ../mssql).
Usa a lista Backup to para selecionar outro dispositivo. Selecione Adicionar para adicionar objetos ou destinos de backup. Podes distribuir o conjunto de backup em vários ficheiros para aumentar a velocidade do 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.
Opcionalmente, revê as outras definições nas páginas de Opções de Media e Opções de Backup .
Para mais informações sobre opções de backup, consulte Backup Database (Página Geral),Backup Database (página de Opções de Media) e Backup Backup Database (Página de Opções de Backup).
Selecione OK para iniciar o backup.
Quando o backup for concluído com sucesso, selecione OK para fechar o diálogo.
Remarks
Quando especificas uma tarefa de backup em SQL Server Management Studio, podes gerar o script de Transact-SQL BACKUP correspondente selecionando o botão Script e depois escolhendo um destino de script.
Depois de criar um backup completo da base de dados, pode fazer um backup diferencial da base de dados ou um backup do registo de transações.
Opcionalmente, selecione a caixa de seleção Cópia de segurança apenas de cópia para criar uma cópia de segurança apenas de 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. Backups apenas com cópia não estão disponíveis para o tipo de backup Diferencial .
A opção Sobreescrever media está desativada na página de Opções de Media quando fazes backup para um URL.
Exemplos
Para os exemplos seguintes, crie uma base de dados de teste utilizando o seguinte código Transact-SQL:
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 DEFAULT getdate() NOT NULL
);
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
Um. Backup completo em disco para o local padrão
Este exemplo faz backup da SQLTestDB base de dados para o disco no local de backup predefinido.
No Object Explorer, liga-te ao Database Engine e depois expande a árvore de servidores.
Expanda Bancos de Dados, clique com o botão direito do mouse em
SQLTestDB, aponte para Tarefase, em seguida, selecione Fazer Backup....Selecione OK.
Quando o backup for concluído com sucesso, selecione OK para fechar o diálogo.
B. Backup completo em disco para um local não padrão
Este exemplo faz backup da SQLTestDB base de dados para o disco numa localização que escolheres.
No Object Explorer, liga-te ao Database Engine e depois expande a árvore de servidores.
Expanda Bancos de Dados, clique com o botão direito do mouse em
SQLTestDB, aponte para Tarefase, em seguida, selecione Fazer Backup....Na página Geral, na secção Destino, selecione Disco na lista Fazer cópia de segurança para.
Selecione Remover até que todos os arquivos de backup existentes sejam removidos.
Selecione Adicionar. A caixa de diálogo Selecionar Destino de Backup abre-se.
Insira um caminho e um nome de arquivo válidos na caixa Nome do arquivo . Use .bak como extensão para simplificar a classificação dos ficheiros.
Selecione OK e depois selecione OK novamente para iniciar a cópia de segurança.
Quando o backup for concluído com sucesso, selecione OK para fechar o diálogo.
C. Criar um backup criptografado
Este exemplo faz backup da SQLTestDB base de dados com encriptação para o local de backup predefinido.
No Object Explorer, liga-te ao Database Engine e depois expande a árvore de servidores.
Expanda Bancos de Dados, expanda Bancos de Dados do Sistema, clique com o
masterbotão direito do mouse e selecione Nova Consulta para abrir uma janela de consulta com uma conexão com seuSQLTestDBbanco de dados.Execute os seguintes comandos para criar uma chave mestra da base de dados e um certificado na
masterbase 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 Explorador de Objetos, no nó Bases de Dados, clique com o botão direito do rato em
SQLTestDB, aponte para Tarefase selecione Cópia de Segurança....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 apague 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 Certificado ou Chave assimétrica , selecione
MyCertificate.Selecione OK.
D. Fazer backup no Armazenamento de Blobs do Azure
Este exemplo cria uma cópia de segurança completa da base de dados de SQLTestDB para o Armazenamento de Blobs do Azure. O exemplo assume que já tens uma conta de armazenamento com um contentor de blobs. O exemplo cria uma assinatura de acesso partilhada e falha se o contentor tiver uma assinatura de acesso partilhada existente.
Se não tiver um contentor de Armazenamento de Blobs numa conta de armazenamento, crie um antes de continuar. Consulte Criar uma conta de armazenamento de uso geral e Criar um contêiner.
No Object Explorer, liga-te ao Database Engine e depois expande a árvore de servidores.
Expanda Bancos de Dados, clique com o botão direito do mouse em
SQLTestDB, aponte para Tarefase, em seguida, selecione Fazer Backup....Na página Geral , na seção Destino , selecione URL na lista Fazer backup em .
Selecione Adicionar. A caixa de diálogo Selecionar Destino de Backup abre-se.
Se já registou anteriormente o contentor de armazenamento Azure que pretende usar com o SSMS, selecione-o. Caso contrário, selecione Novo contêiner para registrar um novo contêiner.
Na caixa de diálogo Ligar-se a uma subscrição da Microsoft, inicie sessão na sua conta.
Na caixa Selecionar Conta de Armazenamento , selecione sua conta de armazenamento.
Na caixa Selecionar Contêiner de Blob , selecione seu contêiner de blob.
Na caixa do calendário de Expiração da Política de Acesso Partilhado , selecione uma data de expiração para a política de acesso partilhado que este exemplo cria.
Selecione Criar Credencial para gerar uma assinatura e credencial de acesso partilhado no SSMS.
Selecione OK para fechar a caixa de diálogo Ligar a uma Subscrição 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 sucesso, selecione OK para fechar o diálogo.
Observação
Atualmente, não há suporte para backup no Armazenamento de Blob usando identidades gerenciadas.
Utilize o Transact-SQL
Crie uma cópia de segurança completa da base de dados executando a BACKUP DATABASE instrução. Especificar:
- O nome do banco de dados do qual fazer backup.
- O dispositivo de backup onde o backup completo do banco de dados é gravado.
A sintaxe Transact-SQL básica para um backup completo de banco de dados é:
BACKUP DATABASE <database>
TO <backup_device> [ , ...n ]
[ WITH <with_options> [ , ...o ] ];
| Opção | Descrição |
|---|---|
<database> |
A base de dados para fazer backups. |
<backup_device> [ , ...n ] |
Especifica de 1 a 64 dispositivos de backup para usar na operação de backup. Especifique um dispositivo de backup físico, ou especifique um dispositivo lógico de backup correspondente, se já estiver definido. Para especificar um dispositivo físico de cópia de segurança, utilize a opção DISK, TAPE ou URL:{ DISK | URL | TAPE} = physical_backup_device_nameUse URL para fazer backup no Armazenamento de Blobs do Azure ou no object storage compatível com S3. Para obter mais informações, consulte Dispositivos de Backup (SQL Server). |
WITH <with_options> [ , ...n ] |
Usado para especificar uma ou mais opções, n. Algumas das opções básicas WITH são descritas na lista seguinte. |
Opcionalmente, especifique uma ou mais WITH opções. Algumas opções básicas WITH são descritas aqui. Para informações sobre todas as WITH opções, consulte BACKUP.
Opções do conjunto básico WITH de cópias de segurança:
{ COMPRESSION | NO_COMPRESSION }. O SQL Server especifica se a compressão de backup é realizada no backup, sobrepondo-se ao padrão ao nível do servidor.
ENCRIPTAÇÃO (ALGORITMO, SERVIDOR | CERTIFICATE)ASYMMETRIC KEY. No SQL Server 2014 ou posterior, especifica o algoritmo de encriptação a usar e o certificado ou chave assimétrica a usar para garantir a encriptação.
DESCRIÇÃO = { 'texto' | @text_variable }. Especifica o texto livre que descreve o conjunto de cópias de segurança. A cadeia de caracteres 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 não especificar
NAME, está em branco.
Por padrão, o BACKUP acrescenta o backup a um conjunto de mídia existente, preservando os conjuntos de backup existentes. Para especificar explicitamente essa configuração, use a NOINIT opção. Para obter informações sobre como anexar 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 FORMAT opção:
FORMATO [ , MEDIANAME = { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { texto | @text_variable } ]
Use a FORMAT cláusula quando usar media pela primeira vez, ou quando quiser sobrescrever todos os dados existentes. Opcionalmente, atribua à nova mídia um nome de mídia e uma descrição.
Importante
Tenha cuidado ao utilizar a cláusula FORMAT da instrução BACKUP, porque esta opção destrói todas as cópias de segurança previamente armazenadas no suporte de cópia de segurança.
Exemplos
Para os exemplos seguintes, crie uma base de dados de teste utilizando o seguinte código Transact-SQL:
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 DEFAULT GETDATE() NOT NULL
);
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
Um. Fazer backup em um dispositivo de disco
O exemplo a seguir faz backup do banco de dados completo SQLTestDB em disco. Utiliza FORMAT para criar um novo conjunto de multimédia.
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. Anexa a cópia de segurança às cópias de segurança anteriores.
USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO TAPE = '\\.\Tape0'
WITH NOINIT,
NAME = 'Full Backup of SQLTestDB';
GO
C. Backup em um dispositivo de fita lógica
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
EXECUTE 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
PowerShell
Utilize o cmdlet Backup-SqlDatabase. Para indicar explicitamente um backup completo do banco de dados, especifique o -BackupAction parâmetro com seu valor padrão, Database. Esse parâmetro é opcional para backups completos de banco de dados.
Se abrir uma janela PowerShell dentro do SSMS para se ligar ao Mecanismo de Banco de Dados do SQL Server, pode omitir a parte das credenciais porque a sua credencial no SSMS estabelece automaticamente a ligação entre o PowerShell e o Database Engine.
Observação
Este exemplo requer o SqlServer módulo. Para obter mais informações, consulte SQL Server PowerShell Provider.
Exemplos
Um. 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 do servidor Computer\Instance. Opcionalmente, este exemplo especifica -BackupAction Database.
Para obter exemplos completos de sintaxe, consulte Backup-SqlDatabase.
$credential = Get-Credential
Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database <myDatabase> -BackupAction Database -Credential $credential
B. Backup completo para o Azure
O exemplo seguinte cria uma cópia de segurança completa da base de dados <myDatabase> na instância <myServer> no Armazenamento de Blobs. É criada uma política de acesso guardada com permissões de leitura, escrita e listagem. A credencial do SQL Server, https://<myStorageAccount>.blob.core.windows.net/<myContainer>, é criada utilizando uma assinatura de acesso partilhada associada à política de acesso armazenado. 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 uma cópia de segurança da base de dados sob o modelo de recuperação simples
- Restaurar o banco de dados para o ponto de falha - recuperação total
- 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)
- Cópias de segurança do registo de transações (SQL Server)
- Conjuntos de mídia, famílias de mídia e conjuntos de backup (SQL Server)
- sys.sp_addumpdevice (Transact-SQL)
- BACKUP (Transact-SQL)
- Banco de Dados de Backup (Página Geral)
- Banco de Dados de Backup (Página Opções de Backup)
- Backups diferenciais (SQL Server)
- Backups completos de banco de dados (SQL Server)