Обработка на Инфостарте
Переезд на PostgreSQL падает беззвучно
В этом и беда. Со стороны это выглядит как долгая работа, и час уходит не на починку, а на выяснение самого факта поломки.
Обработка платная, 10 SM. В блоге есть разбор миграции целиком и отдельно восемь ловушек переноса на Linux с PostgreSQL.
Обработка родилась из боевого переноса базы на 276 ГБ, который встал четыре раза подряд. Каждый раз молча.
Механизм переноса при ошибке создания уникального индекса кода возврата не даёт: пишет одну строку в поток, который никто не читает, и уходит ждать. Вы смотрите на процесс и не знаете, он работает или уже умер.
Причина во всех четырёх срывах оказалась одна и та же, и находится она проверкой, которую эта обработка печатает.
Что она даёт сверх бесплатного скрипта
Сразу скажу: главный скрипт бесплатный
Скрипт поиска невидимых символов выложен в статье-паровозе целиком и ваш без всякой оплаты. Обработка нужна за другим.
Пятнадцать проверок по метаданным
Того, чего в SQL не видно вообще: режим управления блокировкой поимённо по объектам, разделение итогов, шрифты макетов, тома хранения, внешние компоненты с разбором манифеста внутри архива.
Разбор вывода в вердикты
Скрипт отдаёт столбец строк, который надо читать глазами. Обработка превращает его в чинить, внимание, норма с пояснением по каждому пункту и полным списком объектов.
Два сценария переезда
Состав проверок отличается в зависимости от того, как именно вы переносите базу.
Порядок подготовки
- 01
Прогнать проверку по метаданным
Она идёт из 1С и не требует доступа к СУБД. Часть находок чинится до переезда без всякого SQL.
- 02
Отдать скрипт администратору
Он выполняет проверку на стороне СУБД. Честные цифры по времени этой проверки есть в описании: она не мгновенная.
- 03
Разобрать вердикты и починить
Всё, что помечено как чинить, чинится до переезда. Именно это отличает подготовленный переезд от четырёх молчаливых срывов.
Өзіңіз шеше алмай жатырсыз ба? Жазыңыз, бірге қараймыз
Регламенттік қызмет көрсетуді база тұрақты жұмыс істейтіндей, бэкаптар кепілді түрде қалпына келетіндей және дискілер кенет таусылмайтындай баптаймыз.
- Құны
- 450 000 ₸-денбір реттік баптау; сүйемелдеу - айына 150 000 ₸-ден; салықтарсыз
Тақырып бойынша талдаулар
Перенос базы 1С с PostgreSQL 18 на 17: восстановление по сети клиентом старшей версии
pg_restore версии 17 архив версии 18 не читает, а обновлять приёмник нельзя или некогда. Рабочий путь: запустить pg_restore 18 на источнике и направить его по сети в сервер 17. Методика целиком: какие пути тупиковые и почему, настройка доступа на приёмнике, выгрузка и загрузка в четыре потока, SQL-сверка таблиц и индексов, почему база после переноса меньше и как считать окно работ по одной таблице. С замерами на двух базах 1С.
Уникальный индекс в PostgreSQL пропускает дубли с NULL: найти, посчитать, починить
Методика для служебных таблиц рядом с базой 1С: один запрос к каталогу PostgreSQL находит все уникальные ключи с необязательными колонками, второй считает, какая доля строк идёт мимо защиты. Дальше ремонт по версиям: NULLS NOT DISTINCT с 15-й, частичные индексы до неё, и проверка повтором в транзакции с откатом. Все запросы прогнаны на PostgreSQL 17.
Миграция 1С на PostgreSQL: как проверить базу до переезда и не потерять ночное окно
Переносили боевую базу 276 ГБ с MS SQL на PostgreSQL. Перенос встал четыре раза подряд, каждый раз через час и без единого сообщения об ошибке. Виноват оказался неразрывный пробел в служебном регистре и то, как PostgreSQL сравнивает строки через ICU. Здесь полная версия: почему перенос молчит, две гипотезы, которые не подтвердились, готовый скрипт поиска проблемных строк и чек-лист перед миграцией.
Перенос 1С на Linux и PostgreSQL: восемь ловушек, каждая из которых молчит
Перенесли боевую базу 1С 276 ГБ с Windows и MS SQL на Ubuntu и PostgreSQL. Главная неприятность оказалась вообще не про Linux, а вот восемь ловушек по дороге - про него, и каждая стоила отдельного часа. Английская локаль кластера, сотня гигабайт вместо семисот, ноль шрифтов на сервере, work_mem 512 МБ при 250 соединениях. Ни одной из них нет в популярных чек-листах.
Жиі қойылатын сұрақтар
Как понять, что перенос встал именно из-за невидимых символов?
Наводку даёт сам PostgreSQL: в его логе лежит ERROR could not create unique index с DETAIL про дубли ключа. По имени индекса находишь регистр, по значениям из DETAIL - пары строк, которые на глаз одинаковы, а по кодам символов различаются (например 160 против 32). Обработка ищет такие строки заранее, до переноса.
Зачем платить за обработку, если главный скрипт есть в статье бесплатно?
Скрипт поиска невидимых символов выложен в статье-паровозе целиком и ваш без оплаты. Обработка нужна за другим: пятнадцать проверок по метаданным, которых в SQL не видно, разбор вывода скрипта в вердикты с полным списком объектов и два разных сценария переезда.
Она подключается к СУБД, нужны права администратора?
Нет, к СУБД обработка не подключается: печатает готовый скрипт администратору и разбирает его вывод. Со своей стороны требуется платформа 8.3.17 и новее, управляемое приложение и права на чтение данных проверяемой базы.
Нашлись проблемные строки. Можно починить только часть?
Нет. Одна оставшаяся пара роняет создание индекса так же надёжно, как семьсот. Проверено дорого: вычистили большинство групп, перенос встал ровно там же. Чинить надо до нуля и прогонять проверку заново.
Сколько идёт главная проверка и на чём её гонять?
Время зависит от числа строк в таблицах с уникальными строковыми индексами, а не от размера базы в гигабайтах. На копии без нагрузки это около четырёх минут, на боевом сервере под нагрузкой - до нескольких часов. Гонять лучше на копии или в тихое окно.
Проверяет ли она готовность к Linux, а не только к PostgreSQL?
Да, если выбрать сценарий переезда СУБД и ОС. Тогда добавляются проверки внешних компонент (обработка читает манифест внутри архива и говорит, есть ли сборка под Linux), шрифтов макетов, локали и Windows-путей в константах.
1С жүйеңізге тегін экспресс-аудит
1-2 күнде базаңызды қарап, өнімділік қайда жоғалып жатқанын табамыз және не істеу керегін айтамыз. Міндеттемесіз.
Тапсырманы талқылайық
Ең жылдамы WhatsApp: тапсырма туралы бірер жол жазыңыз, жұмыс күні ішінде жауап береміз.