Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
Народ еще одна проблема Как мы все знаем есть PG_DUMP это полное или частичное резервное копирывание А как в PG орнганизовать горячее резервное копирывание так чтобы целостность данных у дампа не рушилась и т.д? Т.е. мы сдампили таблицу 1 она изменилась а потом мы дампим таблицу 2 которая зависит ключами от таблицы 1 В оракле эта проблема решается использованием RMAN А в PG ? Креативу нет предела ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 00:52 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
pg_dump работает одной транзакцией, и видит целостные данные на момент её начала. ... It makes consistent backups even if the database is being used concurrently. Ну и ещё On-line backup - если база очень большая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 04:08 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
ффффpg_dump работает одной транзакцией, и видит целостные данные на момент её начала. ... It makes consistent backups even if the database is being used concurrently. Ну и ещё On-line backup - если база очень большая. Ам ну хорошо одной транзакцией.... Так все равно он увидит новые записи в зависимой таблице при Selecte .... Или я что то не понимаю ? Он что снимок делает ? Или как ? Разъясните пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 01:02 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
Конечно снимок. MVCC всегда работает. При уровне изоляции serializable (в котором pg_dump работает) новые строки не видны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 03:56 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
фффф ещё On-line backup - если база очень большая. если задача - иметь "горячую копию" на другом сервере (при необходимости - стартовать резервный), то как я понял по ссылке, читая через 2 на 3-й, востановление начнется после старта резервного сервера с настроенным recovery.conf , и закончится переименованием его в recovery.done. Т.е. подъем резервного сервера займет полное время подъема аналогичного dump-а. Можно ли ускорить процесс (т.е. держать резервный сервер непрерывно в режиме "recovery mode" и поднимать приращения wal по мере их поступления?) ОФФ. что произойдет, если стартовать постгрес с зазеркаленным (каким-то макаром) "по горячему" дисками (при идентичных путях к data) другого постгреса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 16:46 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
4321 Можно ли ускорить процесс (т.е. держать резервный сервер непрерывно в режиме "recovery mode" и поднимать приращения wal по мере их поступления?) restore_command = 'cp /mnt/server/archivedir/%f %p' which will copy previously archived WAL segments from the directory /mnt/server/archivedir. You could of course use something much more complicated, perhaps even a shell script that requests the operator to mount an appropriate tape. It is important that the command return nonzero exit status on failure. The command will be asked for log files that are not present in the archive; it must return nonzero when so asked. This is not an error condition. Be aware also that the base name of the %p path will be different from %f; Вроде ничто не мешает - вместо cp пишешь скрипт который возвращает не 0 - тогда Postgres будет висеть в режиме рекавери, а этот скрипт внешней командой после аварии основного сервера заставить вернуть 0 - БД будет считаться накаченой - останется только запустить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 19:30 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
сиба. (говорю же "читаю через2 на 3-й" потом сам наткнулся на: авторIf we continuously feed the series of WAL files to another machine that has been loaded with the same base backup file, we have a "hot standby" system: at any point we can bring up the second machine and it will have a nearly-current copy of the database.) но по поводу "зеркалирования" никто не высказался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 11:04 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
4321ОФФ. что произойдет, если стартовать постгрес с зазеркаленным (каким-то макаром) "по горячему" дисками (при идентичных путях к data) другого постгреса? Насколько я понимаю, простое tar -czvf file_bck.tgz /..../data на работающем сервере допустимо, т е растарив этот архив и запустив постгри на другом узле - мы получим состояние БД с закоммичеными транзакциями до последнего чекпоинта. Т е можно в cron, скажем, поставить архивирование на работающем сервере с передачей архива и растариванием на другом узле. После падения первого - на втором просто запускаем постгри и получаем консистентное состояние БД на последний чекпоинт с закомиччеными транзакциями. Время чекпоинта конфигурируется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 13:55 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
Точно так же физическое зеркалирование диска будет работать, проблема только в том, чтобы "авария" не произошла в момент еще незаконченного зеркалирования - т е посередине процесса. Если же диски используются в отдельной стойке - типа, скажем, MSA - то нужно просто замонтировать эти диски на другом узле и запустить постгри - как я писал будет откат всех незакоммиченных транзакций на последний чекпоинт. Проблема еще может быть с правами на каталог с БД видимо, но и то не факт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 14:00 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
landyпроблема только в том, чтобы "авария" не произошла в момент еще незаконченного зеркалированият.е. надо иметь 2 зеркала? Или точнее - зеркало раб. диска и зеркало с зеркала. С разведенными по времени процессами. но не понял уверенности в 2031006 и 2031045 в косистентности данных. ведь и зеркалирование и затаривание проистекают некое время. Что обеспечит "моментальность" снимка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 14:56 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
По поводу 2031045 - падает узел с постгри, стойка рабочая. При старте Postgres просматривает сначала существующие WAL начиная с последнего чекпоинта на предмет redo/undo и только после этого говорит что он готов к работе(этот механизм используют очень многие БД). По поводу затаривания - механизм используется тот же - про это где-то в доке написано, искать некогда. Будет время - запощу сюда по этому поводу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 15:43 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
Т е для надежности и скорости работы важно каталог с WAL положить на отдельный быстрый диск, т к эти файлы по чекпоинту обновляются в первую очередь. И еще - не нужно выключать fsync или какой там механизм используется, т к в противном случае запись в WAL будет идти быстро, но нет гарантии, что данные из буфера ОС(не БД) будут сброшены, т е сброс данных физически из буферов системы идет по fsync ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 15:47 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
Еще можно pgcluster посмотреть. Он правда редко обновляется и HyperThreading не любит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 08:36 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
Funny_FalconpgclusterСиба, смотрю. Funny_FalconHyperThreading не любит.ф чем это проявляецца? И чем чревато? Да, а што с нагрузками от самого pgcluster? когда тормоза, обусловленные его присутствием (т.е. необходимостью непрерывной репликации с синхронизацией завершения транзакций) окупаюцца? Или это не к Вам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 11:24 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
to landy: С чего Вы решили что "tar -czvf file_bck.tgz /..../data" на работающем постгресе должно работать? Погасите сервер, тогда и можно паковать каталог, а так в ЛУЧШЕМ случае потеряете данные, на самом деле поведение неопределено! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 16:45 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
Читаем доку вот тут 22.3.2. Making a Base Backup The procedure for making a base backup is relatively simple: 1. Ensure that WAL archiving is enabled and working. ..... 3. Perform the backup, using any convenient file-system-backup tool such as tar or cpio. It is neither necessary nor desirable to stop normal operation of the database while you do this. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 20:03 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
Т е в первую очередь конечно тарим WAL потом кластер с данными, чтобы лог гарантированно содержал транзакции возможно добавленных данных. В этом случае мы должны потерять данные после последнего чекпоинта в WAL. Это относится к горячему зеркалированию, но это я не проверял да и метод мягко говоря не тривиальный. Лучше конечно на мой взгляд иметь hot stand by и накатыватьего по архивированным логам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 20:10 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
Вот, для проверки сделал следующее(на SuSE 9.3) 1. создал БД bench 2. запустил из контриб - pgbench -s 100 -i bench - создание и заполнение таблиц andy@nbook: ./pgbench -s 100 -i bench creating tables... 10000 tuples done. 20000 tuples done. 30000 tuples done. 40000 tuples done. 50000 tuples done. ... 3. подождал немного(где-то до 500000) запустил tar -czvf d3.tgz DATA при работающем сервере и pgbench ... ATA/global/16756 DATA/global/16758 DATA/global/pgstat.stat DATA/global/pg_pwd DATA/global/pg_control DATA/pg_hba.conf DATA/PG_VERSION DATA/pg_clog/ DATA/pg_clog/0000 DATA/pg_xlog/ DATA/pg_xlog/000000010000000000000010 DATA/pg_xlog/000000010000000000000011 DATA/pg_xlog/000000010000000000000012 DATA/pg_xlog/00000001000000000000000C DATA/pg_xlog/00000001000000000000000D DATA/pg_xlog/00000001000000000000000E DATA/pg_xlog/00000001000000000000000F DATA/pg_xlog/archive_status/ DATA/postgresql.conf DATA/pg_tblspc/ DATA/postmaster.opts 4. прервал pgbench посмотрел что в accounts 1150000 tuples done. andy@nbook: psql template1 Welcome to psql 8.0.3, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit template1=# \c bench You are now connected to database "bench". bench=# select count(*) from accounts; count --------- 1150000 (1 row) 5. Остановил сервер, растарил d3.tgz в другой каталог и запустил сервер по новой andy@nbook:~/DATA1> postmaster -i -D DATA LOG: database system was interrupted at 2005-11-03 20:28:57 MSK LOG: checkpoint record is at 0/F05FC00 LOG: redo record is at 0/F002010; undo record is at 0/0; shutdown FALSE LOG: next transaction ID: 16648; next OID: 1301435 LOG: database system was not properly shut down; automatic recovery in progress LOG: redo starts at 0/F002010 LOG: unexpected pageaddr 0/9000000 in log file 0, segment 16, offset 0 LOG: redo done at 0/FFFFF24 LOG: database system is ready Имеем andy@nbook:~> psql -l List of databases Name | Owner | Encoding -----------+-------+---------- bench | andy | UNICODE compiere | andy | UNICODE template0 | andy | UNICODE template1 | andy | UNICODE (4 rows) andy@nbook:~> psql bench Welcome to psql 8.0.3, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit bench=# select count(*) from accounts; count -------- 713780 (1 row) bench=# Рабочая БД , консистентная - только нет данных после последнего чекпоинта на момент выполнения архива. Как на виндах это работает - хз, может файлы и лочатся не знаю, но на линухе работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 20:50 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
landyЧитаем...т.е. ключевым тут конечно является 1. Ensure that WAL archiving is enabled and working. ибо без него затаривание никакой косистентности видимо не гарантирует. С ним - поскольку наличие в таре всех приращений WAL от старта до какого-то включительно гарантировано, гарантировано(?) и восстановление данных на этот момент. (кстати, а могла бы быть проблема в вакууме или автовакууме? или данных WAL достаточно для восстановления консистентности самих по себе?) ЗЫ. в случае зеркалирования вопрос таки открыт. Видимо WAL позволяет восстановить консистентное состояние и для "немоменталього" снимка. Но вот если не использовать WAL, то есть ли возможность иметь "моментальный" снимок (посредством какого либо зеркалирования)? И будет ли он "консистентным" (т.е. разберется ли постгресс без WAL, какие данные были данными незавершенных на момент "снимка" транзакций, и на самом ли деле коммит всех данных транзакции совершается одномоментно (т.е. изменением одного и того же бита данных носителя), или есть исключения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 10:43 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
1. Ensure that WAL archiving is enabled and working. Архивирование необязательно должно быть разрешено и настроено. Без WAL Postgres не будет работать. По умолчанию используется (кажется 5) WAL сегментов по 16 Мб каждый, переключаемые по кругу(если архивирование не настроено). Начсет зеркалирования - часть данных может быть в кэше БД, а часть уже сброшена на диск, как тогда определить что же было записано, а что нет - WAL пишется в первую очередь и является точкой отсчета, на основании которой можно проконтролировать страницы БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 15:13 |
|
||
|
Горячее резервное копирывание
|
|||
|---|---|---|---|
|
#18+
landyБез WAL Postgres не будет работать. По умолчанию используется (кажется 5) WAL сегментов по 16 Мб каждый, переключаемые по кругу(если архивирование не настроено).Т.е. WAL (?журнал транзакций?)пользуецца всегда. В т.ч. как механизм восстановления после падений? А использование в инкрементальном бэкапе - опция? (Finally, WAL makes it possible to support on-line backup and point-in-time recovery) Спасибо. Атож недоссук доку подробно воскурить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2005, 16:15 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=333&tid=2006882]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
12ms |
get forum data: |
5ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 388ms |

| 0 / 0 |
