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

10.01.18

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Резервное копирование файловой ИБ 1С:Розничная торговля:
.zip 863,27Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.

Сразу объясню, почему я отказался от имеющегося в 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

См. также

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    73135    628    45    

86

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

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

1200 руб.

03.09.2014    15818    21    6    

27

Архивирование (backup) Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение поможет настроить резервное копирование баз SQL в стандартный файл выгрузки баз 1С (*.dt).

2400 руб.

27.08.2024    1299    1    5    

1

HighLoad оптимизация Администрирование СУБД Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

13.08.2024    3201    1CUnlimited    9    

5

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

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

04.12.2023    9854    n_mezentsev    15    

27

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

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

07.10.2022    29771    sapervodichka    37    

147
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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) Слишком велико влияние человеческого фактора, в определённом смысле достаточно надёжно, но неприемлемо.
Оставьте свое сообщение