powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Point-In-Time Recovery (PITR)
14 сообщений из 14, страница 1 из 1
Point-In-Time Recovery (PITR)
    #35150216
Vasonik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Настраиваю механизм PITR.
Возник вопрос. Накатывание сегментов WAL происходит только на базу, которая была скопирована после pg_start_backup?
Или можно можно накатывать архивные файлы по мере их накопления на slave машине?
Тоесть скопировали базу, накопили какое то количество сегментов WAL, подложили recovery.conf, запустили slave сервер, накатили их на базу.
Потом накопили еще какое то количество, опять накатили.

Судя по логам slave сервера получается, что он каждый раз пытается начать с первого после копирования базы сегмента WAL и увидев, что он уже в базе, новые WAL сегменты уже не вносит.
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35150376
Thamerlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После успешного recovery база на slave машине станет самостоятельной и начнет писать свои WAL логи. Поэтому дальнейшие WAL'ы с основной базы более не годны.

Другое дело, что есть механизм, при котором ваш recovery процесс как-бы никогда не доходит до конца и ожидает очередную порцию WAL'ов. Но тогда БД на slave машине всё это время не доступна для использования.
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35245436
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опишите, если не сложно, процесс поднятия резервного сервера.
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35251259
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся с такой проблемой. Все делаю как описано на sai.msu.su .
Почти все работает. Однако
на master смотрим

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[root@maxi pg_xlog]# ll
итого  131240 
-rw------- 1 postgres postgres      250 Апр 12 13:37 000000010000000000000011.00000068.backup
-rw------- 1 postgres postgres 16777216 Апр 12 13:43 00000001000000000000001C
-rw------- 1 postgres postgres 16777216 Апр 12 13:50 00000001000000000000001D
-rw------- 1 postgres postgres 16777216 Апр 12 13:42 00000001000000000000001E
-rw------- 1 postgres postgres 16777216 Апр 12 13:42 00000001000000000000001F
-rw------- 1 postgres postgres 16777216 Апр 12 13:42 000000010000000000000020
-rw------- 1 postgres postgres 16777216 Апр 12 13:43 000000010000000000000021
-rw------- 1 postgres postgres 16777216 Апр 12 13:43 000000010000000000000022
-rw------- 1 postgres postgres 16777216 Апр 12 13:43 000000010000000000000023
drwx------ 2 postgres postgres     4096 Апр 12 13:50 archive_status


Код: plaintext
1.
2.
3.
4.
[root@maxi archive_status]# ll
итого  0 
-rw------- 1 postgres postgres 0 Апр 12 13:37 000000010000000000000011.00000068.backup.done
-rw------- 1 postgres postgres 0 Апр 12 13:43 00000001000000000000001C.done

Соответственно в папке, куда он копирует логи
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
[root@maxi wal]# ll
итого  360900 
-rw------- 1 postgres postgres 16777216 Апр 12 13:30 000000010000000000000007
-rw------- 1 postgres postgres      247 Апр 12 13:31 000000010000000000000007.00000068.backup
-rw------- 1 postgres postgres 16777216 Апр 12 13:31 000000010000000000000008
-rw------- 1 postgres postgres 16777216 Апр 12 13:31 000000010000000000000009
-rw------- 1 postgres postgres 16777216 Апр 12 13:31 00000001000000000000000A
-rw------- 1 postgres postgres 16777216 Апр 12 13:31 00000001000000000000000B
-rw------- 1 postgres postgres 16777216 Апр 12 13:31 00000001000000000000000C
-rw------- 1 postgres postgres 16777216 Апр 12 13:31 00000001000000000000000D
-rw------- 1 postgres postgres 16777216 Апр 12 13:31 00000001000000000000000E
-rw------- 1 postgres postgres 16777216 Апр 12 13:32 00000001000000000000000F
-rw------- 1 postgres postgres 16777216 Апр 12 13:35 000000010000000000000010
-rw------- 1 postgres postgres 16777216 Апр 12 13:37 000000010000000000000011
-rw------- 1 postgres postgres      250 Апр 12 13:37 000000010000000000000011.00000068.backup
-rw------- 1 postgres postgres 16777216 Апр 12 13:38 000000010000000000000012
-rw------- 1 postgres postgres 16777216 Апр 12 13:38 000000010000000000000013
-rw------- 1 postgres postgres 16777216 Апр 12 13:38 000000010000000000000014
-rw------- 1 postgres postgres 16777216 Апр 12 13:39 000000010000000000000015
-rw------- 1 postgres postgres 16777216 Апр 12 13:42 000000010000000000000016
-rw------- 1 postgres postgres 16777216 Апр 12 13:42 000000010000000000000017
-rw------- 1 postgres postgres 16777216 Апр 12 13:42 000000010000000000000018
-rw------- 1 postgres postgres 16777216 Апр 12 13:43 000000010000000000000019
-rw------- 1 postgres postgres 16777216 Апр 12 13:43 00000001000000000000001A
-rw------- 1 postgres postgres 16777216 Апр 12 13:43 00000001000000000000001B
-rw------- 1 postgres postgres 16777216 Апр 12 13:43 00000001000000000000001C
Соотвественно на slave имеем:
автор2008-04-12 13:49:02.033 OMSSTLOG: database system was interrupted; last known up at 2008-04-12 13:36:17 OMSST
2008-04-12 13:49:02.033 OMSSTLOG: starting archive recovery
2008-04-12 13:49:02.033 OMSSTLOG: restore_command = 'cp /srv/wal/%f %p'
cp: невозможно выполнить stat для `/srv/wal/00000001.history': Нет такого файла или каталога
2008-04-12 13:49:02.124 OMSSTLOG: restored log file "000000010000000000000011" from archive
2008-04-12 13:49:02.124 OMSSTLOG: automatic recovery in progress
2008-04-12 13:49:02.520 OMSSTLOG: redo starts at 0/110000B0
2008-04-12 13:49:02.615 OMSSTLOG: restored log file "000000010000000000000012" from archive
2008-04-12 13:49:03.438 OMSSTLOG: restored log file "000000010000000000000013" from archive
2008-04-12 13:49:04.259 OMSSTLOG: restored log file "000000010000000000000014" from archive
2008-04-12 13:49:05.075 OMSSTLOG: restored log file "000000010000000000000015" from archive
2008-04-12 13:49:05.766 OMSSTLOG: restored log file "000000010000000000000016" from archive
2008-04-12 13:49:06.587 OMSSTLOG: restored log file "000000010000000000000017" from archive
2008-04-12 13:49:08.729 OMSSTLOG: restored log file "000000010000000000000018" from archive
2008-04-12 13:49:09.559 OMSSTLOG: restored log file "000000010000000000000019" from archive
2008-04-12 13:49:10.387 OMSSTLOG: restored log file "00000001000000000000001A" from archive
2008-04-12 13:49:11.220 OMSSTLOG: restored log file "00000001000000000000001B" from archive
2008-04-12 13:49:12.040 OMSSTLOG: restored log file "00000001000000000000001C" from archive
cp: невозможно выполнить stat для `/srv/wal/00000001000000000000001D': Нет такого файла или каталога
2008-04-12 13:49:14.222 OMSSTLOG: could not open file "pg_xlog/00000001000000000000001D" (log file 0, segment 29): Нет такого файла или каталога
2008-04-12 13:49:14.223 OMSSTLOG: redo done at 0/1CFFFF90
2008-04-12 13:49:14.223 OMSSTLOG: last completed transaction was at log time 2008-04-12 13:42:45.981489+07
2008-04-12 13:49:14.323 OMSSTLOG: restored log file "00000001000000000000001C" from archive
cp: невозможно выполнить stat для `/srv/wal/00000002.history': Нет такого файла или каталога
2008-04-12 13:49:14.327 OMSSTLOG: selected new timeline ID: 2
cp: невозможно выполнить stat для `/srv/wal/00000001.history': Нет такого файла или каталога
2008-04-12 13:49:15.093 OMSSTLOG: archive recovery complete
2008-04-12 13:49:16.525 OMSSTLOG: autovacuum launcher started
2008-04-12 13:49:16.526 OMSSTLOG: database system is ready to accept connections


Те последние 7 логов не перенесены. Почему?

Код: plaintext
1.
2.
3.
archive_mode = on               # allows archiving to be done
archive_command = 'cp -i %p /srv/wal/%f </dev/null'
#archive_timeout = 60s          # force a logfile segment switch after this
Последняя строчку комментил и некомментил - итог одинаков
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35253068
Фотография ss25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.sai.msu.su/~megera/oddmuse/index.cgi/online-backup

у кого нить в нормально открывается эта страница я не могу подобрать кодировку одна ересь выводится.
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35254585
Фотография Niemi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ss25http://www.sai.msu.su/~megera/oddmuse/index.cgi/online-backup

у кого нить в нормально открывается эта страница я не могу подобрать кодировку одна ересь выводится.
FF v2.0 Encoding UTF8
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35258742
Thamerlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам не обращал раньше на такое внимания. Я просто всегда руками до-копировал актуальное содержимое pg_xlog и тогда делал restore.

В доке postgreSQL есть такие предложения:
The segment files are given numeric names that reflect their position in the abstract WAL sequence.
It's assumed that a segment file whose contents precede the checkpoint-before-last is no longer of interest and can be recycled.

Значит PostgreSQL копирует только те WAL файлы, у которых всё содержимое относится ко времени "до последнего чекпоинта".

Вот смотрите:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
$ pg_controldata | grep "Latest checkpoint location"
Latest checkpoint location:           83/ 5C 05E79C

$ tail -10 log_of_wal_process.log
...
pg_xlog/0000000100000083000000 5C 
32769 blocks
OK: 00000001000000830000005C

через какое-то время:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$ pg_controldata | grep "Latest checkpoint location"
Latest checkpoint location:           83/ 5D 0C7A58

$ tail -10 log_of_wal_process.log
...
pg_xlog/00000001000000830000005C
32769 blocks
OK: 00000001000000830000005C
2008.04.16-08.45.52
pg_xlog/0000000100000083000000 5D 
32769 blocks
OK: 00000001000000830000005D


Содержимое pg_xlog в это время:
Код: plaintext
1.
2.
3.
4.
-rw-------  1 postgres postgres 16M Apr 16 09:05 00000001000000830000005F
...еще 511 файлов ...
-rw-------  1 postgres postgres 16M Apr 16 08:45 000000010000008500000061
-rw-------  1 postgres postgres 16M Apr 16 08:55 000000010000008500000062


А чему у вас равен параметр checkpoint_segments ?


P.s.
Не смог прочитать указанный вами линк ни оперой, ни ехплорером... Кракозяблы...
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35260666
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я во время тестов PITR немного пронаблюдал, и сделал вывод что PG держит несколько пустых файлов для журнала транзакций. Соответсвенно он знает что они пустые и не спешит их копировать.

Вот копия статьи, кому интересно .
PS: Все хорошо в PITR, еще бы можно было использовать slave, для чтения. Как пример - отдельная обновляемая статистика, чтобы тяжелыми запросами не грузить основной сервер.
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35260812
Фотография ss25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FF 2.0.0.7 ересь
Opera 9.23 ересь
IE 6.0.2900.2180 ересь
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35261392
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дайте почту, я Вам скину по почте ..
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35261499
Thamerlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChameLe0nЯ во время тестов PITR немного пронаблюдал, и сделал вывод что PG держит несколько пустых файлов для журнала транзакций. Соответсвенно он знает что они пустые и не спешит их копировать.


Я бы сказал, что чекпоинты попадают в каждый N-ный сегмент (WAL файл), где N=checkpoint_segments. И поэтому, все промежуточные WAL файлы не копируются до очередного чекпоинта. Легко проверить, поигравшись с параметром checkpoint_segments.


ChameLe0n
Вот копия статьи, кому интересно .
PS: Все хорошо в PITR, еще бы можно было использовать slave, для чтения. Как пример - отдельная обновляемая статистика, чтобы тяжелыми запросами не грузить основной сервер.

Я для этих целей использую SLONY. И тогда slave-node можно использовать под репортинг и прочие read-only цели.
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35261534
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЯ для этих целей использую SLONY. И тогда slave-node можно использовать под репортинг и прочие read-only цели.

Я год-полтора назад читал про эту систему. Если все правильно понял - там на триггерах все работает. И это, как мне кажется, огромный минус. При использовании PITR потребление ресурсов сервера остается на том же уровне.
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35261596
Thamerlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChameLe0n
Я год-полтора назад читал про эту систему. Если все правильно понял - там на триггерах все работает. И это, как мне кажется, огромный минус. При использовании PITR потребление ресурсов сервера остается на том же уровне.

SLONY в самом деле trigger-based репликация. Сложно вот так однозначно сказать плохо это или хорошо. У вас в самом деле сильная нехватка ресурсов? :)
Ведь всё равно, на данном этапе, вы не сможете сделать автоматически обновляемую read-only БД, используя WAL'ы.
...
Рейтинг: 0 / 0
Point-In-Time Recovery (PITR)
    #35262916
Nick Gazaloff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ss25http://www.sai.msu.su/~megera/oddmuse/index.cgi/online-backup

у кого нить в нормально открывается эта страница я не могу подобрать кодировку одна ересь выводится.

http://www.sai.msu.su/~megera/wiki/online-backup
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Point-In-Time Recovery (PITR)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]