Бэкап 1с77 (SQL)

Ниже скрипт для бэкапа и расзбрасывания файлов бэкапов по папкам и штампу времени. Данный скрипт у меня выполняется в Агенте SQL, но изначально он powershell скрипт.

set-alias SevenZip "C:\DISKS\BACKUP\BACKUP1\Scripts\7z\7za.exe"


$serverName="127.0.0.1"
$dbName = "optovik"
$source = "D:\BASES\1c77\Optovik\"
$destination = "C:\DISKS\BACKUP\BACKUP1\Backup\"
$temp = "C:\DISKS\BACKUP\BACKUP1\TEMP\"


$fileStamp = Get-Date -format "dd HH-mm-ss"
$folderStamp = Get-Date -UFormat "%Y\%m\"

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoEnum") | Out-Null

$server = New-Object ("Microsoft.SqlServer.Management.Smo.Server") $serverName
$server.ConnectionContext.StatementTimeout = 0

$timestampBaseName = Get-Date -format _yyyy-MM-dd_HH-mm-ss

$targetPath =  "$temp$dbName$timestampBaseName.bak"

$smoBackup = New-Object ("Microsoft.SqlServer.Management.Smo.Backup")
$smoBackup.Action = "Database"
$smoBackup.BackupSetDescription = "Full Backup of " + $dbName
$smoBackup.BackupSetName = $dbName + " Backup"
$smoBackup.Database = $dbName
$smoBackup.MediaDescription = "Disk"
$smoBackup.Devices.AddDevice($targetPath, "File")


Write-warning "Бэкапим каталог 1С"
"  1. Очищаем  временный каталог"
Remove-Item -Force -recurse $temp\* | Out-Null

"  2. Копируем каталог базы 1с во временный каталог"
Copy-Item $source/* $temp -Recurse -force | Out-Null

"  3. Архивируем каталог базы 1с"
SevenZip a -tzip "$destination$folderStamp$fileStamp-folder.zip" $temp | Out-Null

"  4. Очищаем  временный каталог"
Remove-Item -Force -recurse $temp\* | Out-Null




Write-warning "Бэкапим базу 1С"
"  1. Очищаем  временный каталог"
Remove-Item -Force -recurse $temp\* | Out-Null

"  2. Бэкапим базу 1с"
$smoBackup.SqlBackup($server) | Out-Null

"  3. Архивируем базу 1с"
SevenZip a -tzip "$destination$folderStamp$fileStamp-base.zip" "$temp$dbName$timestampBaseName.bak" | Out-Null

"  4. Очищаем  временный каталог"
Remove-Item -Force -recurse $temp\* | Out-Null


Write-warning "Выполнено."

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *