Powershell para DBAs SQL Server – Vídeo 08 (Backup e Restore)

Mais um vídeo da série de powershell para DBAs SQL Server no canal SQLCrespi do Youtube (lembrem de assinar o canal, dar like e compartilhar).

Neste vídeo eu falo dos cmdlets Backup-SQLDatabase e Restore-SQLDatabase.

Abaixo segue o código de exemplo utilizado no vídeo.

[code language=”powershell”]
#Conecta no servidor
Enter-PSSession -ComputerName win2016
#importa o sqlps
Import-Module sqlps
Backup-SqlDatabase -Database adventureworks -ServerInstance ‘win2016’ -BackupFile ‘\\WINAD\backup\adv.bak’
#verifica se o backup foi feito
#remove o backup
#compressão
Backup-SqlDatabase -Database adventureworks -ServerInstance ‘win2016’ -CompressionOption On -BackupFile ‘\\WINAD\backup\adv.bak’
#backup de log
Backup-SqlDatabase -Database adventureworks -ServerInstance ‘win2016’-CompressionOption on -BackupFile ‘\\WINAD\backup\adv.bak’ -BackupAction Log
#diferencial
Backup-SqlDatabase -Database adventureworks -ServerInstance ‘win2016’ -CompressionOption On  -BackupFile ‘\\WINAD\backup\adv_copyonly.bak’ -Incremental
#Copy only
Backup-SqlDatabase -Database adventureworks -ServerInstance ‘win2016’ -CompressionOption On  -BackupFile ‘\\WINAD\backup\adv_copyonly.bak’ -CopyOnly
####################### ou #######################
Set-Location sqlserver:
Set-Location \sql\win2016\default\databases
Backup-SqlDatabase -Database ‘AdventureWorks’-BackupFile ‘\\winad\backup\adv2.bak’ -CompressionOption on
### o Melhor
Get-ChildItem
Get-ChildItem |Backup-SqlDatabase -BackupFile ‘\\winad\backup\todos.bak’ -CompressionOption on
### E os bancos de sistema?
### eles são ocultos
Get-ChildItem -Force
#tiramos o tempdb
Get-ChildItem -Force |where name -ne ‘tempdb’
Get-ChildItem -Force |where name -ne ‘tempdb’ |Backup-SqlDatabase -BackupFile ‘\\winad\backup\todos.bak’ -CompressionOption on
###Consultar o conteúdo dos bakcups
Invoke-Sqlcmd -query "Restore headeronly from disk = ‘\\winad\backup\todos.bak’" | Format-Table
#criptografando
$cert = New-SqlBackupEncryptionOption -Algorithm Aes256 -EncryptorName certificado_backup -EncryptorType ServerCertificate
Backup-SqlDatabase -Database adventureworks -BackupFile ‘\\winad\backup\cript.bak’ -EncryptionOption $Cert
################Restore
#dropa o adventureworks
Invoke-Sqlcmd -query "drop database adventureworks"
Set-Location sqlserver:
Get-ChildItem \sql\win2016\default\databases -Force
#Restore
Restore-SqlDatabase -Database ‘adventureworks’ -BackupFile ‘\\winad\backup\adv2.bak’
#Restore com posição e replace
Restore-SqlDatabase -Database ‘adventureworks’ -BackupFile ‘\\winad\backup\adv2.bak’ -ReplaceDatabase
[/code]

Abraço, Rodrigo

Author: SQLCrespi

Rodrigo Crespi é MVP Data Platform, MCT, MCSE, MCSA, MCIT, MCDBA e MCP em SQL Server, possuí outras certificações em .NET Framework, Dynamics CRM e etc. Iniciou trabalhando com SQL Server na versão 6.5 na época como desenvolvedor, logo direcionou a sua carreira para a área de administração de bancos de dados. Atualmente é Sócio da CrespiDB – Soluções em Plataformas de Dados, além de professor universitário na Uniftec – Caxias do Sul Autor de diversos artigos publicados em sites e revistas sobre SQL Server e engenharia de software, mantem o canal SQLCrespi no Youtube, o blog SQLCrespi, além de ser dedicado ao SQL Server RS PASS Chapter Leader do grupo de profissionais em SQL Server do Rio Grande do Sul.

One thought on “Powershell para DBAs SQL Server – Vídeo 08 (Backup e Restore)

Deixe uma resposta