[Re] Re: [Re] Re: [Re] Re: [Re] Re: [GENERAL] Unknown winsock error 10061while dumping a big database
De : mailto:[EMAIL PROTECTED] Cyril VELTER wrote: Is length() supposed to return the very high length in case of corruption ? You'd have thought it would. The odd thing (if it is data corruption) is that you would expect to see something in the server logs about a failure to allocate 12345412234124 bytes of memory or some such. Whereas all you get is this winsock error. I have another theory. The message printed by pg_dump : pg_dump: Error message from server: out of memory is printed in dumpTableData_copy (pg_dump.c) : write_msg(NULL, Error message from server: %s, PQerrorMessage(g_conn)); There are serveral places in libpq where the conn error might be set to out of memory. I've also discovered that the machine running pg_dump is pretty tight in ram (256M) and that no swap file is active (oversight after a disk upgrade). May be this error is simply pg_dump running out of memory and not the server. This would also explain that the server only report a socket error (though I would have expected WSAECONNRESET (10054) instead of WSAECONNREFUSED (10061)). The 8.0.13 pg_dump used to work just fine on the exact same machine. Maybe 8.2 pg_dump need more memory (or maybe a memory leak ?). I'm running the dump again after adding some swap space and will monitor memory usage. What do you think ? Is there anythning else i can do ? Could you try CREATE some_table AS SELECT * FROM c2674 WHERE ... to copy the large rows within the database. If that fails, the table is corrupted but you can identify the problem rows and work around them while you dump the data. I will try that this week end if my theory prove wrong (I need to make disk space available on the server for that, the table is 60GB). Thanks, Cyril ---(end of broadcast)--- TIP 2: Don't 'kill -9' the postmaster
Re: [Re] Re: [Re] Re: [Re] Re: [Re] Re: [GENERAL] Unknown winsock error 10061while dumping a big database
Cyril VELTER wrote: De : mailto:[EMAIL PROTECTED] Cyril VELTER wrote: Is length() supposed to return the very high length in case of corruption ? You'd have thought it would. The odd thing (if it is data corruption) is that you would expect to see something in the server logs about a failure to allocate 12345412234124 bytes of memory or some such. Whereas all you get is this winsock error. I have another theory. The message printed by pg_dump : pg_dump: Error message from server: out of memory is printed in dumpTableData_copy (pg_dump.c) : write_msg(NULL, Error message from server: %s, PQerrorMessage(g_conn)); There are serveral places in libpq where the conn error might be set to out of memory. I've also discovered that the machine running pg_dump is pretty tight in ram (256M) and that no swap file is active (oversight after a disk upgrade). May be this error is simply pg_dump running out of memory and not the server. This would also explain that the server only report a socket error (though I would have expected WSAECONNRESET (10054) instead of WSAECONNREFUSED (10061)). Aha - that sounds likely. If you're dumping multi-megabyte rows I can see how you'd get into problems on a client with a small amount of RAM. The 8.0.13 pg_dump used to work just fine on the exact same machine. Maybe 8.2 pg_dump need more memory (or maybe a memory leak ?). Might just be slightly higher RAM usage in your particular case. It could be there were some trade-offs between size and speed. I'm running the dump again after adding some swap space and will monitor memory usage. What do you think ? I think you've found the problem. If you're short of RAM though you might also have difficulty restoring the dump. You could run pg_dump on the Windows server and copy its output to the RAM-limited Linux box. You could even run pg_restore from the Windows box - if you don't have a direct channel to the database you can use the putty ssh-client to create a tunnelled connection to the Linux box. -- Richard Huxton Archonet Ltd ---(end of broadcast)--- TIP 5: don't forget to increase your free space map settings