The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Восстановление PostgreSQL после повреждения файлов XLOG
Бывают случаи, когда файлы журнала транзакций (pg_xlog) могут быть повреждены
или случайно удалены.
В таком случае PostgreSQL не сможет работать и просто не запустится с подобной ошибкой:

   Jul 4 11:30:18 database postgres[92997]: [1-1] LOG: database system was interrupted at 2009-07-04 11:24:30 MSD
   Jul 4 11:30:18 database postgres[92997]: [2-1] LOG: could not open file "pg_xlog/000000010000031A00000027" 
      (log file 794, segment 39): No such file or directory
   Jul 4 11:30:18 database postgres[92997]: [3-1] LOG: invalid primary checkpoint record
   Jul 4 11:30:18 database postgres[92997]: [4-1] LOG: could not open 

Найти поврежденный xlog-файл вряд ли получится, поэтому выход один - очистить
информацию в БД об используемых логах.
Для этого есть штатная утилита pg_resetxlog
Но перед ее использованием надо узнать что именно вытирать из БД. Для этого делаем:

   # pg_controldata /var/db/pgsql/| grep "Latest checkpoint"

   Latest checkpoint's REDO location: 31A/27FFF7B8
   Latest checkpoint's UNDO location: 0/0
   Latest checkpoint's TimeLineID: 1
   Latest checkpoint's NextXID: 0/2400998005
   Latest checkpoint's NextOID: 75014368

С этой информации нам интересны последние строчки с (NextXID, NextOID).

Переходим в пользователя от имени которого выполняется PGSQL (в моем случае, это pgsql)

   # su pgsql

И теперь сбрасываем логи, указав в параметрах наши цифры из данных pg_control

   $ pg_resetxlog -o 75014368 -x 2400998005 -f /var/db/pgsql/
Transaction log reset

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

PS: Хочется напомнить, что любые действия по восстановлению данных, требуют
сохранения исходных данных
перед любыми действиями над ними. Ну и максмум осторожности :)
 
07.07.2009 , Автор: Konstantin A Mironov , Источник: http://blog.mironovs.com/2009/07/vo...
Раздел:    Корень / Программисту и web-разработчику / SQL и базы данных / PostgreSQL специфика / Оптимизация и администрирование PostgreSQL

Обсуждение [ RSS ]
 
  • 1, Heman, 16:50, 09/07/2010 [ответить] [смотреть все]
  • +/
    Спасибо!

    Вот ещё способ откудать брать магические цифры
    http://www.issociate.de/board/goto/1339668/Re:_[PERFORM]_help_me_problems_with_pg_clog_file.html

     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList