I wrote:
>> You might have better luck if you didn't use -d.
After looking into it, the above seems to be sound advice. pg_dump
appears to make several (three or four) copies of a wide field value
when using -d or -D mode, but only one copy when using the default
COPY mode. I made a minor change in 8.0 sources to get rid of one
extra copy step, but getting it below three copies looks to be
impractical.
In any case it'd be a good idea to increase the data-segment ulimit
setting you are using for both the postmaster and pg_dump, if you intend
to push multi-hundred-meg field values around.
regards, tom lane