Jedi Tux

Atualização do PostgreSQL para 9.2 – Arch Linux

Posted in Dicas, Servers by Fernando Basso on 28 de setembro de 2012

----------------------------------------------------
bash-4.2, vaio@nando, Fri Sep 28 07:37:53 
$PWD="~/"  
$ sudo rc.d start postgresql 
[sudo] password for nando: 
:: Starting PostgreSQL

[BUSY] pg_ctl: could not start server
               Examine the lot output

    vim /var/log/postgresql.log

FATAL:   database files are incompatible with server 6009
DETAIL:  The data directory was initialized by PostgreSQL version 9.1, which
is not compatible with this version 9.2.1.

-------------------------------------------------------------------------------
http://www.postgresql.org/docs/current/static/upgrading.html

NOTA: É possível fazer isso com a versão 9.2, mas como no meu caso eu nem consegui
inicializar o postgresql com ela, fiz com a 9.1 mesmo.

    sudo pacman -U /var/cache/pacman/pkg/postgresql-9.1.4-1-i686.pkg.tar.xz


Primeiro de tudo, salvar o banco de dados atual, com a versão 9.1 do postgresql
rodando:

    pg_dumpall > postgresql_backup_completo.sql

Mas aí teve algo errado, pois ele ficava peding a senha do usuário linha após
linha, e com
    pg_dumpall -U postgres ...

aconteceu a mesma coisa.

vim ~/.pgpass
localhost:5432:db_nando:nando:1234

Mas pra fazer o backup de tudo, temos que deixar o campo que especifica
a database com "*":
localhost:5432:*:nando:1234

http://www.postgresql.org/docs/9.2/static/libpq-pgpass.html
On Unix systems, the permissions on .pgpass must disallow any access to world
or group; achieve this by the command chmod 0600 ~/.pgpass. If the permissions
are less strict than this, the file will be ignored. On Microsoft Windows,
it is assumed that the file is stored in a directory that is secure, so no
special permissions check is made.


(08:29)  gciolli: Should ~/.pgpass allow my to just type psql and connect 
                     without any further iteration?
(08:31)  FernandoBasso: .pgpass only takes care of not having to type the 
                     password, all the other options are handled via environment 
                     variables like PGUSER, etc.

http://www.postgresql.org/docs/9.2/static/libpq-envars.html
Pode ser no bashrc.
export PGUSER=myFavouritePostgresUser
export PGDATABASE=db_nando

Agora já devemos estar podento digitar apenas "psql" pra logar sem
ter que especificar o password nem a database.

--------------------------- // ----------------------- // -----------------

Agora deve funcionar:
    pg_dumpall > postgressql_backup_completo_upgrade_para_9.2

    sudo rc.d stop postgresql (arch linux)

    cd /var/lib/postgres
    mv data bkp_data_9.1

    rc.d start postgresql
    rc.d stopt postgresql

    cp bkp_data_9.1/pg_hba.conf data/
    cp bkp_data_9.1/postgresql.conf data/


    vim data/pg_hba.conf

E seta
    host    all     all    127.0.0.1/32     md5
para
    host    all     all    127.0.0.1/32     trust

por que os passwords e usuários não vão funcionar mais.

    psql -U postgres


Criamos um usuário:

    CREATE ROLE admin WITH LOGIN PASSWORD 'admin' CREATEDB CREATEROLE; 
    ALTER USER admin VALID UNTIL 'infinity';

Colocamos uma senha para o superuser postgres:
    ALTER USER postgres WITH PASSWORD 'serect_passwd';

Recuperar os dados (deu alguns avisos aqui, mas funcionou tudo mesmo assim):

    psql -d postgres -f postgresql_backup_completo.sql

Coloca os 'trust' para 'md5' novamente no arquivo pg_hba.conf.

Reinicia o postgres e já deve estar tudo ok.


For further reading:

https://wiki.archlinux.org/index.php/PostgreSQL#Upgrading_PostgreSQL
http://www.postgresql.org/docs/current/static/upgrading.html



Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: