As usual, you are totally right Tom.
But thanks everybody for the debate. Only I have to add, is near a "must" to run with --check before actually run the command.
2013/5/16 Tom Lane <tgl@xxxxxxxxxxxxx>
I don't think anybody actually answered your original question.Fabio Rueda Carrascosa <avances123@xxxxxxxxx> writes:
> Hello, I have a 9.1 cluster with 50 databases, only one table per db with
> 2000 rows only, but a lot of schema around each one (postgis databases)
> The old cluster size is 1GB
> du -chs /var/lib/postgresql/9.1/main/
> 1.1G
> now I run a pg_upgrade to 9.2 with hard link mode,
> pg_upgrade --link \
> --old-datadir=/var/lib/postgresql/9.1/main \
> --new-datadir=/var/lib/postgresql/9.2/main \
> --old-bindir=/usr/lib/postgresql/9.1/bin \
> --new-bindir=/usr/lib/postgresql/9.2/bin
> du -chs /var/lib/postgresql/9.2/main/
> 880M
> Is the expected behaviour? I can't double the space in production.
The above doesn't represent a doubling of disk space, it just shows that
"du" only tells you how much file space is linked into the directory
tree you ask it about. That is, there's lots of overlap between the
first and second du results. If you try "du" passing it both directory
trees together, it should give you a number for the total space
consumption that's not much more than 1.1G. (Depending on which version
of "du" you're using, you may need to give it an additional switch to
tell it not to double-count multiply-linked files.)
regards, tom lane