Re: Strategy for upgrade highly used server

Ekaterina Amez <[email protected]> Fri, 15 Nov 2019 10:13:41 +0100
Newsgroups gmane.comp.db.postgresql.admin
Message-ID <[email protected]>
Hi Monica,

Please, remember to answer to the list or your answer will be only 
available to me.

El 11/11/19 a las 14:37, Mónica Gamarra escribió:
> You say ...
> 1 -  we want to have the old version available  just in case newer one 
> gives us any problem.
> And also
> 2 - This server has problems with free disk space
> And
> 3 -  And the database needs to be up almost 24x7 (please describe 
> ALMOST in hours/min/sec and
> indicate if it applies to all dbs)
>
> 1 and 2 are not compatible for your task. If you can't solve 2 you've 
> only have pg_upgrade, so, you
> will lose old version.

Using pg_upgrade it's possible to have old and new postgres versions 
running. You only need minor reconfiguration. Of course, this is only 
possible if the --link option is not used, which is the option that 
needs less disk space.


>
> I you can solve 2  as  you need old version you must have double the 
> space of PG_DATA.
>
> You have to decide this before building a plan.
>
> Talking about 3, all dba's here this, negotiate.
>
> Your timeline depends on   main_db  (332 GB). You have to test 
> pg_upgrade time for this database
> in a similar server, and also test pd_dump/pg_restore.

Testing before any change in production environment is a must, always.


>
> IF databases are not related ... and only in this case you have 
> another option that is install new version
> and migrate or upgrade bid database first and then add databases db1 
> to db7  (pg_dump/pg_restore)
> one by one to new version (with this you minimize the amount of disk 
> space you need  for pg_upgrade
> and downtime).

I've used this strategy before, when upgrading other servers with 
databases without the almost-no-downtime needs.


>
> Choices.
> A) all with pg_upgrade
> - less space needed
> - NO old version
Wrong: this is only true if --link option is used. All the servers I've 
upgraded by now have both versions available, though the old one is down 
most of the time.
>
> B) pg_dump/pg_restore
> - you need double disk space
> - you will have to versions
> - more downtime needed (you need to test it no know how much)
>
> C) A combination of both - ONLY for desperates
> [ dump databases db1 to db7,  delete databases  db1 to db7 from old 
> version,  pg_upgrade  main_db, pg_restore db1 to db 7 ]
> - less space needed
> - NO old version
> - less downtime for main_db
>
> You have to TEST all plans before.
>
> Good luck!

Thank you for the schematic summary of this options (I' already knew). 
You've commented anything about replication option though.


>
> -- 
> /............................................
> Mónica Gamarra Barrios
> [email protected] <mailto:[email protected]>/