Использование Python скриптов для обслуживания баз PostgreSQL

Публикация № 1625361 22.03.22

База данных - Инструменты администратора БД

Описание скрипта для обслуживания баз PostgreSQL.

Вводные

  • Сервера PostgreSQL с базами 1С на Ubuntu 20.04
    • установленный rclone и настроенное подключение к внешнему хранилищу
  • Желание автоматизировать рутинные операции
    • Резервное копирование через pg_dump
      • перенос на внешнее хранилище и управление границей хранения используя rclone
      • уведомления о выполнении пакета на https://healthchecks.io/
    • Перенос баз с сервера на сервер
      • миграция
      • разворачивание/обновление тестовых баз
  • Чтобы присутствовал логгер
  • Чтобы корректно отрабатывало исключения
  • Рабочий скрипт на bash, который запускается из под postgres на сервере c БД

 

Вариант решения

Написал скрипт на Python 3.8, он идет в стандартной поставке Ubuntu 20.04. Из плюсов написанный код достаточно просто понять и при необходимости поправить.

Использовал только стандартные библиотеки, чтобы можно было скопировать, добавить конфиг и запустить через cron например. Большинство команд это отдельные приложения поэтому запускаю их через subprocess (ссылка). Для переиспользования функции по работе с файлами выделил в отдельные файлы и подключаю в управляющие скрипты. Конфиг в формате JSON потому что он обрабатывается стандартной библиотекой.

С уважением отношусь к OneScript, но на данный момент удобнее писать на python. Обертки работы с сервером 1С пока нет, возможно буду использовать Odin (ссылка). Про то что бекап через pg_dump не самое лучшее решение знаю, до реплик, pg_wal и barman дорасту и напишу.

 

Создание резервной копии

После создания в локальную папку перемещает на внешнее хранилище и делает GET запрос при успешном выполнении пакета.

 
 Скрипт (pg_backup.py)

 

 
 Пример конфигурации (pg_backup_config.json)

 

Копия с prod на dev сервер указанной базы

Запускается командой "python3 pg_copy_prod_to_test.py --src-base rt --dst-base rt_test_1"

 
 Скрипт (pg_copy_prod_to_test.py)

 

 
 Пример конфигурации (pg_copy_prod_to_test_config.json)

 

Копирование списка баз с сервера на сервер

Использовал для перехода с 11 на 14 версию Postgres

  • создал новый контейнер с Postgres
  • остановил сервер 1С
  • перенес базы
  • поправил настройки подключения на сервере 1С
  • запустил сервер 1С
 
 Скрипт (pg_copy_base.py)

 

 
 Пример конфигурации (pg_copy_base_config.json)

 

Обработчики

Для работы с PG

 
 pg_handler.py

Для работы с файлами

 
 file_handler.py

Итог

Получил инструмент, который могу скомпоновать под новые требования используя готовые обработчики.

 

Благодарю за внимание.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mixsture 24.03.22 16:33 Сейчас в теме
raise Exception(f'Get DB list: {host} {result.stderr}')


эх, лучше брать пониже классы исключений. ValueError например. Потому что попытка перехватить Exception, который используется в вашем коде, будет заодно хватать Ctrl-C.
2. malikov_pro 1237 25.03.22 06:22 Сейчас в теме
(1) Благодарю за критику. Для 2 актуально, но для 3 "KeyboardInterrupt Начиная с 2.5 наследуется от BaseException, чтобы избежать отлова кодом, обрабатывающего Exception, что может мешать остановке интерпретатора."

Мне повод глубже изучить вопрос (использовать ValueError или сделать наследник от Exception), после поправлю код.
3. fatman78 16 22.04.22 11:55 Сейчас в теме
Можно еще для снятия копии с продуктовой базы (для тестовых копий и копий разработки без гарантий целостности) использовать штатную утилиту 1С - ibcmd. В этом случае уже нет привязки к версии SQL и можно сразу из .DT разворачивать файловую базу.
4. malikov_pro 1237 22.04.22 14:41 Сейчас в теме
(3) "В этом случае уже нет привязки к версии SQL" - на данный момент не вижу проблемы с версией СУБД в контексте 1С, переносил с 10 на 14, полет нормальный. Для больших объемов использование выгрузки в DT не рекомендуют.
Оставьте свое сообщение

См. также

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Обработка документов Инструменты администратора БД Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    20103    62    140    

46

SALE! %

PowerTools

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

2400 1920 руб.

14.01.2013    164742    1010    0    

770

Подсистема хранения картинок во внешних файлах для УТ 10.3

Инструменты администратора БД Платформа 1С v8.3 1С:Управление торговлей 10 Управленческий учет Платные (руб)

Решение позволит вам хранить файлы и картинки вне базы данных, для более лучшей компактности вашей базы данных

21600 руб.

11.08.2021    7159    2    6    

1

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

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

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

3600 руб.

06.02.2017    28509    28    17    

41

Система хранения присоединенных файлов в томах на диске

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

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    58458    81    53    

69

Хранилище файлов на SQL

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

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

7200 руб.

09.10.2019    8841    4    8    

7

Конфигурация Session Monitor

Мониторинг Инструменты администратора БД Платформа 1С v8.3 Россия Платные (руб)

Конфигурация Session Monitor предназначена для мониторинга сервера 1С с целью отслеживания чрезмерной нагрузки от конкретных сеансов и скорости реакции рабочих процессов.

1500 руб.

01.12.2020    11050    23    0    

36

Обслуживание баз данных 1C на Postgresql под Astra Linux

Администрирование СУБД Инструменты администратора БД Linux Платформа 1С v8.3 Абонемент ($m)

Эта публикация для тех специалистов 1С, которые развернули сервер 1С и сервер PostgreSQL под Astra Linux и которым не интересно работать в командной строке, выполняя «шаманские» скрипты для автоматического сохранения и восстановления баз. Возможно вам тоже будет удобно обслуживать базы данных PostgreSQL решением на платформе 1С.

10 стартмани

14.06.2022    7593    13    alfanika    11    

22

Доп. панель Alt+Z

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Панель, вызываемая для объекта комбинацией клавиш Alt+Z (для документа, справочника, плана вида характеристик, плана счетов и т.д.). Возможности: Редактор всех реквизитов, таблиц и движений, Анализ прав к объекту, Поиск ссылок на объект с фильтрами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Подключается как Расширение.

1 стартмани

24.06.2021    19082    167    sapervodichka    72    

164

Легкий способ регистрации библиотеки COMCNTR.DLL (для COM-соединения)

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Устали от командных строк, нюансов с разрядностью 32х/64х или ручного создания V83COMConnector в службе компонентов? Предлагаю простой способ регистрации библиотеки COMCNTR.DLL.

22.12.2020    68418    vakrikun    32    

91

Оптимизация размера изображений из присоединенных файлов УТ 11.4

Инструменты администратора БД Обработка справочников Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

У нас часто возникала ситуация, когда необходимо настроить обмен с сайтом или с внешней системой, но выгружаемые изображения слишком сильно увеличивали объем сообщений обмена, обмен происходил медленно. Да и для самой базы, операции с не оптимизированными изображениями требуют большего количество ресурсов и места на диске. Потому мы собрали свои наработки в одно расширение.

5 стартмани

10.07.2020    18309    30    Neti    6    

17

Самые распространенные заблуждения об индексах в мире 1С

Инструменты администратора БД Администрирование СУБД Бесплатно (free)

"Магия" индексов привела к множеству заблуждений об их работе. Попробуем развеять некоторые из них в контексте 1С.

28.11.2019    50452    Infostart    53    

334

Использование Zabbix для сбора информации о серверных вызовах и управляемых блокировках с сервера 1С Предприятия, работающего на платформе GNU/Linux

Инструменты администратора БД Мониторинг Платформа 1С v8.3 Бесплатно (free)

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

10.09.2019    28155    Sloth    81    

131

Нарушение целостности системы

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Причины возникновения ошибки "Обнаружено нарушение целостности системы" и способы ее устранения.

07.09.2019    61647    Rain88    28    

114

Почему Вы не обслуживаете итоги?

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Небольшая заметка по обслуживанию итогов. Все ли Вы делаете правильно?

04.07.2019    33484    Infostart    36    

120

Опыт обновления до 8.3.14 - лицензии и утилита ring

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

На выходных было скучно, поэтому решили обновить 1с до 8.3.14.1694. С лицензиями пришлось немного повозиться.

29.04.2019    49789    Sander80    31    

82

Практика перехода на Linux и Postgres в небольшой компании (10 пользователей)

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

Почему я решил поставить давнему клиенту Linux + Postgres вместо Windows + MS SQL? Что меня останавливало раньше?

22.04.2019    39676    starik-2005    183    

122

LicDataDecoder - расшифровка файла программной лицензии 1С

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

Представляю вашему вниманию утилиту, предназначенную для работы с файлами программных лицензий 1С (*.lic).

1 стартмани

10.02.2019    74455    678    GeraltSnow    77    

144

Debian 9.7 + PostgreSQL для 1С. Как завести с пол-оборота

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Предлагаю взять на заметку информацию по установке и настройке в формате typical, typical, done.

02.02.2019    33171    valentinko    15    

79

1С и Яндекс.Облако Compute Cloud. Вдоль и поперек

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Бороться и искать. Найти и перепрятать. Достаточно популярная поговорка во времена Союза. Вот и сейчас, те у кого сервер 1С в локальной сети мечтают вынести его в облако, а те у кого в облаке прикупить свой в локальную сеть. Тестирование Яндекс.Облако Compute Cloud для 1С Предприятие оставило у меня приятное впечатление. Возможно кто-то повторит его и внесет больше ясности в настройки виртуальных серверов, использованию API и так далее. Пока же пользуйтесь чем я послал. Интересующихся прошу под кат…

20.01.2019    21256    capitan    31    

96

Копирование числовых ячеек из 1С в Excel

Загрузка и выгрузка в Excel Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

15.01.2019    44817    itriot11    27    

33

Семь рекомендуемых бесплатных курсов Microsoft для ИТ-администраторов

Инструменты администратора БД Бесплатно (free)

Образовательный портал «Нетология» предлагает вам пройти семь онлайн-курсов по облачным сервисам Microsoft бесплатно и получить сертификат об их завершении. Все курсы основаны на самых популярных сценариях использования облачных технологий в компаниях малого и среднего бизнеса. Разберемся, что же эти учебные программы предлагают.

28.12.2018    19378    VKuser24342747    2    

34

Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Если кратко описать мое отношение к Postgres: Использовал до того, как это стало мейнстримом. Конкретнее: Собирал на нем сервера для компаний среднего размера (до 50 активных пользователей 1С). На настоящий момент их набирается уже больше, чем пальцев рук пары человек (нормальных, а не фрезеровщиков). Следуя этой статье вы сможете себе собрать такой же и начать спокойную легальную жизнь, максимально легко сделать первый шаг в мир Linux и Postgres. А я побороться за 1. Лучший бизнес-кейс (лучший опыт автоматизации предприятия на базе PostgreSQL). Если, конечно, статья придется вам по вкусу.

25.12.2018    49736    capitan    150    

210

Чем PostgreSQL может быть полезен разработчику 1С

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

В статье будут рассмотрены примеры, которые могут оказаться полезными в повседневной работе разработчика 1С и не только: как можно сделать снимок рабочей базы без файла резервной копии, как можно эффективно использовать табличные пространства СУБД PostgreSQL, а также как организовать простой и удобный доступ к админке СУБД посредством мобильных устройств.

20.12.2018    26841    Shmell    40    

183

Как включить RemoteApp на Windows 10 Professional. Инструкция

Инструменты администратора БД Бесплатно (free)

Всем наверно знакомо, что Professional выпуск Windows позволяет использовать режим удаленного рабочего стола. Но мало кому известно, что есть возможность настроить и режим «RemoteApp» знакомый нам по серверным продуктам. То есть клиенту будет доставляться не весь рабочий стол, а лишь приложение, например, 1С.

16.12.2018    59159    Aleksey81    40    

83

Заметки про лицензии 1С

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Решил собрать шпаргалку по лицензиями 1С о разных нюансах, с которыми успел столкнуться.

15.12.2018    28312    MrWonder    24    

122

Как в RDP избавиться от языковой раскладки и оставить только выбор языка

Инструменты администратора БД Бесплатно (free)

До чего же бывает трудно, когда в терминальной сессии работает выбор как языка ввода, так и языковой раскладки. Раздражает ведь??? Решение есть, и весьма простое!

14.12.2018    31885    Aleksey81    47    

97

Многопоточная обработка данных

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

Конфигурация "Универсальные механизмы: пакеты данных". Набор инструментов для быстрой организации отказоустойчивой многопоточной обработки данных.

1 стартмани

23.11.2018    43984    169    _ASZ_    19    

99

Когда 1С падает в дамп

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Мой опыт устранения проблемы, при которой вылетала платформа 1С.

11.10.2018    73277    987ww765    50    

105

Как подружить 1С и Power BI: личный опыт визуализации управленческих данных

Инструменты администратора БД Россия Бесплатно (free)

Аналитика для предприятия – это, скорее, необходимость, чем роскошь. Визуальное представление данных позволяет оперативно принимать и оценивать управленческие и коммерческие решения. Так, Microsoft Power BI является прекрасной платформой для построения динамических и интерактивных отчетов. В статье рассмотрен вариант подключения 1С в качестве источника данных через OData.

04.10.2018    68775    zhogov    76    

158

1С в Windows docker контейнерах

Инструменты администратора БД DevOps и автоматизация разработки Платформа 1С v8.3 Абонемент ($m)

Создаем Docker-контейнер для windows-версии 1C. Контейнеры позволяют подготовить рабочую среду на любой актуальной версии windows. Благодаря данной технологии можно беспрепятственно запускать требуемую версию сервера 1С или несколько серверов различных версий на одном сервере.

1 стартмани

02.10.2018    44137    47    lishniy    42    

133

Автоматизируй это!

OneScript Инструменты администратора БД Бесплатно (free)

Здравствуйте. Меня зовут Виталий Онянов. Я работаю в компании ФТО. Мы занимаемся внедрением и поддержкой ERP-систем, в том числе и на 1С. Сегодня я хотел бы поделиться нашим опытом автоматизации своих задач и рассказать о том, какие регламентные задания мы настраиваем на серверах наших клиентов. Возможно, кому-то покажется, что это совсем простые и очевидные вещи, но я в своей работе периодически вижу разработчиков, которые делают какие-то задачи руками изо дня в день, и мне бы хотелось донести до них мысль о том, что многие из этих задач можно и нужно автоматизировать.

02.07.2018    25408    Tavalik    12    

167

"Шоколадная" установка 1С

Инструменты администратора БД Платформа 1С v8.3 Россия Абонемент ($m)

Статья о том, как быстро установить и настроить платформу 1С через одну команду: choco install 1c.

1 стартмани

27.06.2018    17938    Scorpion4eg    41    

118

[Шпаргалка] Несколько версий сервера 1С на одном сервере (компьютер)

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

Публикация-шпаргалка. Если у вас возникала необходимость в размещение нескольких серверов 1С разных версий на одном сервере (компьютере).

14.05.2018    38451    rpgshnik    33    

131

Несколько версий сервера 1С на одном компьютере

Инструменты администратора БД Платформа 1С v8.3 Бесплатно (free)

Как установить несколько экземляров сервера 1С на один компьютер. Как установить несколько служб агента 1С на один сервер? Как запустить сервера разных платформ на одном компьютере.

18.04.2018    139217    spezc    102    

329

Завершение сеанса неактивных пользователей на сервере

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

Обработка позволяет отключить сеанс пользователя 1С при его простое (бездействии).

1000 руб.

30.03.2018    16936    4    5    

5

О лицензиях 1С

Инструменты администратора БД Платформа 1С v8.3 Россия Бесплатно (free)

Разбираем вопросы по получению и переполучению лицензии 1С.

30.03.2018    181954    D_e_X_T_e_R    176    

272