Проверка базы данных перед миграцией на PostgreSQL

13.08.26

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

Обработка смотрит базу перед переездом с MS SQL на PostgreSQL и показывает, что сломается, до окна переключения. Пятнадцать проверок по метаданным плюс библиотека готовых скриптов для администратора СУБД. Главный - поиск невидимых символов в полях уникальных индексов: именно они молча роняют ibcmd infobase replicate. Родилась из боевого переноса базы 276 ГБ, который встал четыре раза подряд и каждый раз без единого сообщения об ошибке.

Файлы

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

Наименование Скачано Купить файл
Чек-ап базы 1С перед миграцией на PostgreSQL (управляемые формы)
.epf 53,89Kb
2 6 200 руб. Купить
Чек-ап базы 1С перед миграцией на PostgreSQL (обычные формы)
.epf 54,24Kb
0 6 200 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Обработка проверяет базу 1С перед переездом с MS SQL на PostgreSQL и говорит, что сломается, до того как вы откроете окно переключения. Родилась из боевого переноса базы на 276 ГБ, который встал четыре раза подряд и каждый раз молча. В комплекте две версии обработки: под управляемое приложение и под обычные формы.

 

Зачем она нужна

Переезд падает беззвучно, вот в чём беда. ibcmd infobase replicate при ошибке создания уникального индекса кода возврата не даёт: пишет одну строку в поток, который никто не читает, и уходит ждать. Со стороны это выглядит как долгая работа. Час уходит не на починку, а на выяснение факта поломки.

В нашем случае причина нашлась одна и та же во всех четырёх срывах, и находится она проверкой, которую эта обработка печатает. Сколько эта проверка идёт - честные цифры ниже, в отдельной таблице.

 

Зачем она, если главный скрипт есть в статье бесплатно

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

  • Пятнадцать проверок по метаданным, которых в SQL не видно вообще: режим управления блокировкой поимённо по объектам, разделение итогов, шрифты макетов, тома хранения, внешние компоненты с разбором манифеста внутри архива.
  • Разбор вывода в вердикты. Скрипт отдаёт столбец строк, и его надо читать глазами. Обработка превращает его в «чинить / внимание / норма» с пояснением по каждому пункту и полным списком объектов.
  • Два сценария переезда. Состав проверок для «меняем только СУБД» и «меняем СУБД и ОС» разный, и ни один чек-лист, который мне попадался, их не разделяет.
  • Библиотека из восьми скриптов под MS SQL, PostgreSQL, Windows- и Linux-хост, а не один.

 

Что проверяет сама, без подключения к СУБД

Первым делом обработка спрашивает сценарий переезда: меняется только СУБД или заодно и операционная система. Состав отчёта от этого разный, риски у сценариев не совпадают.

Сценарий «только СУБД» (Windows остаётся):

  • версия платформы против доступности ibcmd infobase replicate - на крупной базе это решающий пункт плана, потому что .dt там просто не выгрузится;
  • режим управления блокировкой данных, включая поимённый список объектов, оставшихся на автоматических блокировках при формально управляемой базе;
  • разделение итогов регистров накопления;
  • длины строковых измерений против лимитов обеих СУБД, с оценкой запаса;
  • отдельно - индексы, которые уже нарушают лимит MS SQL: после переезда они станут легальными, и это выигрыш, а не риск;
  • неограниченные строки в измерениях регистров сведений и индексируемых реквизитах: длинное значение уедет в TOAST, когда кортеж перерастёт порог, а значение длиннее 2704 байт в btree не проиндексируется вовсе;
  • полнотекстовый индекс и оценка, что он будет перестраиваться;
  • участие в РИБ и разделение данных;
  • число таблиц хранения как вход для расчёта места.

Сценарий «СУБД и ОС» добавляет:

  • внешние компоненты - обработка лезет внутрь архива компоненты, читает манифест и говорит точно, есть ли там сборка под Linux. Списком «посмотрите сами» тут не отделаешься, потому что смотреть надо в каждый файл;
  • шрифты в макетах: Arial, Times New Roman, Calibri и прочие, которых на голом Linux нет и из-за которых разъезжаются печатные формы;
  • тома хранения файлов с незаполненным полным путём Linux;
  • Windows-пути в строковых константах;
  • список регламентных заданий для просмотра глазами.

 

Как устроена работа с СУБД

Обработка к СУБД не подключается. Она печатает готовый диагностический скрипт с подсветкой, вы отдаёте его администратору, а вставленный обратно вывод она разбирает и превращает в вердикты.

Каждый скрипт отдаёт один столбец строк вида КЛЮЧ=значение, а не несколько таблиц результатов. Это сделано ради копирования: выделили столбец, скопировали, вставили. Разбор читает пары ключ-значение, поэтому ему всё равно, из SSMS вы копировали, из psql или из файла.

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

Библиотека скриптов:

  • для MS SQL: поиск невидимых символов в уникальных индексах (главный), паспорт базы, ключи индексов против лимитов, индексы мимо платформы, топ таблиц по объёму, логистика переезда (копии, журнал, место);
  • для PostgreSQL: паспорт кластера с проверкой наличия типов mchar и mvarchar, значимые параметры под 1С, послемиграционная проверка индексов;
  • для Windows-хоста: ресурсы сервера и состояние службы;
  • для Linux-хоста: локаль и шрифты, учётная запись, лимиты, huge pages.

 

Главная проверка

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

Механика: строки 1С в PostgreSQL кладёт в типы mchar и mvarchar, а они сравниваются через ICU. ICU схлопывает Unicode-совместимые формы: неразрывный пробел равен обычному, равно No, равно TM, многоточие равно трём точкам. MS SQL считает такие строки разными, PostgreSQL одинаковыми, и уникальный индекс, проживший годами, на новой СУБД не создаётся.

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

Где Объём работы Время
копия 355 ГБ, сервер без нагрузки 627 индексов около 4 минут
боевой сервер под рабочей нагрузкой 631 индекс, 240 млн строк до 3 часов

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

Разбор результата даёт не «найдены проблемы», а полный список объектов и число строк к исправлению. Это принципиально: частичная починка не работает. Проверено на живом переносе: вычистили 745 групп из 755, и перенос встал ровно там же, потеряв ещё пятьдесят минут. В оставшихся десяти группах было 14 строк, всего к исправлению 759. Одна оставшаяся пара роняет создание индекса так же надёжно, как семьсот сорок пять.

 

Вердикты

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

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

 

На чём проверялась

  • платформа 8.3.20 и 8.3.27;
  • MS SQL Server 2022;
  • на Windows - PostgreSQL 17.9-3.1C от 1С, на Linux - Postgres Pro 1С 17.10 под Ubuntu 22.04;
  • боевая конфигурация с 4465 таблицами хранения, база 276 ГБ.

 

Чего обработка не делает

Пишу честно, чтобы не было сюрпризов.

  • Не подключается к СУБД и не выполняет скрипты сама. Запускает их администратор.
  • Не читает тексты модулей - платформа их в рантайме не отдаёт. Поэтому вызовы COM, ЗапуститьПриложение и КомандаСистемы, которые чаще всего и ломаются на Linux, показать нельзя: по регламентным заданиям выдаётся список для просмотра глазами.
  • Проверка на невидимые символы приблизительная по своей природе. Совместимых форм в Unicode сотни, нормализация закрывает шесть самых частых. Точный ответ даёт только прогон на самой PostgreSQL.
  • Оценка длин ключей идёт по объявленным длинам, то есть по худшему случаю. Фактические длины даёт скрипт, и они обычно в разы меньше.
     

Что нужно для запуска

  • Платформа 8.3.17 и выше. В карточке два файла: для управляемого приложения и для обычных форм. Проверки, библиотека скриптов и разбор результата одинаковые, отличается только интерфейс.
     

Как пользоваться

  1. Открыть обработку в базе, которую собираетесь переносить.
  2. Выбрать сценарий переезда.
  3. Нажать «Проверить базу» - это то, что видно платформе, без СУБД.
  4. Выбрать скрипт, отдать администратору, вставить вывод в правое поле, нажать «Разобрать результат».
  5. Разобрать вердикты «чинить», починить всё до последней строки, прогнать проверку заново до нуля.
  6. Перепроверить непосредственно перед окном переезда: данные меняются каждый день.

Другие наши инструменты диагностики 1С:

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.27.70
  • Розница, редакция 2.3, релизы 2.3.25.23
  • Управление производственным предприятием, редакция 1.3, релизы 1.3.276.1

Вступайте в нашу телеграмм-группу Инфостарт

PostgreSQL переезд на PostgreSQL миграция с MS SQL ibcmd infobase replicate уникальные индексы ICU mchar mvarchar Postgres Pro импортозамещение перенос базы 1С большие базы администрирование 1С диагностика базы Linux внешние компоненты шрифты макетов лимит ключа btree предполётная проверка

См. также

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

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

17000 руб.

10.11.2023    27077    99    46    

104

Разработка Инструменты администратора БД Администрирование веб-серверов Администрирование Программист 1C:ERP Платные (руб)

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

90000 руб.

13.05.2026    1593    2    0    

4

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

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

14640 руб.

29.04.2020    51675    141    162    

96

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    3083    5    0    

21

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    47161    32    15    

50

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.04.2026, версия 1.4.1, работает в 1С:ФРЕШ!

23180 руб.

06.12.2023    24180    82    14    

115
Для отправки сообщения требуется регистрация/авторизация