Bacula-users

Re: [Bacula-users] Bacula + Postgres : copy batch problem

2010-08-03 07:25:54
Subject: Re: [Bacula-users] Bacula + Postgres : copy batch problem
From: Martin Simmons <martin AT lispworks DOT com>
To: bacula-users AT lists.sourceforge DOT net
Date: Tue, 3 Aug 2010 12:23:41 +0100
>>>>> On Tue, 3 Aug 2010 10:15:18 +0100, Rory Campbell-Lange said:
> 
> I'm fairly desperate for some advice on this issue.
> 
> I have 3.4GB free in /var where Postgresql is located. At the end of a
> large backup job (7,643,966 files taking up 7.265TB of space) Postgres
> bails out copying a batch file into the File table due to a mysterious
> "no space left on device" error.
> 
> Questions:
> 1. How should I size my postgresql partition?

I expect 7.6 million records to need at least 800MB when inserted and the
batch tables will need a similar amount during the backup.  It is difficult to
predict what the hash-join temporary file will need because it depends on the
internals of PostgreSQL.

Firstly though I suggest running df frequently during the backup to verify
that the problem really is /var filling up.


> 2. Can I stop this needless after-backup insertion? I tried setting
>    Spool Attributes to NO but it did not work

You need to rebuild Bacula with the --disable-batch-insert option, but it
might run quite slowly.  Setting synchronous_commit = off in postgresql.conf
might help to make it faster.


> 3. Why is Bacula using a batch file at all? Why not simply do a straight
>    insert?

Because 7,643,966 inserts would be much slower.

__Martin


> I'm keen to get this 7TB backup out, but I have to reconfigure Bacula to
> suit. Help much appreciated!
> 
> Rory
> 
> 
> On 02/08/10, Rory Campbell-Lange (rory AT campbell-lange DOT net) wrote:
> > I turned off spooling and set the Spool Attributes directive to no and
> > reran the backup. The backup job completes but the database insert bails
> > out.
> > 
> > clwbackup-dir JobId 8: Fatal error: sql_create.c:894 Fill File table
> > Query failed: INSERT INTO File (FileIndex, JobId, PathId, FilenameId,
> > LStat, MD5)SELECT batch.FileIndex, bat ch.JobId, Path.PathId,
> > Filename.FilenameId,batch.LStat, batch.MD5 FROM batch JOIN Path ON (batc
> > h.Path = Path.Path) JOIN Filename ON (batch.Name = Filename.Name):
> > ERR=ERROR:  could not write to hash-join temporary file: No space left
> > on device
> > 
> > I don't understand why bacula isn't writing to the database
> > continuously. Why is a batch file needed?
> 
> 
> -- 
> Rory Campbell-Lange
> rory AT campbell-lange DOT net
> 
> ------------------------------------------------------------------------------
> The Palm PDK Hot Apps Program offers developers who use the
> Plug-In Development Kit to bring their C/C++ apps to Palm for a share
> of $1 Million in cash or HP Products. Visit us here for more details:
> http://p.sf.net/sfu/dev2dev-palm
> _______________________________________________
> Bacula-users mailing list
> Bacula-users AT lists.sourceforge DOT net
> https://lists.sourceforge.net/lists/listinfo/bacula-users
> 

------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users