Archive

Posts Tagged ‘backup database’

Realizando Backups T-SQL

Como foi visto anteriormente, podemos usar o SSMS para criar rotinas de backups de maneira intuitiva e visual, mas, existe ocasiões que precisamos apenas fazer um backup de um banco de dados. É mais conveniente usar a linguagem T-SQL do Microsoft SQL Server, além de ser simples é mais rápido. Ou até mesmo quando precisamos criar rotinas de backup mais flexíveis.

Se conecte ao SQL Server:

Abra uma nova janela no SSMS e digite a seguinte linha de comando:
Syntax:

–Comando de Backup Full de banco de Dados

BACKUP DATABASE database

TO backup_device [ ,n ]

[ WITH with_options [ ,o ] ] ;

Exemplo:

BACKUP DATABASE [TMKT]

TO DISK = N’D:TMKT.BAK’ WITH INIT,

STATS = 10

Acima podemos ver que criar um backup via T-SQL é muito simples. Caso fosse necessário executar o backup de forma regular através de um schedule, era só colocar o comando T-SQL em um job. Abaixo cito as opções mais utilizadas no arquivo de backup, para mais informações sempre usem a documentação do produto.
Parâmetros:
INIT – Especifica que todos os conjuntos de backup devem ser substituídos, mas preserva o cabeçalho da mídia. Se INIT é especificado, nenhum conjunto de dados de backup existentes nesse dispositivo é substituído.

STATS [= percentage] – Exibe uma mensagem cada vez que uma percentagem concluída, e é usado para medir o progresso. Se o percentual for omitido, o SQL Server exibe uma mensagem após cada 10 por cento é concluída.
Obs: Existem outros parâmetros além dos dois citados acima, consulte o BOL (Books On Line) do SQL Server.

MIRROR TO = Cria um “espelho” do backup para um outro dispositivo. Em caso que você queira ter o “backup do backup”. Uma restrição muito importante para esta clausula é que todos os dispositivos de backup devem ser do mesmo tipo, por exemplo: Um backup não pode ser mandado para uma fita se uma das cópias foi feita em disco.

COPY_ONLY – Especifica que o backup será apenas uma cópia. O copy_only é criado independente de seu regular scheduler. Sem afetar a sequência dos logs. Essa feature foi disponibilizada a partir do SQL Server 2005.

Obs: Se a opção differential e copy_only forem usadas juntas, a opção copy_only é ignorada e o backup diferencial é criado. Quando você usa a opção copy_only em um baclup de log, a sequência não é afetada e os logs não são truncados.

Realizando Backups SSMS

Agora que sabemos quais opções de backup o SQL Server oferece, vamos ver como realiza-los. O SQL Server oferece diversas formas para a criação de backup: Vamos  as mais utilizadas, através do SQL Server Management Studio (SSMS) ou usando comandos Transact-SQL. Em ambos os casos, é possível criar todos os tipos de backups abordados acima.
Criando um backup através do SQL Server Management Studio (Maintenance Plain)

Para acessar as janelas de opções do Maintenance Plain se conecte ao servido, conforme mostra figura abaixo:

Expanda os nós do SSMS até o Maintenance Plain

Clique com o botão direito em cima do nome Maintenance Plans e escolha a opção New Maintenance Plans.

Aparecerá a caixa de diálogo para que você especifique o nome do Plano de Manutenção.

Clique em Ok.

Aparecerá o painel de desenvolvimento do Plano de Manutenção.

Clique e arraste o componente Maintenance Cleannup Task para a parte amarela, conforme imagem:

Dê um duplo clique sobre o componente e a seguinte tela aparecerá:

No textbox Folder é o caminho de onde ficarão os arquivos de backups que serão deletados.
O checkBox permite a opção de excluir backups dentro de subpastas. E no File Age você pode escolher o tempo que os arquivos serão deletados, por defaulr são 4 semanas. Clique no botão com reticências ao lado do textbox folder e aparecerá uma nova janela, para escolher o caminhos de onde estarão os backups.

No nosso Server essa estrutura de pasta já estava criada, portanto, é opcional aonde serão colocados os arquivos de backup.

Obs: Nunca coloque arquivos de backup no C: do servidor, sempre deixe-os em discos separados em caso de falhas não haverá perda dos mesmos.

Clique Ok.

A nossa janela de Maintenance Cleannup Task deve ficar da seguinte maneira:
Clique em Ok.

Clique e arraste para o Painel o componente de backup

Dê um duplo clique no componente

Backup Type: Tipo do backup que será feito Full, Transactional ou Differential, como foi falado no inicio do documento.
DataBases: Quais databases serão backupeadas.
All Databases = Todas os banco de dados
System DataBases = Todos os Bancos de sistema
All User Databases = Todos os banco de dados de usuários, exceto tempdb, model, msdb e master. Conforme figura:

Escolha All User Databases e clique em ok.

Nossa tela de backup deverá ficar da seguinte maneira

Clique em Ok.

Clique na seta verde do componente Maintenance Cleannup Task e arraste para o Back Up Database Task, e os componentes ficarão da seguinte maneira:

Clique no calendário no canto superior direito do painel, pois, será hora de fazer o Schedule da rotina.

A seguinte janela aparecerá:

Occurs: Frequencia com que a atividade irá ser executada, no nosso caso será Daily
Daily frequency: Qual o horário que irá acontecer a rotina.

A nossa janela deve ficar da seguinte maneira:

Clique em Ok.

Clique em Salvar (ícone do disquete na parte superior da tela).

Feche o SQL Server.
Automaticamente será criado um Job no SQL Server Agent do servidor de banco de dados.

Espero ter ajudado….