Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1VR5eU-0003z1-6Y for pgsql-admin@arkaria.postgresql.org; Tue, 01 Oct 2013 19:30:34 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1VR5eS-0000rU-37 for pgsql-admin@arkaria.postgresql.org; Tue, 01 Oct 2013 19:30:32 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1VR5eR-0000rN-2w for pgsql-admin@postgresql.org; Tue, 01 Oct 2013 19:30:31 +0000 Received: from mail.pasteleros.org.ar ([200.49.144.54]) by magus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1VR5eL-0003FI-F3 for pgsql-admin@postgresql.org; Tue, 01 Oct 2013 19:30:30 +0000 Received: from mail.pasteleros.org.ar (unknown [127.0.0.1]) by mail.pasteleros.org.ar (Postfix) with ESMTP id 645F0229B2 for ; Tue, 1 Oct 2013 16:30:06 -0300 (ART) X-Virus-Scanned: amavisd-new at pasteleros.org.ar Received: from mail.pasteleros.org.ar ([127.0.0.1]) by mail.pasteleros.org.ar (mail.pasteleros.org.ar [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0NBCszZWhh5W for ; Tue, 1 Oct 2013 16:30:00 -0300 (ART) Received: from [192.169.100.54] (unknown [192.169.100.54]) by mail.pasteleros.org.ar (Postfix) with ESMTP id 9233C229AE for ; Tue, 1 Oct 2013 16:30:00 -0300 (ART) Message-ID: <524B22C7.2010300@pasteleros.org.ar> Date: Tue, 01 Oct 2013 16:30:15 -0300 From: Alejandro Brust Reply-To: alejandrob@pasteleros.org.ar User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130503 Thunderbird/17.0.5 MIME-Version: 1.0 To: pgsql-admin@postgresql.org Subject: Re: PostgreSQL 9.2 - pg_dump out of memory when backuping a database with 300000000 large objects References: <524A90D1.5000109@iqbuzz.ru> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Pg-Spam-Score: -0.9 (/) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-admin Precedence: bulk Sender: pgsql-admin-owner@postgresql.org Did U perform any vacuumdb / reindexdb before the Pg_dump? El 01/10/2013 09:49, Magnus Hagander escribió: > On Tue, Oct 1, 2013 at 11:07 AM, Sergey Klochkov wrote: >> Hello All, >> >> While trying to backup a database of relatively modest size (160 Gb) I ran >> into the following issue: >> >> When I run >> $ pg_dump -f /path/to/mydb.dmp -C -Z 9 mydb >> >> File /path/to/mydb.dmp does not appear (yes, I've checked permissions and so >> on). pg_dump just begins to consume memory until it eats up all avaliable >> RAM (96 Gb total on server, >64 Gb available) and is killed by the oom >> killer. >> >> According to pg_stat_activity, pg_dump runs the following query >> >> SELECT oid, (SELECT rolname FROM pg_catalog.pg_roles WHERE oid = lomowner) >> AS rolname, lomacl FROM pg_largeobject_metadata >> >> until it is killed. >> >> strace shows that pg_dump is constantly reading a large amount of data from >> a UNIX socket. I suspect that it is the result of the above query. >> >> There are >300000000 large objects in the database. Please don't ask me why. >> >> I tried googling on this, and found mentions of pg_dump being killed by oom >> killer, but I failed to find anything related to the huge large objects >> number. >> >> Is there any method of working around this issue? > I think this problem comes from the fact that pg_dump treats each > large object as it's own item. See getBlobs() which allocates a > BlobInfo struct for each LO (and a DumpableObject if there are any, > but that's just one). > > I assume the query (from that file): > SELECT oid, lomacl FROM pg_largeobject_metadata > > returns 300000000 rows, which are then looped over? > > I ran into a similar issue a few years ago with a client using a > 32-bit version of pg_dump, and got it worked around by moving to > 64-bit. Did unfortunately not have time to look at the underlying > issue. > > -- Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin