Bacula-users

Re: [Bacula-users] Set more then 3 pools in a backup job

2013-01-28 12:21:56
Subject: Re: [Bacula-users] Set more then 3 pools in a backup job
From: Dan Langille <dan AT langille DOT org>
To: stefano scotti <scottistefano91 AT gmail DOT com>
Date: Mon, 28 Jan 2013 12:18:46 -0500

On Jan 28, 2013, at 11:50 AM, stefano scotti wrote:

2013/1/28 Dan Langille <dan AT langille DOT org>

On Jan 28, 2013, at 11:16 AM, stefano scotti wrote:

2013/1/28 Dan Langille <dan AT langille DOT org>

On Jan 28, 2013, at 10:21 AM, stefano scotti wrote:

>
> Hi everybody,
>
> I've been using Bacula for 1 year, before then i used to write my own scripts.
> I see, and correct me if i am wrong, that bacula allow only a maximum of 3 backup levels:
>
>    Level 0: Full
>    Level 1: Differential
>    Level 2: Incremental
>
> This means a maximum of 3 pools per job.

I consider Pools to be a collection of Volumes with similar attributes.  Stop thinking about levels.  Start thinking about retention.


> Now, if i have to implement this example of recovery schema:
>
>    Every month for a year
>    Every week for 6 months
>    Every day for a month
>    Every 3 hours for 2 days

I think the above corresponds to

>    Every month for a year  FULL
>    Every week for 6 months DIFFERENTIAL
>    Every day for a month  INCREMENTAL
>    Every 3 hours for 2 days INCREMENTAL

With different retention times on each

It sounds like you want four pools

FULL - retain 1 year, scheduled to run monthly
DIFF - retain 6 months, scheduled to run weekly
INCRMONTH - retain 1 month, scheduled to run daily
INCR2DAYS -  retain 2 days, schedule to run every 3 hours

Does that help you?

First, what is your goal in running incrementals every 3 hours?  And then again daily?

> There are 4 different rotation rules and schedules... not three.
> How am i supposed to solve this?
>
> With my own scripts, i would define 4 pools, and a job type for each pool:
>
>   Level 0 Pool      Type:Full
>   Level 1 Pool      Type:Differential
>   Level 2 Pool      Type:Incremental
>   Level 3 Pool      Type:Incremental

We came to the same conclusion, but stop thinking about level.

You should also look at virtual backups.

> Every pool with his own rotation rules which based on the recovery schema, and a job type for each pool.
>
> In my opinion it is wrong to bind the concept of job type and the concept of pool, they are 2 different things.

What do you mean by Job Type here?  Job type is backup, restore, copy/migrate.

> I use a pool to define a group of  volumes and their rotation rules, i specify a job type to define if those volumes will contain an incremental,differential or full backup.
>
> I hope i'm wrong with this and that i wasn't able to find the correct solution which Bacula proposes, if this is the case please help me to throw light on that. \

I'm guessing at the schedule, and using mine as a starting point:

Schedule {
  Name = "WeeklyCycle"
  Run = Level=Full         1st     sun at 5:55
  Run = Level=Differential 2nd-5th sun at 5:55
  Run = Level=Incremental  mon-sat     at 5:55
}

Alter mine to become:

Schedule {
  Name = "WeeklyCycle"
  Run = Level=Full         1st     sun at 5:55
  Run = Level=Differential 2nd-5th sun at 5:55
  Run = Level=Incremental IncrementalPool=MONTH mon-sat     at 5:55
 Run = Level=Incremental IncrementalPool=INCR2DAYS daily at 0, 3, 6, 9, 12, 15, 18, 21
}}

That should give you a starting point.  Sorry it's not more complete.  Others might have better ideas. there…

Thanks Dan,

I really appreciate your help and i think you are right, Pools doesn't define "Levels", but a collection of similar volumes.
Levels are something related to jobs, not to pools, even though a pool contains volumes of the same job level.

You solved my problem, i didn't know that it was possible to specify "IncrementalPool=" in  a "Run" definition, now i know that is possible to have more than 3 pools for a job, so i can have all the "Levels" or better "Retention periods" that i want.

I have only one more question for you:
why do you think that is useless to run incremental every three hours and then again daily?



I think you concluded I thought they were useless because I asked you:
But you didn't answer my question. :)
 

Yes, i deducted it from your question... so maybe i should ask you if you really think that is useless or not.


Noted.  But I wanted to know your goal there….

Keep in mind that EACH incremental you run will be relative to the last backup.  Thus, the incremental that runs daily won't
have stuff that changed since yesterday. Only the stuff that changed since the last incremental 3 hours ago.


My aim is to have daily backups which persist 1 month, and 3-hourly backups which persist only 2 days.
Is there a different solution to achieve that instead of using 2 different pools?

If you answer down here, or at least inline, people can read from top to bottom and follow the discussion.

The issue is, what do you want in each of those two different backups?

I *think* you want in the daily backup: everything which has changed since yesterday.

I *think* you want in the 3 hourly backup: everything which has changed in the past three hours.

I think you are better off without the daily, and just keep all those 3 hour incrementals for 1 month each. The overhead is low.

-- 
Dan Langille - http://langille.org

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users