Prática de atualização da versão do PostgreSQL. Andrey Salnikov

Sugiro que você se familiarize com a decodificação do relatório de 2018 de Andrei Salnikov, "A prática de atualizar versões do PostgreSQL"


Na maioria das vezes, os administradores de sistema e o DBA têm medo de fazer grandes atualizações nas versões do banco de dados (RDBMS) como um incêndio, especialmente se esse banco de dados estiver em operação e tiver uma carga bastante alta. A principal razão para isso é algum tempo de inatividade do banco de dados, sempre implícito no planejamento desse trabalho.


Na prática, esse tipo de atualização leva muito tempo e, geralmente, os administradores com pouca experiência nessas operações precisam reverter para a versão antiga dos bancos de dados devido aos erros triviais que poderiam ter sido evitados no estágio de preparação.


No Data Egret, acumulamos vasta experiência na realização de grandes atualizações do PostgreSQL em projetos onde não há espaço para erros. Vou compartilhar minha experiência e falar sobre as próximas etapas do processo: como se preparar para a atualização do PostgreSQL? O que precisa ser feito na fase de preparação? Como planejar a sequência de ações para atualização em si? como executar o procedimento de atualização com êxito, sem retornar à versão anterior do banco de dados? como minimizar ou mesmo evitar o tempo de inatividade de todo o sistema durante a atualização? Quais etapas eu preciso concluir após a atualização bem-sucedida do PostgreSQL? Também falarei sobre os dois procedimentos mais populares de atualização do PostgreSQL - pg_upgrade e pg_dump / pg_restore, os prós e contras de cada método e falarei sobre todos os problemas típicos em todas as etapas deste procedimento e como evitá-los.


O relatório será interessante tanto para iniciantes quanto para os DBAs que trabalham há muito tempo com o PostgreSQL, mas desejam aprender mais sobre como planejar e executar corretamente a atualização da maneira mais simples possível.



Olá! Eu trabalho na Data Egret. Estamos comprometidos em oferecer suporte aos servidores PostgreSQL e fornecer serviços de consultoria PostgreSQL. E a prática mostrou que poucas pessoas atualizam o banco de dados. Eles lançaram o projeto, instalaram a versão atual naquele momento e ainda estão trabalhando.


O relatório consistirá em três partes. O primeiro é introdutório para chegar a uma terminologia comum. O segundo é sobre pequenas atualizações. E o terceiro será sobre major.



O objetivo do relatório é responder a perguntas.


  • ? , Postgres . , - . , . , . .
  • , .
  • , , .
  • , : « ?». .
  • , . , production .

, Postgres.



, , . 10 . , , , – .



10- . , . – , – .



?


. , – . 9.6 , , , . . .


10- . , .


. . , .


. .


– , . 6. . , . . . 9.2. , , 9.2 . 9.2, .


: .



. , , production :


  • release notes. ? , release notes, release notes , . , . - . , , . , 10- , -. , , .
  • ? . , . release notes, . , - . , Postgres , , . , Postgres, .
  • - , , , , production .
  • , – , . — , , , . .

, , , .



. .


, . , Postgres. Postgres.


:


  • PostgreSQL. , - , , , Postgres . . . , . Ubuntu, , , . start.conf. . .
  • PostgreSQL . , , common- . .
  • – checkpoint. checkpoint? , . , , , . , , , , 250 GB, . checkpoint, Postgres.
  • ? pgbouncer, , . pgbouncer, pgbouncer . pgbouncer’ – , - . latency . . . , pgbouncer, . checkpoint, pgbouncer, .
  • , . . , .
  • , extensions, - extensions. – extensions . . . . . .
  • ( , release notes) release notes. – - . , 9.6.1 9.6.6, , release notes 9.6.2 – 9.6.6. - , , , .
  • standby , , . , 14- , 2.3 . . , . .

, release notes.



Postgres.org. 9.6.2. , .


? , , . , . .


. . . , , release notes. .



, . . , , 9.6.5. 9.6.1. , . - . , – . – .


, . . . bash- , . alter extension, update .



?


  • . . , , .
  • . , , , release notes.
  • . , - , . . . .
  • , . . . , checkpoint, 30 .


– .


. , . .


  • Pg_dump restore – . , . - .
  • Pg_upgrade – , , , 95 % , . .
  • .

.



pg_dump ?


  • . , . 9.5, , 10. Ubuntu , RedHat – Postgres. , .
  • locale, .
  • Postgres, , , , , .
  • , pg_dumop. PostgreSQL. ? pg_dump , , , . , , . . PostgreSQL, . . , . , .
  • . pg_dump, . . , .
  • . .
  • , , , PostgreSQL.

, , , .



pg_dump:


  • . – . .
  • . .
  • . : , , . , .
  • , , . .
  • . , . . SSD-, SSD- . , , . .
  • . , . , . , , . , , . .


, pg_upgrade.


  • Pg_upgrade . , . . , . .
  • . , , .
  • PostgreSQL. -, .
  • . .


, pg_upgrade. : , , .


, pg_upgrade, , , . , , . .


, – pg_upgrade dump restore , pg_dump, restore , , , . .


. , , 8.4. Postgres .


, (, 9.0 10) -. , , . . , .



, production. . . , – .


  • PostgreSQL.
  • locace. .
  • pg_upgrade. «check». Check , . , - , , , , . , . , .
  • Pg_dumpall — schema-only. check . pg_dumpall – schema-only, . , . , , check , dump .
  • extensions . – PostGIS, PostGIS Postgres. extension Postgres, Postgres. changelog – , pg_upgrade , . dump restore .


, , , .


  • locale, pg_dumpall only, restore.


  • . , pgbouncer , . . , .


  • checkpoints, , .


  • pg_upgrade. , . . 45 . , 45 , . 15 , . .



  • , . hard links. .



  • PostgreSQL. . PostgreSQL? . , pg_upgrade .


  • .


  • . 10 . , .



:


  • pg_upgrade . , : , 10 .


  • , , .


  • 9.5 . , .



  • . . , , . , vacuumdb 1, 10 . , . - . - . , , .


  • . , . - . , , . , , .




.



  • Pg_upgrade extensions. , .
  • release notes .
  • , , extensions – alter extension EXTENSION_NAME update. . pg_stat_statements, - . pg_upgrade, pg_stat_statements. . .


– ? :


  • - - .
  • , , , , , . . , , .
  • ? Postgres. . . , , , 10 .
  • PostgreSQL.
  • pg_basebackup . .
  • PostgreSQL.
  • , rsync, . , , , . rsync , .


. :


  • -, PostgreSQL.
  • . .

9.4 . . , 10 11 .


, . Slony-l, Londiste, Bucardo . . .



?


  • PostgreSQL.
  • - Postgres Postgres.
  • , , . .
  • , . . , Postgres. , , . . . , .
  • Postgres, , .
  • Postgres, . , , . - .


?


  • , . - .
  • , . . . . , .
  • sequences, -.
  • DDL, . DDL , , . , .
  • , , .


, . pg_upgrade , .


? , 3 TB, 2 SSD RAID 3 TB. . .


. .


, , 99 - 9- . 15 . 15 . . - .



, pg_upgrade. . .


.



! pgbouncer , , , , , . ?


, SSD . SSD , . . . . , , , , . , , . , Postgres. , .


pg_worm pg_hibernate, ?


, , .


! pg_upgrade?


, . , . , . , , - , . , , . , .


rsync -?


rsync? Rsync . , , , , . ? pg_upgrate . , . – pg_start_backup. rsync . - , rsync , . , , , tablespace HDD, rsync , . – , . , . – pg_basebackup.


! , …


Isso se aplica a pequenas atualizações.


All Articles