uvt:linux:pg_dump
Rozdiely
Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.
Nasledujúca revízia | Predchádzajúca revízia | ||
uvt:linux:pg_dump [25/11/2011 11:41] – vytvorené rh641dv | uvt: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 ===== | ||
+ | |||
+ | < | ||
+ | 0 * * * * / | ||
+ | </ | ||
+ | |||
+ | ===== pg_dump.sh ===== | ||
+ | |||
+ | < | ||
+ | # | ||
+ | # 22.11.2011 | ||
+ | |||
+ | #vytvorenie zaloh databazy | ||
+ | #1) tyzdenna zaloha | ||
+ | #2) denna zaloha | ||
+ | #3) hodinova zaloha | ||
+ | |||
+ | date | ||
+ | echo " | ||
+ | |||
+ | #zoznam databaz | ||
+ | ZALOHUJ_DB=" | ||
+ | |||
+ | # nastavenia | ||
+ | DIR=/ | ||
+ | DIR1=$DIR/ | ||
+ | DIR2=$DIR/ | ||
+ | DIR3=$DIR/ | ||
+ | DIR1_MAX=200 # | ||
+ | DIR2_MAX=60 # | ||
+ | DIR3_MAX=48 # | ||
+ | |||
+ | ################## | ||
+ | #vymazanie starych suborov nad maximalny pocet | ||
+ | function vymaz_subor() | ||
+ | { | ||
+ | #vstup 1: adresar | ||
+ | ADRESAR=$1 | ||
+ | #vstup 2: maximalny pocet | ||
+ | MAX=$2 | ||
+ | |||
+ | echo " | ||
+ | |||
+ | #kontrola, ci existuje adresar | ||
+ | if [ ! -d " | ||
+ | echo " | ||
+ | return 0 | ||
+ | fi | ||
+ | |||
+ | echo "mazem z: $ADRESAR" | ||
+ | |||
+ | #kontrola, ci je max vacsie ako 0 | ||
+ | if [[ $MAX -le 0 ]]; then | ||
+ | echo " | ||
+ | return 0 | ||
+ | fi | ||
+ | |||
+ | #ziskaj zoznam suborov | ||
+ | POCET=`ls $ADRESAR/* | wc -l | sed -e 's/ // | ||
+ | |||
+ | echo " | ||
+ | |||
+ | #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" | ||
+ | |||
+ | # | ||
+ | SUBOR=`ls -tr $ADRESAR/* | head -$VYMAZ` | ||
+ | |||
+ | # | ||
+ | rm -f $SUBOR | ||
+ | fi | ||
+ | } | ||
+ | |||
+ | ####################### | ||
+ | # | ||
+ | DAY=`date " | ||
+ | HOD=`date " | ||
+ | |||
+ | #tyzdenna zaloha | ||
+ | if [[ $DAY = 1 && $HOD = 00 ]] ; then | ||
+ | echo " | ||
+ | |||
+ | 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 " | ||
+ | |||
+ | DIR=$DIR3 | ||
+ | DIR_MAX=$DIR3_MAX | ||
+ | fi fi | ||
+ | |||
+ | #kontrola, ci existuje adresar | ||
+ | if [ ! -d " | ||
+ | mkdir $DIR | ||
+ | fi | ||
+ | |||
+ | ####################### | ||
+ | #prechadzaj jednotlive databazy | ||
+ | for DB in $ZALOHUJ_DB; | ||
+ | #vytvor nazov suboru | ||
+ | SUBOR=$DB\_`date " | ||
+ | |||
+ | #kontrola, ci existuje adresar | ||
+ | if [ ! -d " | ||
+ | mkdir $DIR/$DB | ||
+ | fi | ||
+ | |||
+ | # | ||
+ | echo " | ||
+ | pg_dump -O $DB > $DIR/ | ||
+ | |||
+ | #zozipuj zalohu | ||
+ | gzip -r $DIR/ | ||
+ | |||
+ | # | ||
+ | vymaz_subor $DIR/$DB $DIR_MAX | ||
+ | done | ||
+ | |||
+ | echo " | ||
+ | date | ||
+ | </ |
uvt/linux/pg_dump.1322217702.txt.gz · Posledná úprava: 25/11/2011 11:41 od rh641dv