Bacula-users

Re: [Bacula-users] Recreate boostrap files for jobs from the output of `bls -j`

2017-03-22 05:32:21
Subject: Re: [Bacula-users] Recreate boostrap files for jobs from the output of `bls -j`
From: Andreas Nastke <nastke AT gdp-group DOT com>
To: Konstantin Khomoutov <flatworm AT users.sourceforge DOT net>
Date: Wed, 22 Mar 2017 10:31:16 +0100
how about archiving the 'tiny' items into larger tar- or zip-files
on a regular basis (say every 15 minutes) and then only backup the
archives.


Konstantin Khomoutov schrieb:
> Hi!
> 
> I have a somewhat unusual Bacula setup as we're backing call records
> produced by a call-center software -- so the files are tiny in size,
> there is very large number of them produced daily, they are all unique
> and we have to keep them for several years as required by the local
> law.
> 
> Due to the uniqueness + tiny size + large quantities property of these
> data, we have decided to keep only the information on the last few
> backup session in the database to keep its size manageable, and resort
> to "painful" restoration of old files -- for which job records are
> expired by the volumes are still there -- using `bextract`.
> 
> To do restores using `bextract` we have lists of files backed during
> each backup session saved in flat files, and we also have Bacula
> writing bootstrap file for each backup session.  So the restoration
> of old files basically rolls like this:
> 
> 1) Know the date of the files to be restored.
> 2) Find what backup session backed them up.
> 3) Grab the matching bootstrap file.
> 4) Use `bextract -b boostrap.bsr -V ... /output/dir`.
> 
> The problem is that as it turned out, Bacula silently wasn't generating
> bootstrap files for our backup jobs despite having
> 
>   Write bootstrap = "/path/to/bootstrap/files/bsr-%j"
> 
> directive.  Okay, that's for another question.
> 
> So when we need to restore an old file, we know (1) and (2) but fail at
> (3).  I learned that `bls -j` is able to dump the list of jobs recorded
> on a given volume.  But what I'd really like to know is how could I
> recreate bootstrap files from the output of `bls -j` run on old volumes?
> 
> Programming the solution is not the problem but I'd like to know how do
> I properly form the contents for such bootstrap files given the records
> I'd parse from the output of `bls -j`.
> The problem I have with interpreting them is that `bls -j` gives
> me out two pairs of file+block numbers identifying each backup session.
> That appears to be neatly covering the range of data occupied by a
> single backup job run but how do I properly put VolFile and VolBlock
> ranges if a job's data crosses the boundary of a file?
> 
> For instance, here's a fragment from the real output for one of my
> volumes (elided a bit for terseness):
> 
> Begin Job Session Record: File:blk=338:1 SessId=142 \
>    SessTime=1427996423 JobId=5007
>   Job=call-recs.2015-05-12_14.00.00_41 ...
> End Job Session Record: File:blk=339:10868 SessId=142 \
>    SessTime=1427996423 JobId=5007
>   Date=12-May-2015 14:44:22 Level=F Type=B ...
> 
> Here, the job starts at 338:1 and ends at 339:10868, how do I write out
> the bootstrap file's data to cover that whole range in it?
>>>From [1], it appears that I could use
> 
>   VolFile=338-339
> 
> to cover the files but the VolBlock spec appears to pertain to a single
> VolFile.  I thought of using multiple VolFile + VolBlock pairs but
> that would require me to use an open range for the VolBlock of the
> first pair, something like
> 
>   VolFile=338
>   VolBlock=1-
>   VolFile=339
>   VolBlock=1-10868
> 
> (and by the way, are blocks numbered from 0 or 1?)
> 
> Is there a solution for my case?
> Or should I maybe look for some other data from the output of `bls -j`?
> 
> FWIW, for these backups, there's always a single client backing up to
> that tape at any given time, so the jobs do not have their data
> intermixed on the tape.
> 
> 1. http://www.bacula.org/5.1.x-manuals/de/main/main/Bootstrap_File.html
> 
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Bacula-users mailing list
> Bacula-users AT lists.sourceforge DOT net
> https://lists.sourceforge.net/lists/listinfo/bacula-users

-- 
Mit besten Grüßen / Kind Regards

Andreas Nastke
IT System Management

g/d/p Markt- und Sozialforschung GmbH
Ein Unternehmen der Forschungsgruppe g/d/p
Richardstr. 18
D-22081 Hamburg
Fon: +49 (0)40 / 29876-117
Fax: +49 (0)40 / 29876-127
nastke AT gdp-group DOT com
www.gdp-group.com

Sitz der Gesellschaft ist Hamburg, Handelsregister Hamburg, HRB 40482
Geschäftsführer: Christa Braaß, Volker Rohweder

-----------------------------------------------------------------------
This e-mail may contain confidential and/or privileged information.  If
you are not the intended recipient please notify the sender and  delete
this e-mail from your whole system. Any unauthorised copying, disclosure
or distribution of the material in this e-mail is strictly forbidden.
-----------------------------------------------------------------------

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users