Chronos Inside
17 março, 2006
  Scripts proveitosos :P.
Esses últimos dois dias tive um problemaço, tive que refazer nada mais, nada
menos do que 17 dumps de base.

Explicando: Na empresa, nós fazemos dump de base em uma das ferramentas,
versionando elas, criando patches, etc. Mas, alguns dumps foram feitos sem
alguns patches aplicados, o que zoou todos os que vieram depois. Falta de
orientação minha pro pessoal eu creio. Enfim, ai eu tive que arrumar tudo.

Explicando 2: troquei o nome do site por foobar, para não expor nada da empresa.

Explicando 3: Bem, nós aqui separamos os dados em um arquivo, a estrutura em
outro, então para criar as bases e criar os dumps são dois comandos para cada.

Explicando 4 (só mais um): usamos postgres aqui e os scripts mostram o que fazem
por si só. Em todos eu usei as funções do /sbin/functions.sh.

Script para criar as bases de dados.


1 #!/bin/bash

2

3 . /sbin/functions.sh

4

5 for e in `ls structure*.sql`;

6 do

7 var1=${e/structure_v};

8 var1=${var1/\.sql};

9 dropdb -qU dvown 'foobar_'$var1 &>/dev/null

10 sleep 1s;

11 createdb -qU dvown 'foobar_'$var1;

12 sleep 1s;

13 if [ -e 'data_v'$var1'.sql.bz2' ]

14 then

15 rm 'data_v'$var1'.sql'

16 fi

17 bzip2 -dk 'data_v'$var1'.sql.bz2'

18 psql -qU dvown 'foobar_'$var1 < 'structure_v'$var1'.sql' &>/dev/null;

19 psql -qU postgres 'foobar_'$var1 < 'data_v'$var1'.sql' &>/dev/null;

20 einfo 'Base foobar_'$var1' criada.';

21 sleep 1s;

22 done



Script para recriar dumps


1 #!/bin/bash
2
3 . /sbin/functions.sh
4
5
6 einfo "Estes script recria todos os dumps de base dao gestao, personalizado para uma ocasião."
7 for e in `ls data*.sql`;
8 do
9 var1=${e/data_v};
10 var1=${var1/\.sql};
11
12
13 echo
14 echo
15
16 einfo "Base foobar_${var1}"
17
18 echo -e "\t`einfo 'Criando dump da estrutura -> structure_v'${var1}'.sql'`"
19 pg_dump -s -i -O -U dvown 'foobar_'$var1 > 'structure_v'$var1'.sql' 2>'error.structure_v'$var1'.log'
20 eend $?
21
22 echo -e "\t`einfo 'Criando dump dos dados -> data_v'${var1}'.sql'`"
23 pg_dump -a -D -X disable-triggers -i -O -U dvown 'foobar_'$var1 > 'data_v'$var1'.sql' 2>'error.data_v'$var1'.log'
24 eend $?
25
26 echo -e "\t`einfo 'Compactando dump dos dados -> data_v'${var1}'.sql.bz2'`"
27 rm 'data_v'$var1'.sql.bz2'
28 bzip2 -z9k 'data_v'$var1'.sql'
29 eend $?
30
31 done
32 echo
33 echo
34 ewarn "Se houve erros verifique os logs."
35 echo


Qualquer dúvida, comment o blog ou envie um email.
 
Comments: Postar um comentário



<< Home
putz...precisa disso. Bem, aqui quero falar muito pouco sobre minha vida pessoal, e principalmente sobre programação, linux, e coisas relacionadas. tem espaço ainda para bike, que eu amo!

ARCHIVES
fevereiro 2006 / março 2006 / abril 2006 / junho 2006 / agosto 2006 / maio 2007 /


Powered by Blogger