wiki:dba_backup

Version 1 (modified by 211012, 7 days ago) ( diff )

--

Резервни копии и реставрација во PostgreSQL

Резервните копии и реставрацијата се критични компоненти во администрацијата на PostgreSQL системите. Овие процеси обезбедуваат заштита на податоците од загуба поради хардверски грешки, софтверски проблеми, човечки грешки или природни непогоди. PostgreSQL нуди неколку методи за креирање резервни копии и опоравување, секоја со свои предности и недостатоци.

Типови на резервни копии во PostgreSQL

Логичка резервна копија

Логичките резервни копии се текстуални претстава на базата на податоци што ја екстрактираат структурата и содржината во форма на SQL команди. Овој тип на резервна копија се генерира на логичко нивп, што значи дека не прави директна копија од data директориумот на базата, туку ги чита податоците преку SQL интерфејс и ги конвертира во извршни SQL команди. Овој тип на копија е практичен од аспект на тоа што излезот е во формат на SQL команди, па не е директно зависен од верзијата на кластерот од каде што се прави копијата или каде што се реставрира. Ваквиот формат, истотака го прави излезот од копијата читлив и отвора можност едноставно да се менува доколку е потребно. Дополнително, функционалностa за логички резервни копии во PostgreSQL, oвозможува селективно копирање на делови од базата, за што ќе бидат прикажани примери во продолжение.

pg_dump е најчесто користената алатка за креирање логички резервни копии во PostgreSQL

Основни примери за користење на pg_dump

  • Резервна копија на целата база на податоци

pg_dump -h localhost -U postgres -d db_name > db_name.sql

  • Резервна копија каде што излезот е компресирана датотека (се користи принципот на цевки во UNIX)

`pg_dump -h localhost -U postgres -d db_name | gzip > db_name.sql.gz

  • Резервна копија каде што излезот е со наставка по желба на корисникот

pg_dump -h localhost -U postgres -Fc -d db_name > db_name.custom

Користење на pg_dump за селективна резервна копија

  • Резервна копија само на шемата (без податоци)

pg_dump -h localhost -U postgres -s -d db_name > db_name.sql

  • Резервна копија само на податоците

pg_dump -h localhost -U postgres -a -d db_name > db_name.sql

  • Резервна копија само на излистаните табели (секоја табела се наведува како посебен -t параметар)

pg_dump -h localhost -U postgres -d db_name -t table1 -t table2 > db_name.sql

  • Резервна копија на сите табели, со исклучок на излистаните

pg_dump -h localhost -U postgres -d db_name --exclude-table=table1 > db_name.sql

  • Резервна копија само на излистана шема од базата

pg_dump -h localhost -U postgres -d db_name -n public > db_name.sql

Користење на pg_dump со дополнителни опции

  • Резервна копија каде што ќе бидат додадени DROP команди пред секое креирање на објект.

Ова е практично доколку сакаме да овозможиме резервната копија да може да се аплицира врз веќе постоечка и активна (полна) база, така што наместо рачно пребришување на објектите, истото ќе се направи автоматски.

pg_dump -h localhost -U postgres -c -d db_name > db_name.sql

  • Резервна копија каде што командите за креирање ќе вклучуваат IF EXISTS проверки

Ова е практично доколку сакаме да овозможиме реставрирање на копијата на парцијално креирана база, на начин што ќе избегнеме грешки за веќе постоечките објекти

pg_dump -h localhost -U postgres --if-exists -c -d db_name > db_name.sql

Note: See TracWiki for help on using the wiki.