Created
April 22, 2018 18:34
-
-
Save themaximax/085bc48ea7a06c2378cf7362414ed7a9 to your computer and use it in GitHub Desktop.
Backup Skif_BP MSSQL Database
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$server = "localhost" #Адресс сервера (в моем случае локальный) | |
$db = "Skif_Bp" #База данных | |
$back_dir = "E:\backup" #Куда сохранять бэкапы | |
$file_name = $db + "_" + (Get-Date -Format yyyy-MM-dd) + ".bak" #имя бэкапа вида BaseName_2018-12-31.bak | |
$arch_type = "7z" #Тип архива | |
$days = 14 #сколько дней хранить бекапы | |
#Для бекапа сетевой базы нужно будет использовать логин и пароль для доступа к серверу | |
#cм. справку к команде Backup-SqlDatabase | |
Set-Location $back_dir | |
$back_dir = Get-Location | |
#ДЕЛАЕМ БЭКАП | |
Write-Host "Делаю резервную копию базы $db..." | |
Backup-SqlDatabase -ServerInstance $server -Database $db -BackupFile "$back_dir\$file_name" | |
if (-Not ($?)) { | |
Write-Host "Возникла непредвиденная ошибка!" -ForegroundColor Red | |
Read-Host "Для выхода нажмите Enter" | |
Exit | |
} | |
Write-Host "Архивирую..." | |
Compress-7Zip -Path $file_name -ArchiveFileName "$file_name.$arch_type" | |
Write-Host "Удаляю не сжатый $file_name" | |
Remove-Item $file_name -Force | |
Write-Host "`nРезервное копирование успешно завершено!" -ForegroundColor Green | |
#УДАЛЯЕМ СТАРЫЕ БЭКАПЫ | |
Write-Host "`nУдаляю устаревшие резервные копии:" | |
#Через Where-Object фильтруем вывод Get-ChildItem и циклом удаляем оставшиеся файлы | |
$date_limit = (Get-Date).AddDays(-$days) | |
Get-ChildItem | Where-Object {($_.Name -like "*.bak.$arch_type") -and ($_.LastWriteTime -lt $date_limit)} | | |
ForEach-Object { | |
Remove-Item $_ -Force | |
Write-Host "- $_" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Трюк для запуска PowerShell с правами администратора | |
If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { | |
# Relaunch as an elevated process: | |
Start-Process powershell.exe "-File",('"{0}"' -f $MyInvocation.MyCommand.Path) -Verb RunAs | |
exit | |
} | |
#Указываем пакеты, которые нам нужны, перебирая циклом, устанавливаем | |
$packages = '7Zip4Powershell', 'SqlServer' | |
foreach ($package in $packages) | |
{ | |
Get-Package $package -ErrorAction SilentlyContinue | Out-Null #Проверяем наличие пакета | |
if (-Not ($?)) #Если ошибка, то устанавливаем | |
{ | |
Clear-Host | |
Write-Host 'Устанавливаю'$package'...' | |
Install-Package -Name $package -Force | |
} | |
} | |
Write-Host 'Пакеты', $packages, 'установлены!' -ForegroundColor Green | |
Start-Sleep 3 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment