[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bacula-devel] small mysql patch


On Thursday 04 September 2008 20:24:29 Yuri Timofeev wrote:
> Hi
> Some time ago I received a problem - dbcheck does not work with options:

From what I understand, it *does* work, but just slowly.

> 8) Check for orphaned File records
> 9) Check for orphaned Path records
> dbcheck worked 3 days and nothing is done. I stopped dbcheck (ctrl+c)
> and restart MySQL.

It is not correct to say that nothing is done.  It has been working and doing 
its job it may have even been removing orphaned records in this time.

> I explain what I need dbcheck:
> If you do not have enough space on the disk, the bacula (all versions)
> *very* bad handles this  situation.

If you do not have enough disk space on your system, practically every program 
that exists will have problems, and Bacula does nee a lot of storage.

> And this is another big problem. With the shortage of disk space
> bacula could damageв Volumes.
> I saw it many times.

Running dbcheck is not going to resolve a disk shortage problem. It may free 
up space in your catalog, but that space will remain unless you explicitly 
compact your catalog as documented in the manual.

> So I had to check the database Catalog for orphaned File records and
> orphaned Path records.

In my opinion, there are better ways of freeing up space, including compacting 
your database.

> The time by pass and in maillist bacula-users described the same situation:
> [Bacula-users]
> From: Ryan Novosielski <novosirj@xxxxxxxxx>
> Date: 18/08/08 17:18
> Subj: Bacula 2.2.8, dbcheck never completes
> And I and Ryan Novosielski use DBMS MySQL. I empirically determined
> that the need to create an index
> CREATE INDEX idxFJ  ON File (FileId, JobId);
> After that dbcheck works VERY quickly.
> I described the decision [Bacula-users] and [Bacula-devels].
> My proposals were as follows:
> *** include an appropriate comment in the file
> src/cats/make_mysql_tables.in after rows
> (They already have a similar comment.)
> I received a reply - no.

I don't see that there was any need for a reply.  You know the solution for 
you.  Create the index, or write a script that creates it, runs dbcheck and 
then removes it.

As we previously explained, items such as indexes are up to the user to manage 
in general.  If someone submits a patch to dbcheck that improves it and makes 
it automatic, all the better.

> *** Describe the problem and solution in the documentation, for
> example, in section Troubleshooting.
> At this suggestion, I also did not receive the normal response.
> *** I studied the source code dbcheck.c and concluded that there can
> not insert the code, which will depend on the particular DBMS (in this
> case - MySQL).
> Understand ?


> Conclusion: there is a problem, but to eliminate it, no one will be?
> Let the problem exists and further? Or how?

This is an Open Source program.  You know your solution -- create an index. 

Most of the users of Bacula are hard working sysadmins with many of their own 
priorities. They are not there to actively work on Bacula but do help users 
find solutions to problems.  

Some of us like myself work full time for *free* on projects that the users 
have voted to be the most important.  Most like myself are generally totally 
overloaded.  We are not complaining, but for programs such as dbcheck that 
are not at all critical and should not be needed to run more than once a 
year, we can only offer advice, which is what we have done.  

At least it is free and you have the source code, and you have received a good 
deal of feedback.

Best regards,


> Thanks.
> 2008/9/3 Kern Sibbald <kern@xxxxxxxxxxx>:
> > On Wednesday 03 September 2008 08:22:31 Yuri Timofeev wrote:
> >> Hi
> >>
> >> 2008/8/31 Eric Bollengier <eric@xxxxxxxxxxxxxxxx>:
> >> > If you want to use new indexes with dbcheck, you can modify dbcheck.c
> >> > in this way :
> >> >  - ask to the user if he wants to add them (think about disk space)
> >> >  - add them + run analyse
> >> >  - run the cleanup operation
> >> >  - remove them
> >> >
> >> > FYI, postgresql can use composite indexes, so it will require less
> >> > indexes than mysql.
> >>
> >> It seems the problem appears only when working with MYSQL.
> >>
> >> I made a small program in order to make temporary index
> >> CREATE INDEX idxFJ  ON File (FileId, JobId);
> >> and then removes him.
> >>
> >> Now I little understand a  Bacula API. And there is one problem:
> >> my source code depends on the DBMS (MySQL).
> >> And I still do not know how it can be inserted in dbcheck.c
> >>
> >>
> >> If I write (in dbcheck.c) as follows:
> >>
> >> # ifdef HAVE_MYSQL
> >> / * My code uses bacula api * /
> >> # endif
> >>
> >> So it would be wrong, imho, or is this possible?
> >> Can you suggest any solution?
> >
> > Please be specific about the exact MySQL dependencies.

This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
Bacula-devel mailing list

This mailing list archive is a service of Copilotco.