PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como atualizar o banco de dados postgresql de 10 para 12 sem perder dados para openproject


A) Primeiro crie um backup de todos os bancos de dados para isso (você pode continuar de B se não precisar de um backup)
  1. Faça login como usuário postgres
     sudo su postgres
  1. Crie um arquivo .sql de backup para todos os dados que você tem em todos os bancos de dados
    pg_dumpall > backup.sql

B) Atualize para o PostgreSQL12
  1. atualizar pacotes e instalar postgres 12
     sudo apt-get update
     sudo apt-get install postgresql-12 postgresql-server-dev-12
  1. Parar o serviço postgresql
     sudo systemctl stop postgresql.service
  1. migrar os dados
     /usr/lib/postgresql/12/bin/pg_upgrade \
     --old-datadir=/var/lib/postgresql/10/main \
     --new-datadir=/var/lib/postgresql/12/main \
     --old-bindir=/usr/lib/postgresql/10/bin \
     --new-bindir=/usr/lib/postgresql/12/bin \
     --old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
     --new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'
  1. Mudar para usuário comum
     exit
  1. Troque as portas das versões antigas e novas do postgres.
     sudo vim /etc/postgresql/12/main/postgresql.conf
     #change port to 5432
     sudo vim /etc/postgresql/10/main/postgresql.conf
     #change port to 5433
  1. Iniciar o serviço postgresql
     sudo systemctl start postgresql.service
  1. Faça login como usuário postgres
     sudo su postgres
  1. Verifique sua nova versão do postgres
     psql -c "SELECT version();"
  1. Execute o novo script de cluster gerado
     ./analyze_new_cluster.sh
  1. Retorne como um usuário normal (usuário padrão) e limpe a bagunça da versão antiga
     sudo apt-get remove postgresql-10 postgresql-server-dev-10
     #uninstalls postgres packages
     sudo rm -rf /etc/postgresql/10/
     #removes the old postgresql directory
     sudo su postgres
     #login as postgres user
     ./delete_old_cluster.sh
     #delete the old cluster data
  1. Parabéns! Sua versão do postgresql agora está atualizada, se tudo funcionar bem em B, não precisamos aplicar o backup, pois já migramos os dados da versão mais antiga para a versão mais recente, o backup é apenas para o caso de algo der errado.

    l>

OBSERVAÇÃO: Altere o postgresql.conf e o pg_hba.conf conforme sua necessidade

PS :Sinta-se à vontade para comentar seus problemas, sugestões ou quaisquer outras modificações que você gostaria de sugerir