Обсуждение: Upgrading cluster with thousands of DBs

Поиск
Список
Период
Сортировка

Upgrading cluster with thousands of DBs

От
Alejandro Martínez
Дата:
Hi list,

We're working on upgrading from 9.1 to 9.3 some of our database
clusters, while seeking to minimize (write) downtime by making the
upgrades as fast as possible.

However, our clusters have the particularity that they get to host
many different *databases*, as in, ~2000 databases per cluster. Most
of those databases are small (only a table and PostGIS functions), so
it's more a problem of the number of DBs than the space they use. The
total size of the cluster is around 60gb.

I first started using pg_upgrade but, even when enabling
parallelization and hardlinks, as most of the steps (preliminary
check?) don't seem to be parallelized, the upgrade takes ~5 hours as
it goes database-per-database serially on most steps.

I'm experimenting with reducing the time by spawning parallel pg_dump
and pg_restore instances, so far I've reached a 3:15h mark that I
still think can reduce a bit more with some tweaking.

Does anyone have any tips on reducing the time of upgrading such a
kind of a cluster?


Thanks!


Re: Upgrading cluster with thousands of DBs

От
Gabriele Bartolini
Дата:
 Hi,

 On Tue, 14 Jan 2014 11:45:33 +0100, Alejandro Martínez <zen@itram.es>
 wrote:
> However, our clusters have the particularity that they get to host
> many different *databases*, as in, ~2000 databases per cluster. Most
> of those databases are small (only a table and PostGIS functions), so
> it's more a problem of the number of DBs than the space they use. The
> total size of the cluster is around 60gb.

 If this is your case, I'd suggest an "old-school" approach and migrate
 one database at a time on a new server with Postgres 9.3.

 Cheers,
 Gabriele
--
  Gabriele Bartolini - 2ndQuadrant Italia
  PostgreSQL Training, Services and Support
  Gabriele.Bartolini@2ndQuadrant.it - www.2ndQuadrant.it


Re: Upgrading cluster with thousands of DBs

От
Bruce Momjian
Дата:
On Tue, Jan 14, 2014 at 11:45:33AM +0100, Alejandro Martínez wrote:
> Hi list,
>
> We're working on upgrading from 9.1 to 9.3 some of our database
> clusters, while seeking to minimize (write) downtime by making the
> upgrades as fast as possible.
>
> However, our clusters have the particularity that they get to host
> many different *databases*, as in, ~2000 databases per cluster. Most
> of those databases are small (only a table and PostGIS functions), so
> it's more a problem of the number of DBs than the space they use. The
> total size of the cluster is around 60gb.
>
> I first started using pg_upgrade but, even when enabling
> parallelization and hardlinks, as most of the steps (preliminary
> check?) don't seem to be parallelized, the upgrade takes ~5 hours as
> it goes database-per-database serially on most steps.

That is surprising.  I know I see parallel hard link creation and
parallel database dump in my testing of 9.3 pg_upgrade.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +