- Новый ролик! Настройка резервного копирования в PostgreSQL
- Восcтановление резервной копии
- Создание базы, бэкап, восстановление базы 1С с СУБД PostgreSQL (CentOS)
- Создание базы 1С через консоль управления кластером
- Создание базы 1С через клиентское приложение
- Создание базы в PostgreSQL бэкап и восстановление ее из dump с помощью pg_dump и pg_restore
- Автоматизация бэкапа
- Простой бэкап базы 1С в postgreSQL
- Инфраструктура. Как сделать резервное копирование нетиповых баз данных «1С» на PostgreSQL
- Скрипт Восстановления PostgreSQL :
Новый ролик! Настройка резервного копирования в PostgreSQL
Хотите быть уверенными в том, что ваши информационные данные не исчезнут бесследно в случае системного сбоя? Тогда вам пригодится этот ролик!
В ролике специалист компании «Неосистемы Северо-Запад ЛТД» расскажет про настройку резервного копирования в PostgreSQL в операционных системах Линукс и Windows .
Описание для Linux :
- Открываем в корневой к аталог PostgreSQL файл pg_hba.conf. по умолчанию для версии скачанной с release1C.ru это /etc/postgresql/12/main/pg_hba.conf
- Находим строку: local all postgres peer И меняем peer на trust, что бы получилось local all postgres trust
- Перезапускаем службу, что бы принять изменения. systemctl restart postgresql
- Теперь создаём скрипт с разрешением .sh и пишем туда следующий код: #!/bin/sh DATA=`date +»%Y-%m-%d»` database=Mondi_erp_ps_6 pg_dump -U postgres -d $database | gzip /backup/$DATA-$database.dump.gz /usr/bin/find /backup -type f -mtime +60 -exec rm -rf <> \;
- Сохраняем полученный скрипт, с расширением .sh, и разрешаем его запуск в качестве программы. Теперь вы можете запустить его и выполнить резервное копирование.
Настройка автоматического выполнения: crontab -e
И создаём задание следующем образом:
- Указываем минуту, час, день, месяц, и неделю выполнения
- Также указываем пользователя от имени которого должно выполняться задание, и путь до скрипта. [минута][час][день][месяц][неделя][пользователь][команда]
То есть, если мы хотим, чтобы наш скрипт выполнялся в 21 час 30 минут, каждый день, из-под пользователя root мы должны это указать следующим образом:
30 21 * * * root /home/aleksey/Documents/backup2.sh Сохраняем изменения, если сron не ругается, на проблемы с синтаксисом, значит мы сделали все правильно.
Восcтановление резервной копии
- Для восстановления бекапа, необходимо создать чистую базу и восстановить бекап в нее, иначе могут возникнуть ошибки — psql -U postgres test_base2 /backup/2021-09-04-test_base.dump
- После этого создаём новую базу на кластере 1С, и получаем работающий архив.
Если вам надо было восстановить бекап в рабочую базу, то просто удаляем текущую базу, и добавляем новую с таким же именем.
Создаем файл с расширением cmd, и содержимым — CHCP 1251 SET PGBIN=D:\Program Files\PostgreSQL\12.5-3.1C\bin SET PGHOST=localhost SET PGPORT=5432 SET PGUSER=postgres SET PGPASSWORD=QWaszx12 SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% SET PGDATABASE=Test CALL «%PGBIN%\pg_dump.exe» —format=custom —verbose —file=C:\1c_backup\back\%PGDATABASE%_%DATETIME%.dump forfiles /p C:\1c_backup\ /m *.backup /s /d -29 /c «cmd /c del @path /q»
Сохраняем скрипт и добавляем его в планировщик заданий.
Для восстановления резервной копии, мы так же должны создать чистую базу, и восстановить бекап в неё.
Для этого опять указываем параметры сервера postgresql — CHCP 1251 SET PGBIN=D:\Program Files\PostgreSQL\12.5-3.1C\bin SET PGHOST=localhost SET PGPORT=5432 SET PGUSER=postgres SET PGPASSWORD=QWaszx12 CALL «%PGBIN%\pg_restore -d Buh C:\1c_backup\Buh.dump
Теперь также, как на Linux, создаём новую базу на кластере 1С, и получаем работающий архив.
Если вам надо было восстановить бекап в рабочую базу, то просто удаляем текущую базу, и добавляем новую с таким же именем.
Если у вас остались вопросы, звоните нам: 8 (8142) 67-21-20
00:00 Настройка резервного копирования в PostgreSQL
00:38 Зачем нужно резервное копирование
01:05 Настройка резервного копирования на Линукс
05:30 Настройка резервного копирования на Windows
Предлагаем Вам посмотреть ролики:
Создание базы, бэкап, восстановление базы 1С с СУБД PostgreSQL (CentOS)
Создание базы 1С через консоль управления кластером
Открыть консоль управления кластером 1С, затем в дереве открыть ⇒ Console Root ⇒ Центральный сервер 1С ⇒ Кластер ⇒ Информационные базы, нажать ПКМ ⇒ Создать ⇒ Информационная база
В открывшемся окне нужно ввести необходимые данные для создания или добавления уже созданной БД. При необходимости добавить уже существующую базу в кластер нужно не ставить галочку «Создать базу данных в случае ее отсутствия», если нужно создать базу — поставить галочку. В поле «Сервер баз данных» нужно указать адрес сервера на котором установлена СУБД, как установить PostgreSQL для работы с сервером 1с можно посмотреть по |ссылке|
После непродолжительного ожидания, если все хорошо база будет создана, при возникновении проблем выведется окно с ошибкой.
Теперь нужно добавить базу в список информационных баз через клиентское приложение 1с как существующую базу.
Создание базы 1С через клиентское приложение
Для создания базы через клиент 1С нужно открыть клиент, нажать кнопку Добавить
Откроется окно в котором нужно выбрать создать базу или добавить существующую, если она была создана через консоль администрирования можно выбрать Добавление существующей базы, при этом нужо будет указать только сервер и имя базы.
Затем нужно выбрать как будет создана база из шаблона или с нуля
В этом окне указывается название базы, которое будет отображатся в списке клиента и выбирается где будет расположена база
В этом окне указываются характеристики базы
В последнем окне указываются дополнительные параметры при необходимости
Содержаться сведения о базах данных выводимые на клиенте, можно открыть этот файл как текстовый документ, скопировать оттуда сведения о вновь созданной бд и добавить их остальным клиентам.
Или можно сделать общий файл для всех клиентов, как это сделать описано |тут|
Создание базы в PostgreSQL бэкап и восстановление ее из dump с помощью pg_dump и pg_restore
pg_dump -Fc BASENAME > /DIR/BASENAME.dump
createdb -T template0 BASENAME
pg_restore -d BASENAME /DIR/BASENAME.dump
После создания базы таким образом ее необходимо добавить в кластер через консоль управления кластером, сделать это можно тем же путем, что и при создании базы через консоль.
Автоматизация бэкапа
Можно сделать, чтоб бэкап создавался автоматически в определенное время для этого воспользуемся службой cron
Для создания скрипта создадим файл
#!/bin/bash find /DIR -mtime +30 -delete pg_dump -Fc DBNAME > "/DIR/FILENAME--$(date +%Y-%m-%d_%H-%M).dump"
минуты часы 0 0 0 52 13 * * * postgres /home/script-pg_dump
Простой бэкап базы 1С в postgreSQL
Дайте угадаю, Вы хотите поскорее скопировать команду при помощи, которой можно по-быстрому сделать бэкап базы 1С ?
Замечательно!
И так, вы копируете команду и запустив ее у себя, вместо создания резервной копии получаете ошибку и возможно уже не первую на сегодня.
И что делать ? снова в путь по сайтам, форумам, телегам в поисках «почему не работает бэкап в PostgreSQL»
Нет, Коллега, имея дело из СУБД PostgreSQL 14, следует набраться немного терпения и как минимум прочитать внимательно несколько строк ниже.
Резервное копирование в PostgreSQL зависит от многих факторов:
- В какой операционной системе выполняем команду
- Как настроена безопасность на кластере СУБД
- Удаленное или локальное подключение к СУБД PostgreSQL 14.
- Какую программу мы используем для резервного копирования.
Конечно, в рамках одной статьи не разобрать все возможные варианты, поэтому мы возьмем за пример лишь пару классических случаев:
- База 1С на СУБД в дата центре – Ubuntu Server 22.04 LTS (Удаленно)
- База 1С у нас в локальном расположении (Windows Server 2022)
Сперва рассмотрим вариант №2, когда PostgreSQL на Windows Server 2022 в нашей локальной сети.
Доступ к СУБД у нас разрешен только из 127.0.0.1 (localhost) как и рекомендуется по безопасности, если Сервер 1С и СУБД PostgreSQL 14 у Вас находятся вместе на одном хосте.
Иначе в файле (файрволле постгреса pg_hba.conf) надо прописать IP, где у вас находится Сервер 1С, строка – пример: host all all 192.168.1.50/32 md5 вместо 127.0.0.1/32
Соответственно настройки в pg_hba.conf и postgresql.conf будут следующие:
Обратите внимание на “стрелку” в pg_hba.conf
РЕКОМЕНДУЕТСЯ! Закомментировать ipv6 если вы используете ipv4
Если Сервер 1С у Вас на другом сервере (Хосте) , тогда в postgresql.conf в listen_addresses пишем IP который вы указываете на Сервере 1С для подключения к удаленному хосту, где работает PostgreSQL (например так: listen_addresses = ‘192.168.1.35’)
listen_addresses = ‘192.168.1.35’ это ip нашего сетевого IP интерфейса, который “слушает” наш PostgreSQL.
Другими словами 192.168.1.35 это IP на сервере СУБД PostgreSQL.
Подключившись например по RDP к нашему серверу (Windows Server 2022) из нашего ПК, мы запускаем CMD и выполним резервное копирование базы «BUX» на диск E:/BACKUP
(Скрипт мы выполняем в терминале, где и работает PostgreSQL 14 + Сервер 1С и располагаются базы 1С Предприятия 8.3.21)
Выполнять резервное копирование базы 1С мы будем самым простым и надежным способом, используя утилиту «pg_dump».
После установки СУБД PostgreSQL она поселилась у Вас в каталоге «Bin»:
“C:\Program Files\PostgreSQL 1C\14\bin\pg_dump”
pg_dump это консольная программа, соответственно работать с ней мы будем в командной строке:
Инфраструктура. Как сделать резервное копирование нетиповых баз данных «1С» на PostgreSQL
Этот ролик о том, как на PostgreSQL сделать резервное копирование нетиповых баз данных «1С»
Чтобы избежать ошибки резервного копирования, связанной с размером данных в таблице Config, необходимо исключить из выгрузки данные таблицы config и выгрузить только ее схему.
Далее с помощью COPY WITH BINARY выгрузить уже данные таблицы.
Определяем размер таблицы Config. Если она превышает 512 Мб, то PG_Dump не сможет создать резервную копию.
Подключаемся к базе через терминал или открываем запросник в pgadmin и пишем в одну строку:
select pg_column_size(config.binarydata) from confiig order by 1 DESC limit 1;
Выполняем и получаем результат.
Значение выводится в байтах.
Скрипт резервного копирования на PostgreSQL:
# указываем Шебанг на баш
#!/bin/sh
#Задаем переменную на дату
DATA=`date +»%Y-%m-%d»`
#Задаем переменную на имя базы
database=Komp_Auto
#Задаем переменную на каталог резервного копирования
KATALOG=/backup/$DATA-$database
#Создаем резервную копию с исключением из выгрузки данных таблицы config
#pg_dump -U postgres —format=directory —jobs=4 —blobs —encoding UTF8 —verbose —exclude-table-data=config —file=$KATALOG $database
#Выгружаем таблицу Config
psql -U postgres —dbname=$database —command «\COPY public.config TO ‘$KATALOG/public.config.sql’ WITH BINARY;»
Скрипт Восстановления PostgreSQL :
Не забываем, что для корректного восстановления базы, загружать данные надо в пустую базу.
#!/bin/sh
#Задаем переменную на дату
DATA=`date +»%Y-%m-%d»`
#Задаем переменную на имя базы
database=Komp_Auto_Test
#Задаем переменную на каталог резервного копирования
KATALOG=/backup/$DATA-$database
#Восстанавливаем базу данных
pg_restore -U postgres —verbose —dbname=$database —jobs=4 $KATALOG
#Восстанавливаем данные в таблицу Config
psql -U postgres —dbname=$database —command «\COPY public.config FROM ‘$KATALOG/public.config.sql’ WITH BINARY;»
Предлагаем Вам посмотреть другие ролики:
Распаковочка. Установка сервера 1С:Предприятие и Postrge на операционную систему Linux
Как установить «1С» версии 8.3.21 на Ubuntu версии 22.04
Инфраструктура. Linux и Postgree достойная замена Microsoft
Таймкоды:
00:00:00 Вступление
00:00:26 По какой причине возникает ошибка выделения памяти
00:02:10 Проверка базы
00:03:04 Создание резервной копии
00:05:53 Восстановление резервной копии