Chat global
Restaurar automaticamente todos os arquivos .bak
Olá a todos, este é um pequeno script que você pode usar para restaurar todos os arquivos .bak de bancos de dados.
Você há de concordar comigo que é bastante tedioso ter que restaurar manualmente cada arquivo .bak.
Para executá-lo, você precisa usar o PowerShell com privilégios de administrador.
Com o PowerShell aberto, precisamos instalar o módulo "SqlServer". Podemos fazer isso usando o seguinte comando:
Install-Module -Name SqlServer -Scope AllUsers
O próximo passo é salvar o script em um arquivo com a extensão ".ps1". Você pode salvá-lo em qualquer lugar, mas recomendo salvá-lo na raiz da sua unidade "C:" para facilitar o acesso pelo PowerShell.
O arquivo .ps1 (por exemplo, "restore.ps1") deve conter o seguinte código. Para criá-lo, você pode criar um documento de texto usando o "Bloco de Notas" e salvá-lo com a extensão correta.
Import-Module SqlServer
$path = "C:\DBS" # diretório onde os arquivos .bak são armazenados
$instance = "suainstânciadoSQL" # ejemplo: localhost o SERVER\SQLEXPRESS
$files = Get-ChildItem -Path $path -Filter *.bak
foreach ($f in $files) {
$dbname = $f.BaseName
Write-Host "Restaurando o banco de dados: $dbname desde $($f.FullName)"
$sql = @"
RESTORE DATABASE [$dbname]
FROM DISK = '$($f.FullName)'
WITH REPLACE, RECOVERY;
"@
Invoke-Sqlcmd -Query $sql -ServerInstance $instance
}
Write-Host "Processo concluído."
Depois de salvar o script, no PowerShell, precisamos acessar o caminho onde ele está armazenado e executá-lo usando "./nome_do_arquivo.ps1".
Após a execução, todos os arquivos .bak devem ser restaurados automaticamente.
Se o PowerShell retornar um erro ao tentar executar o script, use o seguinte comando para autorizar a execução de scripts personalizados:
Set-ExecutionPolicy RemoteSigned
Espero que seja útil e que lhe economize tempo. Atenciosamente.
- 21 Fóruns
- 290 Tópicos
- 1,727 Posts
- 11 Online
- 316 Membros
