top of page

Criar backup database SQL SERVER

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • 27 de mai. de 2024
  • 4 min de leitura

Atualizado: 29 de ago.

Abra o cmd (Prompt de Comando)

Crie a pasta Backup


mkdir C:\Backup


Retorne para o SQLSERVER e execute o script abaixo, dentro do seu banco de dados:


ree


BACKUP DATABASE nomedoseubanco

TO DISK = 'C:\Backup\nomedoseubanco.bak'

WITH FORMAT,

     MEDIANAME = 'SQLServerBackups',

     NAME = 'Full Backup of nomedoseubanco';



Ao ser processado aparecerá a seguinte mensagem:

ree






E a partir de agora, terá um arquivo .bak dentro da sua pasta. Faça o backup regulamente.




É possível também criar um backup clicando com o botão direito, tarefas, fazer backup


ree


















Criando uma procedure para gerar o backup


Procedure parametrizada (melhor prática), pois assim podemos usar para qualquer banco sem editar o corpo.


➡️Criando a procedure


IF OBJECT_ID('dbo.sp_BackupDatabase', 'P') IS NOT NULL

    DROP PROCEDURE dbo.sp_BackupDatabase;

GO

CREATE PROCEDURE dbo.sp_BackupDatabase

    @DatabaseName SYSNAME,  -- ex.: 'stage', 'ods', etc.

    @BackupFolder NVARCHAR(4000) = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup',

    @UseCompression BIT = 1

AS

BEGIN

    SET NOCOUNT ON;

    BEGIN TRY

        -- Valida se o banco existe e está ONLINE

        IF NOT EXISTS (SELECT 1 FROM sys.databases WHERE name = @DatabaseName AND state_desc = 'ONLINE')

            THROW 51010, 'Banco informado não existe ou não está ONLINE.', 1;

 

        IF @DatabaseName = 'tempdb'

            THROW 51011, 'Não é permitido fazer backup de tempdb.', 1;

 

        -- Normaliza pasta (remove barra final)

        IF RIGHT(@BackupFolder,1) IN ('\','/')

            SET @BackupFolder = LEFT(@BackupFolder, LEN(@BackupFolder)-1);

 

        DECLARE @File NVARCHAR(4000) =

            @BackupFolder + N'\' + @DatabaseName + N'_' +

            CONVERT(char(8), GETDATE(), 112) + N'_' +

            REPLACE(CONVERT(char(8), GETDATE(),108),':','') + N'.bak';

 

        DECLARE @sql NVARCHAR(MAX) =

           N'BACKUP DATABASE ' + QUOTENAME(@DatabaseName) + N'

             TO DISK = @p1

             WITH INIT, STATS = 5' +

             CASE WHEN @UseCompression = 1 THEN N', COMPRESSION' ELSE N'' END + N',

                  NAME = N''Full Backup of ' + REPLACE(@DatabaseName,'''','''''') + N'''';

 

        EXEC sp_executesql @sql, N'@p1 NVARCHAR(4000)', @p1 = @File;

 

        PRINT 'Backup realizado com sucesso em ' + @File;

    END TRY

    BEGIN CATCH

        DECLARE @Msg NVARCHAR(2048) = ERROR_MESSAGE();

        RAISERROR(@Msg, 16, 1);

    END CATCH

END

GO

 


➡️Chamando a procedure


EXEC dbo.sp_BackupDatabase @DatabaseName = N'nomedoseubancoaqui';



➡️Especificando uma pasta para a procedure

-- ou, explicitando a pasta padrão:

EXEC dbo.sp_BackupDatabase 

    @DatabaseName = N'nomedoseubancoaqui',

    @BackupFolder =  N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup';


O SQL possui uma pasta para backup padrão, que podemos checar o endereço executando o script abaixo:


EXEC master.dbo.xp_instance_regread

     N'HKEY_LOCAL_MACHINE',

     N'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer',

     N'BackupDirectory';


Saída: BackupDirectory C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup


Se tiver com algum problema quando ao acesso a pasta, altere o caminho para uma pasta pública: C:\Users\Public\Backup somente para fazer o backup e copiar o arquivo .bak posteriormente.



Criar um backup de um banco SQL Server com Python



No terminal do VScode, instale: pip install pyodbc


# Backup Banco SQL Server com Python
# Script 1 — Autenticação SQL Server (login/senha)


import pyodbc

# Configurações da conexão
server = 'SEU_SERVIDOR_SQL_SERVER'  # Substitua pelo nome ou endereço IP do seu servidor SQL
database = 'nomedasuadatabase'
username = 'SEU_USUARIO'  # Substitua pelo seu nome de usuário do SQL Server
password = 'SUA_SENHA'  # Substitua pela sua senha do SQL Server


# String de conexão
conn_str = (

    'DRIVER={ODBC Driver 17 for SQL Server};'
    'SERVER=' + server + ';'
    'DATABASE=' + database + ';'
    'UID=' + username + ';'
    'PWD=' + password
)


# Comando SQL para fazer o backup
backup_file = r'C:\Backup\nomedasuadatabase.bak'
backup_sql = f"""
BACKUP DATABASE {database}
TO DISK = '{backup_file}'
WITH FORMAT,
NAME = 'Backup Completo do Banco de Dados XXXXXXXX'

"""

try:

    # Conectar ao banco de dados
    with pyodbc.connect(conn_str) as conn:
        with conn.cursor() as cursor:

            # Executar o comando de backup
            cursor.execute(backup_sql)
            print(f"Backup do banco de dados '{database}' foi salvo em: {backup_file}")

except Exception as e:

    print(f"Ocorreu um erro ao fazer o backup: {e}")



##########################################################################

# Backup Banco SQL Server com Python
# Script 2 — Autenticação do Windows (Trusted_Connection)


import pyodbc

# Configurações da conexão
server = 'localhost\\SQLEXPRESS'  # Nome do servidor
database = 'nomedatabase'


# String de conexão com autenticação do Windows
conn_str = (

    'DRIVER={ODBC Driver 17 for SQL Server};'
    'SERVER=' + server + ';'
    'DATABASE=' + database + ';'
    'Trusted_Connection=yes;'
)


# Comando SQL para fazer o backup
backup_file = r'C:\Backup\ouvidoria.bak'
backup_sql = f"""
BACKUP DATABASE {database}
TO DISK = '{backup_file}'
WITH FORMAT,
NAME = 'Backup Completo do Banco de Dados Ouvidoria'
"""

try:

    # Conectar ao banco de dados
    with pyodbc.connect(conn_str) as conn:
        with conn.cursor() as cursor:

            # Executar o comando de backup
            cursor.execute(backup_sql)
            print(f"Backup do banco de dados '{database}' foi salvo em: {backup_file}")

except Exception as e:

    print(f"Ocorreu um erro ao fazer o backup: {e}")

© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page