Приветствую, Друзья!
В этой части статьи мы продолжим разбирать настройки pgAdmin 4 для 1С Предприятия.
Вы узнаете, как при помощи консоли pgAdmin 4 делать “бэкапы” и восстановления информационных баз 1С.
Рассмотрим создание пользователей и баз данных, а также (уже в третий заключительной части статьи) не пройдем мимо обслуживания баз на PostgreSQL.
Ведь как и в MS SQL информационные базы 1С на PostgreSQL, также нуждаются в обслуживании.
В прошлый раз мы закончили с базовыми настройками, подключились к серверу СУБД.
А это значит, что теперь можно создавать пользователя и базы для работы в 1С.
Зачем нам еще один пользователь, ведь у нас же есть наш root “postgres” ?
Создавая еще одного пользователя от имени, которого, мы будем подключать базы на сервере 1С (Кластер серверов) мы тем самым немного повысим безопасность подключения.
Почему немного ?
Дело в том, что для подключения, создания и работы в 1С, необходимы привилегии, так сказать права “суперпользователя” в pgAdmin 4. (Роль суперпользователя наделяет “учетку” большими полномочиями, но увы 1С это требует ).
Давайте создавать такого.
Правый клик мышкой на “Роли входа/группы” – “Создать” – “Роль входа/группы…”
Затем придумаем имя для нашего пользователя, например: “user_1s” и в комментарии стоит прописать, что это за пользователь.
Перейдем на вкладку “Определение” и укажем пароль для пользователя “user_1s”.
Также на этой вкладке мы можем указать срок действия роли (“Роль активна до”), что будет особо актуально для теста.
Часто взломы как раз и происходят на таких брошенных “учетках” слабые пароли делают свое дело.
Если Вам протестировать, тогда совет! – Сразу ставьте срок действия!
И еще одна полезная опция, это “Максимальное число подключений”.
Здесь также стоит ограничиться числом подключений к базе 1С. (Небольшой плюс в сторону безопасности).
И наконец, права. (Вкладка)
К сожалению, для нормальной работы в 1С, нам потребуются права “Суперпользователя”.
А также обязательно установим переключатель “Вход разрешен?”.
Все остальное можно игнорировать, так как работу по администрированию баз, мы будем выполнять от имени рута “postgres”.
Сохраним “роль”.
Вот теперь уже можно приступать к созданию ИБ в PostgreSQL.
ВНИМАНИЕ!
Создавать новую базу для работы в 1С, следует только с помощью утилиты администрирования кластера серверов (Сервера 1С).
Допускается также и ее создание на “Тонком” или “Толстом клиенте”.
Как это сделать, можно посмотреть вот здесь >>.
Теперь поговорим о создании баз средствами pgAdmin 4.
Казалось бы зачем нам это нужно если базы следует создавать только средствами утилиты или клиента 1С?
А ответ кроется в восстановлении баз данных на СУБД PostgreSQL.
Нам будет нужна “новая база” для последующего восстановления.
Но к этому вопросу мы еще вернемся и разберем все подробно.
И так “Как создать новую базу при помощи pgAdmin 4” ?
Правый клик мышкой по “Базы данных”- “Создать” – “База данных…”
Теперь на вкладке “Общие” зададим имя, любое на Ваше усмотрение.
Укажем владельца обязательно наш рут “postgres” и оставим комментарий.
Главное чтоб Вам было понятно, что это за база и для чего она предназначена.
В нашем случаи имя базы “replica” будет служить для нас “обложкой” для будущих восстановлений из бэкапа если такие потребуются.
(Сменить имя базы можно будет в любой момент.)
Другими словами мы ее создадим и оставим в покое до нужного случая. (Потом это существенно ускорит процесс восстановления из резервной копии).
Теперь идем на вкладку “Определение” и выполним некоторые настройки.
Укажем кодировку.
Кодировка: UTF-8.
Таблично пространство: “pg_default”.
Правило сортировки: “Russia_Russia.1251”.
Тип символов: “Russia_Russia.1251”.
Также мы можем ограничить число подключений к базе данных, указав соответствующее значение в строке – “Макс. число подключений”.
Также хочу обратить Ваше внимание на поле: Шаблон.
Выбрав соответствующий шаблон, мы сможем быстро создать копию базы из него!
Теперь кликнув по кнопке “Сохранить” мы создадим новую информационную базу так сказать шаблон или “обложку” для будущих восстановлений.
Если Вы выполнили все те действия что описаны выше, тогда отлично! мы можем приступить к следующему шагу
-Резервное копирование (“бэкап” базы на PostgreSQL) с использованием pgAdmin 4.
Обычно, резервное копирование баз данных в PostgreSQL выполняется при помощи консольных утилит pg_dump и pg_dumpall.
Они будут установлены вместе с PostgreSQL и Вы всегда найдете их в каталоге Bin (Пример: C:\Program Files\PostgresPro 1C\9.6\bin).
Утилиты консольные! и запустив их на выполнение, Вы не увидите интерфейса.
Работать с ними нужно только передав параметры (Выполнив определенный скрипт).
Пример командного файла:
1 |
"C:\Program Files\PostgreSQL\9.6.2-1.1C\bin\pg_dump.exe" --host localhost --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --section pre-data --section data --section post-data --encoding UTF8 --verbose --file "d:\1s_base.backup" "1s_base" |
Подобный код будет выполнять за Вас pgAdmin 4, для создания резервной копии на СУБД PostgreSQL.
То-есть pgAdmin 4 обращается к утилите pg_dump.exe (конечно в зависимости от выбранного формата) передает ей нужные указания (параметры) и делает копию.
Что и будет для многих новичков весьма кстати!
Так как писать руками ничего не приходится, и все сводится до нескольких кликов мышкой.
Прежде чем мы приступим к практике создания бэкапов при помощи pgAdmin 4, расскажу в двух словах еще об утилитах pg_dump.exe и pg_dumpall.exe.
pg_dump – это утилита позволяющая делать бэкап базы данных из postgresql. Она сохраняет в файл набор SQL команд которые полностью воссоздают структуру исходной базы данных.
При этом в один момент времени выполняется бэкап только одной базы данных и во многих случаях даже “на горячую”.
То-есть когда в базе работают пользователи!
pg_dumpall – используется для бэкапа всего кластера, утилита создает резервную копию всех баз данных, а также сохраняет данные уровня кластера, такие как роли и определения табличных пространств, одним словом все.
Возможности утилит очень широкие, но к сожалению pgAdmin их потенциал не раскрывает.
Только базовые вещи реализованы в pgAdmin 4, которых к слову новичку будет достаточно, а вот специалисту желающему получить более гибкие настройки придется поработать с командной строкой.
Как создать резервную копию базы 1С используя pgAdmin 4 ?
Правый клик мышкой по базе которую хотим “забэкапить” и “Резервная копия…”:
“Имя файла” укажем путь к файлу, в который будет упакован наш “бэкап”.
Рекомендую указать путь, где будет создан наш “бэкап”, + имя файла указать в формате даты и базы которую резервируем. (Как на картинке ниже).
Так мы будем точно знать когда и какой “бэкап” сделали.
В поле “Имя файла” – можно также указать и уже ранее созданный “бэкап” файла который будет в таком случаи просто перезаписан.
Далее формат! его нужно указать обязательно!
В pgAdmin 4 есть несколько форматов выгрузки базы в дамп.
1. Специальный – этот формат архива рекомендуется для средних и больших баз данных, поскольку он по умолчанию сжимается.
2. Tar – этот формат рекомендую выбирать для малых баз и + надежность!
(Коэффициент сжатия в таком случаи оставляем пустое значение , так как Tar не поддерживает сжатие).
(Tar – это файл архива).
3. “Простой” формат нужен, чтоб создать файл сценария с открытым текстом. Будет создан файл сценария с открытым текстом, который содержит инструкции и команды SQL. Файл резервной копии в “Простом” формате можно отредактировать в текстовом редакторе при необходимости. (Не рекомендую этот формат для “бэкапа” баз 1С!!!).
4. Каталог, этот формат предназначен, чтобы создать архив в формате каталога.
Этот формат файла создает каталог с одним файлом для каждой таблицы и сбрасывается blob! (blob – крупные объекты в резервной копии.) а также файл оглавления, описывающий сбрасываемые объекты в машиночитаемом формате, который может читать pg_restore (Утилита восстановления из резервной копии). Этот формат сжимается по умолчанию. (Не рекомендую его для “бэкапа” баз 1С!!!).
Коэффициент сжатия – здесь можно указать значение коэффициента от 0..до..9, или оставить поле пустым (Кроме Tar).
Кодировку – указывать не нужно.
Число заданий – указывать не нужно
Число заданий – настройка позволяет указать количество таблиц, которые будут сбрасываться одновременно в параллельной резервной копии. (Оставим пустое).
Имя роли нужно указать рута “postgres”.
Настройки на вкладке “Параметры выгрузки” трогать не стоит. (Оставляем их по умолчанию так как у нас база 1С).
“Параметры выгрузки” позволяют лишь ограничить “бэкап”, сделать его не полным, что конечно недопустимо в 1С.
После того как все нужные поля заполнены, выполним клик по кнопке “Резервная копия”.
И pgAdmin 4 начнет работу по созданию резервной копии нашей базы 1С “buh_3”.
Если кликнуть по ссылке “Щёлкните здесь для подробностей”, то можно увидеть процесс создания резервной копии онлайн, а также скрипт, что отрабатывает в дынный момент в pg_dump.
Вот и все! резервная копия успешно создана!
Теперь мы можем приступить к восстановлению базы из созданной ранее резервной копии.
Восстановление баз 1С из “бэкапа” при помощи pgAdmin 4 ничуть не сложнее чем его создание.
Вот и пришло время обратится к нашей чистой базе “обложке” “replica”.
На нее мы накатим наш “бэкап” базы “buh_3”.
Правый клик мышкой по базе “replica” и “Восстановить…”.
Формат оставляем по умолчанию “tar или специальный” собственно который и рекомендуется для баз 1С Предприятия.
Имя файла – путь к файлу резервной копии.
Число заданий – оставим пустое.
Имя роли – наш рут “postgres”.
Затем клик по кнопке “Восстановить”.
Восстановление баз данных в PostgreSQL (в основном, если не текстовый формат “бэкапа”) выполняется при помощи утилиты pg_restore.exe.
Утилита pg_restore предназначена для восстановления базы данных PostgreSQL из архива, созданного утилитой pg_dump в любом из не текстовых форматов. Она выполняет команды, необходимые для восстановления того состояния базы данных, в котором база была сохранена. При наличии файлов архивов, pg_restore может восстанавливать данные избирательно или даже переупорядочить объекты перед восстановлением. Примечательно, что разработанный для файлов архива формат не привязан к архитектуре.
Как и создание “бэкапа”, так и его восстановление можно подробно отслеживать в онлайне.
Процесс восстановления базы в PostgreSQL не быстрый. И даже чтоб восстановить базу размером всего на ~600 mb ушло (как видите на картинке ниже) – 106 секунд.
Теперь дело за малым.
Удалим старую базу “buh_3” и переименуем “replica” на “buh_3“.
Учтите, что удалить или переименовать базу, в которой продолжают работать пользователи невозможно!
Затем после удаления старой базы “buh_3”, сменим имя “replica” на “buh_3” через “Свойства” базы.
Вот и все!
Мы успешно восстановили базу из ранее созданной резервной копии.
В некоторых случаях (и для малых баз 1С), допускается выполнять такие операции руками, но помните, что так Вы рискуете забыть сделать актуальную резервную копию, существует риск, что сработает обычный “человеческий фактор”!
Конечно для организации “правильных бэкапов”, процесс создания резервной копии должен быть автоматизирован.
Другими словами резервная копия должна выполнятся автоматом без нашего участия.
Увы никакого подобия “планировщика” в pgAdmin 4 нет (, и чтоб поставить этот процесс на автомат, нам нужно воспользоваться сторонним инструментом.
Если мы говорим о Windows и новичках администраторах 1С, тогда несомненно лучшим выбором будет программа “PostgresBackup”.
Это бесплатный софт (Две базы бесплатно) со встроенным планировщиком, который запросто можно настроить для автоматического резервного копирования баз 1С на PostgreSQL.
В следующей заключительной статье, подробно разберем обслуживание баз данных в PostgreSQL, используя pgAdmin 4.
Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>
Вот этого очень ждал после первой части! Спасибо! Отличная статья и много полезного!
хоть кто-то помог полностью разобраться!
Здравствуйте, Александр.
Был рад помочь!
Скоро опубликую еще одну (заключительную) часть статьи, чтоб хоть базово закрыть вопрос pgAdmin и 1С
Обслуживания баз конечно больше ждут) У многих бекап сторонними программами реализован. Ещё раз спасибо! Мне полезно.
Здравствуйте, Богдан, в 9,6 можно было накатывать бэк-ап прямо на поломанную базу, в других версиях, позже как-то не получалось именно пг-админом, выдает ошибки, накатывали через командную строку. Сейчас также делаю, только сразу переименовываю БД, создаю пустышку с нужным именем и заливаю. Или руки не отдуда?
Здравствуйте, Георгий.
Лучше через командную строку, более безопасно.
Если же В Pgadmin 4 тогда должны быть установлены эти переключатели: https://help.stack-it.ru/assets/15_data-6cf539e6.png
Но даже В Pgadmin 4 рекомендую все же сперва удалить сломанную базу и накатывать уже на новую, просто надежнее будет.
Добрый день, Кухар.
У меня возник следующий вопрос.
Я создал базу средствами PGAdmin. Успешно к ней подключился. Все работает. Выгружаю новую БД в файл .sql. Создаю новую БД, загружаю в нее информацию из созданного файла .sql, но при этом 1С ругается, что ИБ не обнаружена. Я хочу уточнить, обязательно ли после восстановления удалять старую БД, а новую переименовывать в старую. Можно ли сохранить две базы одновременно – старую и новую?
Здравствуйте.
Создавать надо новую базу, а старую можно переименовать.