IT Domain
Профессиональные
IT услуги
Каталог
По всему сайту
По каталогу
Каталог
CMS системы
CMS 1С-Битрикс: Управление сайтом
CMS HostCMS: Управление сайтом
CMS Joomla: Управление сайтом
CMS Wordpress: Управление сайтом
CRM системы
CRM Битрикс24
Готовые сайты
О компании
Лицензии
Партнеры
Новости
Отзывы
Контакты
Услуги
Создание сайта
Интернет-магазины
Корпоративные сайты
Лендинг (Landing page)
Сайт-Визитка
Сопровождение сайта
Техническое сопровождение
Информационное сопровождение
Повышение эффективности
Внедрение CRM
Реклама
Контекстная реклама
Баннерная реклама
Продвижение сайтов
Базовое SEO
Дополнительные услуги
Базовое наполнение сайта
Услуги перевода
Регистрация домена, хостинга
Создание баннера
Портфолио
Интернет-магазины
Корпоративные сайты
Сайт-визитка
Landing page
CMS Битрикс
CRM Битрикс24
CMS Hostcms
CMS Wordpress
CMS Joomla
Создание сайтов
Контекстная реклама
Продвижение сайтов
Статьи
Оплата
Доставка
Контакты
+7 (499) 390-44-68
Заказать звонок
Задать вопрос
Войти
  • Корзина0
  • Избранные товары0
  • Сравнение товаров0
Ваш город
Москва
info@it-domain.ru
Москва, ул.Ратная, д.16, корп.3
IT Domain
Ваш город
Москва
Везде
По всему сайту
По каталогу
+7 (499) 390-44-68
Войти
Сравнение0
Избранные товары 0
Корзина 0
О компании
  • Лицензии
  • Партнеры
  • Новости
  • Отзывы
  • Контакты
Каталог
  • CMS системы
    CMS системы
    • CMS 1С-Битрикс: Управление сайтом
    • CMS HostCMS: Управление сайтом
    • CMS Joomla: Управление сайтом
    • CMS Wordpress: Управление сайтом
  • CRM системы
    CRM системы
    • CRM Битрикс24
  • Готовые сайты
    Готовые сайты
Услуги
  • Создание сайта
    Создание сайта
    • Интернет-магазины
    • Корпоративные сайты
    • Лендинг (Landing page)
    • Сайт-Визитка
  • Сопровождение сайта
    Сопровождение сайта
    • Техническое сопровождение
    • Информационное сопровождение
  • Повышение эффективности
    Повышение эффективности
    • Внедрение CRM
  • Реклама
    Реклама
    • Контекстная реклама
    • Баннерная реклама
  • Продвижение сайтов
    Продвижение сайтов
    • Базовое SEO
  • Дополнительные услуги
    Дополнительные услуги
    • Базовое наполнение сайта
    • Услуги перевода
    • Регистрация домена, хостинга
    • Создание баннера
Портфолио
  • Интернет-магазины
  • Корпоративные сайты
  • Сайт-визитка
  • Landing page
  • CMS Битрикс
  • CRM Битрикс24
  • CMS Hostcms
  • CMS Wordpress
  • CMS Joomla
  • Создание сайтов
  • Контекстная реклама
  • Продвижение сайтов
Статьи
Оплата
Доставка
Контакты
+  ЕЩЕ
    IT Domain
    О компании
    • Лицензии
    • Партнеры
    • Новости
    • Отзывы
    • Контакты
    Каталог
    • CMS системы
      CMS системы
      • CMS 1С-Битрикс: Управление сайтом
      • CMS HostCMS: Управление сайтом
      • CMS Joomla: Управление сайтом
      • CMS Wordpress: Управление сайтом
    • CRM системы
      CRM системы
      • CRM Битрикс24
    • Готовые сайты
      Готовые сайты
    Услуги
    • Создание сайта
      Создание сайта
      • Интернет-магазины
      • Корпоративные сайты
      • Лендинг (Landing page)
      • Сайт-Визитка
    • Сопровождение сайта
      Сопровождение сайта
      • Техническое сопровождение
      • Информационное сопровождение
    • Повышение эффективности
      Повышение эффективности
      • Внедрение CRM
    • Реклама
      Реклама
      • Контекстная реклама
      • Баннерная реклама
    • Продвижение сайтов
      Продвижение сайтов
      • Базовое SEO
    • Дополнительные услуги
      Дополнительные услуги
      • Базовое наполнение сайта
      • Услуги перевода
      • Регистрация домена, хостинга
      • Создание баннера
    Портфолио
    • Интернет-магазины
    • Корпоративные сайты
    • Сайт-визитка
    • Landing page
    • CMS Битрикс
    • CRM Битрикс24
    • CMS Hostcms
    • CMS Wordpress
    • CMS Joomla
    • Создание сайтов
    • Контекстная реклама
    • Продвижение сайтов
    Статьи
    Оплата
    Доставка
    Контакты
    +  ЕЩЕ
      Сравнение0
      Избранные товары 0
      Корзина 0
      IT Domain
      Сравнение0 Избранные товары 0 Корзина 0
      Телефоны
      +7 (499) 390-44-68
      • О компании
        • Назад
        • О компании
        • Лицензии
        • Партнеры
        • Новости
        • Отзывы
        • Контакты
      • Каталог
        • Назад
        • Каталог
        • CMS системы
          • Назад
          • CMS системы
          • CMS 1С-Битрикс: Управление сайтом
          • CMS HostCMS: Управление сайтом
          • CMS Joomla: Управление сайтом
          • CMS Wordpress: Управление сайтом
        • CRM системы
          • Назад
          • CRM системы
          • CRM Битрикс24
        • Готовые сайты
      • Услуги
        • Назад
        • Услуги
        • Создание сайта
          • Назад
          • Создание сайта
          • Интернет-магазины
          • Корпоративные сайты
          • Лендинг (Landing page)
          • Сайт-Визитка
        • Сопровождение сайта
          • Назад
          • Сопровождение сайта
          • Техническое сопровождение
          • Информационное сопровождение
        • Повышение эффективности
          • Назад
          • Повышение эффективности
          • Внедрение CRM
        • Реклама
          • Назад
          • Реклама
          • Контекстная реклама
          • Баннерная реклама
        • Продвижение сайтов
          • Назад
          • Продвижение сайтов
          • Базовое SEO
        • Дополнительные услуги
          • Назад
          • Дополнительные услуги
          • Базовое наполнение сайта
          • Услуги перевода
          • Регистрация домена, хостинга
          • Создание баннера
      • Портфолио
        • Назад
        • Портфолио
        • Интернет-магазины
        • Корпоративные сайты
        • Сайт-визитка
        • Landing page
        • CMS Битрикс
        • CRM Битрикс24
        • CMS Hostcms
        • CMS Wordpress
        • CMS Joomla
        • Создание сайтов
        • Контекстная реклама
        • Продвижение сайтов
      • Статьи
      • Оплата
      • Доставка
      • Контакты
      • Москва
        • Назад
      • Личный кабинет
      • Корзина0
      • Избранные товары0
      • Сравнение товаров0
      • +7 (499) 390-44-68
      Контактная информация
      Москва, ул.Ратная, д.16, корп.3
      info@it-domain.ru

      Ошибка 1с базы данных PostgreSQL: missing chunk number 0 for toast value * in pg_toast_*

      Главная
      —
      Блог
      —Ошибка 1с базы данных PostgreSQL: missing chunk number 0 for toast value * in pg_toast_*
      22 января 2025 9:00

      Далее описан процесс восстановление базы данных 1С PostgreSQL. Ошибки базы данных не позволяли делать выгрузку базы в файл dt через конфигуратор и не позволяли делать резервную копию через pg_dump.

      Один из вариантов определения сбойной таблицы - запустить через pgAdmin - правой кнопкой мышки на вашу бд - обслуживание - выбрать нужную операцию по обслуживанию, например, VACUUM, REINDEX и активируем "Подробные сообщения" и запускаем проверку. Далее кликаем - View Processes и кликаем на иконку "странички" view details. Далее ждем пока проверка остановится на сбойной таблице и получаем её название.

      В данном примере ошибка содержится в таблице public._datahistoryqueue0

      ОШИБКА: missing chunk number 0 for toast value 645974 in pg_toast_32747 и другие ошибки похожие ошибки



      Вкратце: при записи объекта, версии которого должны сохраняться в Истории данных, информация о значениях реквизитов и табличных частях объекта сохраняется в таблицу `_DataHistoryQueue0`. Из этой таблицы-очереди данные должны переноситься в таблицу `_DataHistoryVersions` по команде `ИсторияДанных.ОбновитьИсторию();` или сразу при включенной опции «Обновлять историю данных сразу после записи».

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

      Информация по таблице через ANALYZE в Postgres через pgAdmin




      Строк в таблице - 31 973 047 Таблица datahistoryqueue0 имеет структуру



      Можно делать периодическую выборку в поисках нужной строки и с сортировкой по нужному полю, так как уникального ид, к сожалению, нет в данной таблице, то единственный вариант остается это использование ctid, сортировка, выборка по нему и удаление строк.

      ctid - Физическое расположение данной версии строки в таблице. По ctid можно очень быстро найти версию строки, значение ctid изменится при выполнении VACUUM FULL. Таким образом, ctid нельзя применять в качестве долгосрочного идентификатора строки. Для идентификации логических строк следует использовать первичный ключ.

      Пример команды выборки данных 0+5000 строк, с сортировкой по ctid
      select ctid  from public._datahistoryqueue0 order by ctid  limit 5000 offset 0
      
      Обходить таблицу вручную из 31 млн. в поисках сбойных строк слишком долго и не продуктивно, поэтому будем использовать готовую пользовательскую функцию

      Добавляем пользовательскую функцию

      Открываем pgAdmin, кликаем правой кнопкой мышки на нужную базу данных и открываем Запросник




      Сначала добавляем расширение hstore оно необходимо для работы. Прописываем и нажимаем кнопку выполнить.
      CREATE EXTENSION hstore;
      
      Добавляем данную функцию и нажимаем выполнить
      CREATE OR REPLACE FUNCTION find_bad_row(tableName TEXT)
      RETURNS tid as $find_bad_row$
      DECLARE
      result tid;
      curs REFCURSOR;
      row1 RECORD;
      row2 RECORD;
      tabName TEXT;
      count BIGINT := 0;
      BEGIN
      SELECT reverse(split_part(reverse($1), '.', 1)) INTO tabName;
      OPEN curs FOR EXECUTE 'SELECT ctid FROM ' || tableName;
      count := 1;
      FETCH curs INTO row1;
      WHILE row1.ctid IS NOT NULL LOOP
      result = row1.ctid;
      count := count + 1;
      FETCH curs INTO row1;
      EXECUTE 'SELECT (each(hstore(' || tabName || '))).* FROM '
      || tableName || ' WHERE ctid = $1' INTO row2
      USING row1.ctid;
      IF count % 100000 = 0 THEN
      RAISE NOTICE 'rows processed: %', count;
      END IF;
      END LOOP;
      CLOSE curs;
      RETURN row1.ctid;
      EXCEPTION
      WHEN OTHERS THEN
      RAISE NOTICE 'LAST CTID: %', result;
      RAISE NOTICE '%: %', SQLSTATE, SQLERRM;
      RETURN result;
      END; $find_bad_row$
      LANGUAGE PLPGSQL;
      




      После этого функция сохранится и её можно будет использовать

      1. Запускаем функцию и указываем проблемную таблицу
      select find_bad_row('public._datahistoryqueue0');
      
      Скрипт проходит по всем записям в данной таблице, расширяет их одну за другой – что приведет к исключению, если произойдет какая-либо ошибка расширения. Исключение также будет содержать CTID последней правильно обработанной строки. И следующая строка с более высоким CTID будет поврежденной.

      Результат запроса – первая ошибка



      1.1. Проверяем проблемную строку указывая ctid 322081,18 следующей за 322081,17
      select * from public._datahistoryqueue0 where ctid = '(322081,18)';
      



      1.2. Строчка найдена, удаляем её
      delete from public._datahistoryqueue0 where ctid = '(322081,18)';
      
      2. Снова запускаем функцию и находим следующую проблемную строку
      select find_bad_row('public._datahistoryqueue0');
      



      2.1. Проверяем проблемную строку указывая ctid следующей строки
      select * from public._datahistoryqueue0 where ctid = '(322082,6)';
      



      2.2. Строчка найдена, удаляем её
      delete from public._datahistoryqueue0 where ctid = '(322082,6)';
      
      3. Снова запускаем функцию и находим следующую проблемную строку
      select find_bad_row('public._datahistoryqueue0');
      



      3.1. Проверяем проблемную строку указывая ctid следующей строки
      select * from public._datahistoryqueue0 where ctid = '(406052,19)';
      



      3.2. Строчка найдена, удаляем её
      delete from public._datahistoryqueue0 where ctid = '(406052,19)';
      
      4. Снова запускаем функцию и находим следующую проблемную строку
      select find_bad_row('public._datahistoryqueue0');
      



      4.1. Проверяем проблемную строку указывая ctid следующей строки
      select * from public._datahistoryqueue0 where ctid = '(406052,21)';
      



      4.2. Строчка найдена, удаляем её
      delete from public._datahistoryqueue0 where ctid = '(406052,21)';
      
      5. Снова запускаем функцию и находим следующую проблемную строку
      select find_bad_row('public._datahistoryqueue0');
      



      5.1. Проверяем проблемную строку указывая ctid следующей строки
      select * from public._datahistoryqueue0 where ctid = '(468277,28)';
      



      5.2. Строчка найдена, удаляем её
      delete from public._datahistoryqueue0 where ctid = '(468277,28)';
      
      Больше ошибок в данной таблице не было




      Итого было найдено и удалено битых строк - 5 шт. (потеря истории 5 шт. из 31 973 047 шт. ничтожно мала)

      Результат

      База данных исправлена, резервное копирование базы данных через pg_dump успешно выполнено. Также база успешно выгружается из конфигуратора в файл dt.

      Устранение ошибок при загрузке файла dt в чистую базу, рассмотрим в следующей статье.
      • Комментарии
      Загрузка комментариев...
      Назад к списку
      • Битрикс 1
      • 1C 4
      • 1C + Битрикс 1
      • IT 1
      Будьте в курсе наших акций и новостей
      Подписаться
      Новости
      29 ноября 2024
      Новый Битрикс24 Гравитация — все новинки релиза
      2 октября 2024
      Битрикс24 вошел в топ-3 самых популярных решений КЭДО
      19 сентября 2024
      Битрикс24 CoPilot доступен в коробочной версии
      Статьи
      22 января 2025
      После обновления базы 1С УТ могут слетать привязки на дополнительные реквизиты, сведения и становится недоступен отбор номенклатуры по ним
      22 января 2025
      Ошибка 1с базы данных PostgreSQL: 23505: ERROR: duplicate key value violates unique constraint "params_pkey" DETAIL: Key (filename, partno)=(ibparams.inf, 0) already exists. CONTEXT: COPY params, line 18
      22 января 2025
      Ошибка 1с базы данных PostgreSQL: missing chunk number 0 for toast value * in pg_toast_*
      Каталог
      Акции
      Услуги
      Бренды
      О компании
      Лицензии
      Партнеры
      Новости
      Отзывы
      Контакты
      Информация
      Вопрос-ответ
      Политика конфиденциальности
      Помощь
      Условия оплаты
      Условия доставки
      Гарантия на товар
      Подписаться на рассылку
      +7 (499) 390-44-68
      info@it-domain.ru
      Москва, ул.Ратная, д.16, корп.3
      2008 - 2025 © IT Domain
      Информация, указанная на сайте не являются публичной офертой.
      Каталог
      По всему сайту
      По каталогу
      Мы используем cookie. Они помогают нам понять, как вы взаимодействуете с сайтом. 
      Продолжая просмотр страниц нашего сайта, вы принимаете политику cookie

      OK