Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Beto Lima

8.3 para 8.4

Recommended Posts

Olá queria saber onde posso encontrar algum material que ensine a migrar base de dados da 8.3 para 8.4 ou até mesmo a 9 beta.

preciso migrar uma base de 8.3, instalar a versão 8.4 e colocar essa base nela.

tenho receios de sair fazendo a miguelão porque certamente tem surpresas no caminho, erros etc...

por isso queria algumas dicas sobre o assunto.

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

a partir da versão 8.4, basta chamar o pg_upgrade. Mas da 8.3 para trás, é necessário fazer o tradicional pg_dump + pg_restore.

 

Passo-a-passo (de cabeça e se você tiver tempo suficiente para deixar seu banco parado):

1. baixe a nova versão (eu prefiro o pacote fonte do quê binários rpm)

2. faça um backup dos bancos atuais: um pg_dump para cada banco Ex.: pg_dump -Fc -d -f meu_bd.dat meu_bd

3. pare o banco. Verifique se realmente parou com um ps ax | grep post

4. instale o pacote baixado: tar -xf ...; cd post...; ./configure; ./make; ./make install

5. crie uma nova pasta onde ficarão os dados. Ex.: /srv/database

6. crie um usuário para o postgres caso ainda não haja. Ex. adduser postgres

7. dê acesso apenas para o postgres nesta pasta: chmod 700 /srv/database; chown postgres /srv/database

8. entre com o usuário postgres e inicie a pasta criada: use o mesmo ENCODING da base antiga ! Ex.: su postgres; /usr/local/pgsql/bin/initdb -E LATIN1 -D /srv/database; exit

9. inicie o novo banco. Ex.: /usr/local/pgsql/bin/postmaster -D /srv/database

10. restaure a base antiga no novo banco: psql template1 postgres -> CREATE DATABASE meu_bd; \q; pg_restore -d meu_bd meu_bd.dat

11. voilá - se os programas estiverem funcionando, você pode excluir a pasta antiga

 

Dicas:

1. faça um teste usando OUTRA máquina

2. faça uma cópia do pg_hba.conf (permissões de acesso) e do postgresql.conf (configurações do banco) e após instalar a nova versão verifique se estão parecidos

3. ao fazer o backup, se você tiver binário largos no banco (BLOBs: fotos, documentos, músicas, etc) você precisa ativar a opção de "fazer backup dos binários largos"

4. não use COPY, use INSERT (se não pode haver problemas com textos com aspas)

5. cuide para criar a nova base com o mesmo ENCODING (LATIN1, UTF8, etc)

6. verifique se você vai chamar os binários corretos (/usr/local/pgsql/initdb ou /sbin/initdb ?): versões diferentes podem instalar em locais diferentes

7. se você quer iniciar o BD automaticamente sempre que iniciar o computador, crie um script em /etc/init.d. Você pode copiar e colar um modelo que está em contrib/start-scripts/linux. Ex.: cp contrib/start-scripts/linux /etc/init.d/postgresql. Altere a variável que aponta para a pasta inicializada com "initdb". Habilite a inicialização automática com "chkconfig postgresql on"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.