På tirsdag 12. januar 2016 kl. 23:28:55, skrev Tom Lane <t...@sss.pgh.pa.us 
<mailto:t...@sss.pgh.pa.us>>:
Andreas Joseph Krogh <andr...@visena.com> writes:
 > P�� tirsdag 12. januar 2016 kl. 22:56:56, skrev John R Pierce <
 > pie...@hogranch.com <mailto:pie...@hogranch.com>>:
 >> On 1/12/2016 1:20 PM, Andreas Joseph Krogh wrote:
 >>> I'm moving a > 500GB DB to another server which is initdb'ed with a
 >>> different locale (nb_NO.UTF-8 to get correct collation when ORDER BY).
 >>> Is there another option than pg_dump/restore for doing this?

 >>  nope, because the text data has to be converted to the new encoding,
 >>  indexes rebuilt since the collation order is different, etc.

 > I was pretty sure there wasn't, but had to ask before imposing downtime on 
our
 > customers.

 If you're only changing collation and not encoding, then in principle you
 could move the tables over and then reindex each collation-sensitive
 index.  pg_upgrade has no ability to do that for you though, which would
 make it an error-prone manual process.  Also, it'd be far from
 zero-downtime since you still gotta rebuild a lot of indexes.

 regards, tom lane
 
This is interessting.
I'm only changin collation, the encoding (UTF-8) is the same. I'm replacing 
the packaged PG's version of initdb (resulting in en_US.UTF-8) with:
/usr/lib/postgresql/9.5/bin/initdb --locale=nb_NO.UTF-8 -D 
/var/lib/postgresql/9.5/main
 
Are you saying that I don't have to re-initdb and can just change collation 
somehow? If so, how?
 
pg_upgrade + re-indexing is much preferred instead of the 10+ hours the 
pg_dump/restore would take (SSD-disks).
 
Thanks.
 
-- Andreas Joseph Krogh
CTO / Partner - Visena AS
Mobile: +47 909 56 963
andr...@visena.com <mailto:andr...@visena.com>
www.visena.com <https://www.visena.com>
 <https://www.visena.com>


 

Reply via email to