Резервное копирование файловой ИБ 1С:Розничная торговля

10.01.18

База данных - Архивирование (backup)

Предлагаю метод организации резервного копирования ИБ 1С:Розничная торговля. Метод резервного копирования - упаковка в архив. Способ запуска - при включении компьютера. Реализация - PowerShell.

Скачать файлы

Наименование Файл Версия Размер
Резервное копирование файловой ИБ 1С:Розничная торговля:
.zip 863,27Kb
2
.zip 863,27Kb 2 Скачать

Сразу объясню, почему я отказался от имеющегося в 1С механизма резервного копирования. Изначально всё было настроено средствами 1С и резервное копирование должно было осуществляться после выхода пользователя, т.е. вечером, в конце рабочего дня. Когда мне через какое-то время понадобилось восстановить базу одного из магазинов из резервной копии, я обнаружил, что копий-то нет. Причиной тому был человеческий фактор. Никто из работников не готов был ждать в конце рабочего дня завершения процесса резервного копирования (какое "ждать"? через 3 минуты автобус!). Всё это и подтолкнуло меня к решению, которое я реализовал.

Итак, что делает мой скрипт, запускающийся при загрузке компьютера (утром, пока работницы пьют кофе, делятся новостями, покупателей ещё нет).

Первым делом, происходит блокировка ИБ, дабы до окончания процесса копирования никто не смог запустить 1С и пытаться изменять ещё не до конца скопированную базу.

"{1,$date_stamp,00010101000000,""ACCESS DENIED!!!"","""",""""}" | Out-File -FilePath $base_dir\1Cv8.CDN -Encoding default -Force

(Ранее переменная $date_stamp получает значение ГГГГММДДччммсс, в переменной $base_dir хранится путь к ИБ)

Затем происходит упаковка файла 1Cv8.1CD простым и бесплатным архиватором 7-zip.

$pack_args=@("a", (""""+$bak_dir+"\"+$arc_name+"_"+$date_stamp+".7z"""), "-r", "-ssw", ("""-w"+$env:TEMP+""""), (""""+$base_dir+"\1Cv8.1CD"""))
$process=Start-Process -FilePath $pack_app -ArgumentList $pack_args -NoNewWindow -Wait -PassThru
$exit_code=$process.ExitCode

($bak_dir - путь к каталогу с архивами, $arc_name - префикс архива, $pack_app - путь к исполняемому файлу архиватора, зависит от разрядности ОС)

Логи процесса архивирования (время начала, время завершения, код завершения) складываются на FTP-сервер.

Import-Module PSFTP
$hash=$ftp_user+".pwd"
$password=(Get-Content "$hash" | ConvertTo-SecureString)
$local_path=$log_dir+"\"+$log_name+".log"
$credential=New-Object Management.Automation.PSCredential($ftp_user,$password)
Set-FTPConnection -Server $ftp_server -Session "BlakitFtp" -Credential $credential
$session=Get-FTPConnection -Session BlakitFtp
Add-FTPItem -LocalPath $local_path -Overwrite -Path $ftp_dir -Session $session

(Модуль PSFTP взят отсюда, $ftp_user - имя пользователя FTP-сервера, $hash - файл, содержащий хеш пароля пользователя, $log_dir и $log_name - каталог и имя файла журнала, $ftp_server - адрес FTP-сервера, $ftp_dir - каталог для журналов на сервере)

Удаляются копии, старше одной недели (жёсткий диск не резиновый всё-таки).

$now=Get-Date
$days="7"
$arc_stamp=$arc_name+"_*.7z"
$last_write=$now.AddDays(-$days)
$files=Get-Childitem -LiteralPath $bak_dir -Filter $arc_stamp | where{$_.LastWriteTime -le "$last_write"}
foreach ($file in $files)
{
    if ($file -ne $NULL)
    {
        Remove-Item $file.FullName | Out-Null
    }
}

Снимается блокировка ИБ.

Remove-Item -Path $base_dir\1Cv8.CDN -Force

 

Я постарался снабдить скрипт инсталлятором (install.ps1), который распакует необходимые файлы, установит недостающие компоненты, создаст файл конфигурации, файл с хешем пароля пользователя и ярлык для автоматического запуска. Единственное, что нужно сделать вручную - изменить политику выполнения скриптов PowerShell (подробнее)

Всё, что в архиве - либо написано мной, либо имеется в свободном доступе в сети интернет.

резервное копирование PowerShell

См. также

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

19200 руб.

15.05.2017    42514    10    24    

38

BackUPv8 - система резервного копирования баз 1С

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    14726    13    6    

18

Резервное копирование журнала транзакций, наконец-то!

Архивирование (backup) Администрирование СУБД Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    5857    n_mezentsev    15    

24

Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    19797    sapervodichka    36    

141

Архивирование базы в dt и дамп postgres

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Захотелось клиентам выгрузку архива баз, и выгрузку в дт, готовые скрипты с сети не заработали. Может, кому-то поможет. Релиз 8.3.18.1741.

1 стартмани

25.08.2022    4712    2    Gnom-Gluck    6    

6

Утилита копирования баз данных 1С

Архивирование (backup) Платформа 1С v8.3 Абонемент ($m)

Небольшая утилита для копирования файловых баз данных 1С.

1 стартмани

02.06.2022    4234    3    Giblarium    12    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. zarucheisky 11.01.18 12:04 Сейчас в теме
ИМХО, лучше копировать BITS-ом в облако.
Тот же mail.ru даёт 25 GB облака, можно настроить O-диск (есть такая вполне шустрая прога) и будет доступно как диск О.
2. avolkov2017 1 11.01.18 12:16 Сейчас в теме
(1)
Может, оно и лучше. Вероятно, я позже так и буду поступать, но пока я копирую только логи, поскольку сам архив при своём "весе" около 250 Мб через 512-кбитную "трубочку" от Белтелекома будет выгружаться весь рабочий день, а может и дольше.
3. zarucheisky 11.01.18 13:21 Сейчас в теме
(2) потому BITS и лучше - не грузит машину, не грузит канал особо
4. zarucheisky 11.01.18 13:24 Сейчас в теме
+(3) см Start-BitsTransfer
avolkov2017; +1 Ответить
5. aspirator23 339 20.01.18 15:36 Сейчас в теме
(4)
Start-BitsTransfer
Интересная штука, для РИБ отлично подходит.
6. DenisCh 20.01.18 15:38 Сейчас в теме
(1) Облака не нужны. Копировать нужно к себе и убирать в сейф.
7. avolkov2017 1 22.01.18 08:37 Сейчас в теме
(6) Слишком велико влияние человеческого фактора, в определённом смысле достаточно надёжно, но неприемлемо.
Оставьте свое сообщение