Nástroje používateľa

Nástoje správy stránok


uvt:linux:pg_dump

Rozdiely

Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.

Odkaz na tento prehľad zmien

Nasledujúca revízia
Predchádzajúca revízia
uvt:linux:pg_dump [25/11/2011 11:41] – vytvorené rh641dvuvt:linux:pg_dump [25/11/2011 12:48] (aktuálne) rh641dv
Riadok 1: Riadok 1:
-pokus+====== PostgreSQL zalohovanie ====== 
 + 
 +Vytovaranie pravidelnych zaloch pre postgresql s rozdelenim na: 
 +  - tyzdenna zaloha 
 +  - denna zaloha 
 +  - hodinova zaloha 
 + 
 +Pripravene pre spustanie pod uzivatelom postgresql s definovanim vsetkych databaz na servery, ktore je potrebne takto zalohovat. 
 + 
 +===== cron ===== 
 + 
 +<code> 
 +0 * * * * /var/lib/postgresql/bin/pg_dump.sh > /tmp/pg_dump.sh.log 2>&
 +</code> 
 + 
 +===== pg_dump.sh ===== 
 + 
 +<code> 
 +#!/bin/bash 
 +# 22.11.2011 
 + 
 +#vytvorenie zaloh databazy 
 +#1) tyzdenna zaloha 
 +#2) denna zaloha 
 +#3) hodinova zaloha 
 + 
 +date 
 +echo "ZACIATOK" 
 + 
 +#zoznam databaz 
 +ZALOHUJ_DB="db1 db2 db3" 
 + 
 +# nastavenia 
 +DIR=/opt/pg_dump #nastavenie zalozneho adresara 
 +DIR1=$DIR/tyzdenna #nastavenie adresara tyzdennych zaloh 
 +DIR2=$DIR/denna #nastavenie adresara dennych zaloh 
 +DIR3=$DIR/hodinova #nastavenie adresara hodinovych zaloh 
 +DIR1_MAX=200 #maximalny pocet uchovavanych tyzdennych zaloch 
 +DIR2_MAX=60 #maximalny pocet uchovavanych dennych zaloch 
 +DIR3_MAX=48 #maximalny pocet uchovavanych hodinovych zaloch 
 + 
 +################## 
 +#vymazanie starych suborov nad maximalny pocet 
 +function vymaz_subor() 
 +
 + #vstup 1: adresar 
 + ADRESAR=$1 
 + #vstup 2: maximalny pocet 
 + MAX=$2 
 + 
 + echo "vymaz_subor($ADRESAR, $MAX)" 
 + 
 + #kontrola, ci existuje adresar 
 + if [ ! -d "$ADRESAR" ]; then 
 + echo "ERROR: nespravny vstup 1, neexistuje adrear - $ADRESAR" 
 + return 0 
 + fi 
 + 
 +        echo "mazem z: $ADRESAR" 
 + 
 + #kontrola, ci je max vacsie ako 0 
 +        if [[ $MAX -le 0 ]]; then 
 + echo "ERROR: nespravny vstup 2, maximalny pocet suborov - $MAX" 
 + return 0 
 + fi 
 + 
 + #ziskaj zoznam suborov 
 +        POCET=`ls $ADRESAR/* | wc -l | sed -e 's/ //g'
 + 
 +        echo "aktualny pocet: $POCET" 
 + 
 + #ak je pocet vacsi ako maximum 
 +        if [[ $POCET -gt $MAX ]]; 
 +        then 
 + #vypocet, kolko suborov sa ma vymazat 
 +        VYMAZ=`expr $POCET - $MAX` 
 + 
 + echo "mazem pocet: $VYMAZ" 
 + 
 + #vytvorenie zoznamu suborov pre vymazanie 
 + SUBOR=`ls -tr $ADRESAR/* | head -$VYMAZ` 
 + 
 + #vymazanie suborov 
 +         rm -f $SUBOR 
 +        fi 
 +
 + 
 +####################### 
 +#rozposielanie suborov 
 +DAY=`date "+%u"` #POZOR format 1-7 
 +HOD=`date "+%H"` #POZOR format 00-23 
 + 
 +#tyzdenna zaloha 
 +if [[ $DAY = 1 && $HOD = 00 ]] ; then 
 + echo "TYZDENNA ZALOHA" 
 + 
 + DIR=$DIR1 
 + DIR_MAX=$DIR1_MAX 
 + 
 +#denna zaloha 
 +else if [[ $HOD = 00 ]] ; then 
 + echo "DENNA ZALOHA" 
 + 
 + DIR=$DIR2 
 + DIR_MAX=$DIR2_MAX 
 + 
 +#denna zaloha 
 +else 
 + echo "HODINOVA ZALOHA" 
 + 
 + DIR=$DIR3 
 + DIR_MAX=$DIR3_MAX 
 +fi fi 
 + 
 +#kontrola, ci existuje adresar 
 +if [ ! -d "$DIR" ]; then 
 + mkdir $DIR 
 +fi 
 + 
 +####################### 
 +#prechadzaj jednotlive databazy 
 +for DB in $ZALOHUJ_DB; do 
 + #vytvor nazov suboru 
 + SUBOR=$DB\_`date "+%y%m%d_%H%M"`.sql 
 + 
 + #kontrola, ci existuje adresar 
 + if [ ! -d "$DIR/$DB" ]; then 
 + mkdir $DIR/$DB 
 + fi 
 + 
 + #vytvorenie zalohy databazy 
 + echo "vytvaram zalohu: $SUBOR" 
 + pg_dump -O $DB > $DIR/$DB/$SUBOR 
 + 
 + #zozipuj zalohu 
 + gzip -r $DIR/$DB/
 + 
 + #odstranenie suborov nad pozadovany pocet zaloch 
 + vymaz_subor $DIR/$DB $DIR_MAX 
 +done 
 + 
 +echo "KONIEC" 
 +date 
 +</code>
uvt/linux/pg_dump.1322217702.txt.gz · Posledná úprava: 25/11/2011 11:41 od rh641dv

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki