LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Server (https://www.linuxquestions.org/questions/linux-server-73/)
-   -   Bacula error message:Could not stat "/var/lib/bacula/bacula.sql": ERR=No such file or directory (https://www.linuxquestions.org/questions/linux-server-73/bacula-error-message-could-not-stat-var-lib-bacula-bacula-sql-err%3Dno-such-file-or-directory-4175484258/)

Learnix 11-11-2013 05:10 PM

Bacula error message:Could not stat "/var/lib/bacula/bacula.sql": ERR=No such file or directory
 
I am using Debian Wheezy (stable) with bacula 5.2.6 and Postgresql 9.1

-I Cannot Make the Catalog backup to work_
I work so many hours on this but now I am turning in circles.
I get the following error when I try to run a backup of the catalog

Could not stat "/var/lib/bacula/bacula.sql": ERR=No such file or directory


The file exists it creates it because I see it in /var/lib/bacula after the attempt.
I temporarly disabled the Run After sequence so the file won't get erased

Here is my director config:


PHP Code:


# Default Bacula Director Configuration file
#
#  For Bacula release 5.2.6 (21 February 2012) -- debian 7.0
#

Director {                            # define myself
  
Name buserver-dir
  DIRport 
9101                # where we listen for UA connections
    
  
QueryFile "/etc/bacula/scripts/query.sql"
  
WorkingDirectory "/var/lib/bacula"
  
PidDirectory "/var/run/bacula"
  
Maximum Concurrent Jobs 1
  Password 
"some password"         # Console password
  
Statistics Retention 1 years
  Messages 
Daemon
 
# DirAddress = 192.168.12.101
    
}

JobDefs {
  
Name "Computer1Job"
  
Type Backup
  Level 
Incremental
  Client 
Computer1-fd
  FileSet 
"Computer1Set"
  
Schedule "WeeklyCycle"
  
Storage Computer1Device
  Messages 
Standard
  Pool 
File
  Priority 
10
  Write Bootstrap 
"/var/lib/bacula/%c.bsr"
}


#
# Define the main nightly save backup job
#   By default, this job will back up to disk in /nonexistant/path/to/file/archive/dir
Job {
  
Name "Computer1Daily"
  
JobDefs "Computer1Job"
  
Accurate yes
}

#Job {
#  Name = "BackupClient2"
#  Client = buserver2-fd
#  JobDefs = "DefaultJob"
#}

# Backup the catalog database (after the nightly save)
Job {
  
Name "BackupCatalog"
  
JobDefs Computer1Job
                                                 
#JobDefs = "DefaultJob"
  
Level Full
  FileSet 
"Catalog"
  
Schedule "WeeklyCycleAfterBackup"
  
# This creates an ASCII copy of the catalog
  # Arguments to make_catalog_backup.pl are:
  #  make_catalog_backup.pl <catalog-name>

  
RunBeforeJob "/etc/bacula/scripts/make_catalog_backup bacula bacula mydbpassword"
  
# This deletes the copy of the catalog
  #                         RunAfterJob /etc/bacula/scripts/delete_catalog_backup
  
Write Bootstrap "/var/lib/bacula/%n.bsr"
  
Priority 11                   # run after main backup
}

#
# Standard Restore template, to be changed by Console program
#  Only one such job is needed for all Jobs/Clients/Storage ...
#
Job {
  
Name "RestoreFiles"
  
Type Restore
  Client 
Computer1-fd
  FileSet
"Computer1Set"                  
  
Storage Computer1Device    
  Pool 
File
  Replace 
Always
  Messages 
Standard
  Where 
= /var/lib/bacula/bacula-Restores
}


# List of files to be backed up
FileSet {
  
Name "Computer1Set"
  
Include {
    
Options {
    
Compression=GZIP6
    signature
=SHA1
    Sparse 
no
    
}
#    
#  Put your list of files here, preceded by 'File =', one per line
#    or include an external list with:
#
#    File = <file-name
#
#  Note: / backs up everything on the root partition.
#    if you have other partitions such as /usr or /home
#    you will probably want to add them too.
#
#  By default this is defined to point to the Bacula binary
#    directory to give a reasonable FileSet to backup to
#    disk storage during initial testing.
#
    
File = /
    
File = /boot    
  
}

#
# If you backup the root directory, the following two excluded
#   files can be useful
#
  
Exclude {
    
File = /var/lib/bacula
    File 
= /dev
    File 
= /run
    File 
= /sys
    File 
= /proc
    File 
= /media
    File 
= /proc
    File 
= /tmp
    File 
= /.journal
    File 
= /.fsck
    File 
= /home/username/.icedove
    File 
= /home/MyUserName/.google
  
}
}

#
# When to do the backups, full backup on first sunday of the month,
#  differential (i.e. incremental since full) every other sunday,
#  and incremental backups other days
Schedule {
  
Name "WeeklyCycle"
  
Run Full 1st sun at 23:05
  Run 
Differential 2nd-5th sun at 23:05
  Run 
Incremental mon-sat at 23:05

        
}
# This schedule does the catalog. It starts after the WeeklyCycle
Schedule {
  
Name "WeeklyCycleAfterBackup"
  
Run Full sun-sat at 23:30
     
}

# This is the backup of the catalog
FileSet {
  
Name "Catalog"
  
Include {
    
Options     {
      
signature MD5
                 
}
    
File "/var/lib/bacula/bacula.sql"
          
}
        }

# Client (File Services) to backup
Client {
  
Name Computer1-fd
  Address 
Computer1
  FDPort 
9102
  Catalog 
Catalog
  Password 
"some password"            # password for FileDaemon
                                      # Original Default Values 
 # File Retention = 70 days            # 30 days
  
Job Retention 70 days            # six months

  
AutoPrune yes                     # Prune expired Jobs/Files
}

#
# Second Client (File Services) to backup
#  You should change Name, Address, and Password before using
#
#Client {
#  Name = buserver2-fd
#  Address = localhost2
#  FDPort = 9102
#  Catalog = MyCatalog
#  Password = "some password"          # password for FileDaemon 2
#  File Retention = 30 days            # 30 days
#  Job Retention = 6 months            # six months
#  AutoPrune = yes                     # Prune expired Jobs/Files
#}


# Definition of file storage device
Storage {
  
Name Computer1Device
# Do not use "localhost" here    
  
Address buserver              # N.B. Use a fully qualified name here
  
SDPort 9103
  Password 
"some password"  
             
  
Device Computer1Device
  Media Type 
File
}



# Definition of DDS tape storage device
#Storage {
#  Name = DDS-4    
#  Do not use "localhost" here
#  Address = localhost                # N.B. Use a fully qualified name here
#  SDPort = 9103
#  Password = "some password"           # password for Storage daemon
#  Device = DDS-4                      # must be same as Device in Storage daemon
#  Media Type = DDS-4                  # must be same as MediaType in Storage daemon
#  Autochanger = yes                   # enable for autochanger device
#}



# Generic catalog service
Catalog {
  
Name Catalog
# Uncomment the following line if you want the dbi driver
# dbdriver = "dbi:postgresql"; dbaddress = 127.0.0.1; dbport = 5432 
  
dbname "bacula"DB Address ""dbuser "bacula"dbpassword "mydb Password"
  
}

# Reasonable message delivery -- send most everything to email address
#  and to the console
Messages {
  
Name Standard
#
# NOTE! If you send to two email or more email addresses, you will need
#  to replace the %r in the from field (-f part) with a single valid
#  email address in both the mailcommand and the operatorcommand.
#  What this does is, it sets the email address that emails would display
#  in the FROM field, which is by default the same email as they're being
#  sent to.  However, if you send email to more than one address, then
#  you'll have to set the FROM address manually, to a single address. 
#  for example, a 'no-reply@mydomain.com', is better since that tends to
#  tell (most) people that its coming from an automated source.

#
  
mailcommand "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
  
operatorcommand "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
  
mail root all, !skipped            
  operator 
root mount
  console 
all, !skipped, !saved
#
# WARNING! the following will create a file that you must cycle from
#          time to time as it will grow indefinitely. However, it will
#          also keep all your messages if they scroll off the console.
#
  
append "/var/log/bacula/bacula.log" all, !skipped
  catalog 
all
}


#
# Message delivery for daemon messages (no job).
Messages {
  
Name Daemon
  mailcommand 
"/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
  
mail root all, !skipped            
  console 
all, !skipped, !saved
  append 
"/var/log/bacula/bacula.log" all, !skipped
}

# Default pool definition
Pool {
  
Name = Default
  
Pool Type Backup
  Recycle 
yes                       # Bacula can automatically recycle Volumes
  
AutoPrune yes                     # Prune expired volumes
  
Volume Retention 365 days         # one year
}

# File Pool definition
Pool {
  
Name File
  Pool Type 
Backup
  Maximum Volume Jobs 
2
  Action On Purge 
Truncate
  Recycle 
yes                       # Bacula can automatically recycle Volumes
  
Recycle Oldest Volume yes
  AutoPrune 
yes                     # Prune expired volumes
  
Volume Retention 70 days         # Default was one year
  
Maximum Volume Bytes 0       # Limit Volume size to something reasonable
  
Maximum Volumes 100              # Limit number of Volumes in Pool
  
LabelFormat "Computer1Vol_"
}


# Scratch pool definition
Pool {
  
Name Scratch
  Pool Type 
Backup
}

#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
  
Name buserver-bat
    Password 
"some password" 
        
CommandACL status, .status
}



Console {
  
Name buserver-mon
  Password 
"some password"   
  
CommandACL status, .status
    
}

 
Console {
 
Name Computer1-bat
 Password 
"some password"  
 
CommandACL status, .clients, .jobs, .pools, .storage, .filesets, .messagesrun
 ClientACL 
= *all# you can restrict to a specific host
 
CatalogACL = *all*
 
JobACL = *all*
 
StorageACL = *all*
 
ScheduleACL = *all*
 
PoolACL = *all*
 
FileSetACL = *all*
 } 

I like this software but I found it was hard to make it work ... but after this issue is solved
I know it will work for years without a glitch !

Please, any idea I can try ?

Learnix 11-12-2013 11:37 AM

I caught something
 
I found something important: I see that the statement (last line here is wrong as the JobDefs = Computer1Job references Computer1-fd later on.
Job {
Name = "BackupCatalog"
JobDefs = Computer1Job

...
...

JobDefs {
Name = "Computer1Job"
Type = Backup
Level = Incremental
Client = Computer1-fd
FileSet = "Computer1Set"
Schedule = "WeeklyCycle"
Storage = Computer1Device
Messages = Standard
Pool = File
Priority = 10
Write Bootstrap = "/var/lib/bacula/%c.bsr"
}

Which is pointing to //Computer1/var/lib/bacula/bacula.sql >> Which does not exist

So in my Catalog backup statement I tried to write:

Job {
Name = "BackupCatalog"
Client = MyLocalMachineName # <<< HERE #JobDefs = "DefaultJob"
Level = Full
FileSet = "Catalog"
Schedule = "WeeklyCycleAfterBackup"
# This creates an ASCII copy of the catalog
# Arguments to make_catalog_backup.pl are:
# make_catalog_backup.pl <catalog-name>

RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup bacula bacula mydbpassword"
# This deletes the copy of the catalog
# RunAfterJob /etc/bacula/scripts/delete_catalog_backup
Write Bootstrap = "/var/lib/bacula/%n.bsr"
Priority = 11 # run after main backup
}

This is not accepted by the Director upon startup.

So there I went again I created a file device on that server Let's call it "buserv"
so started the file daemon on the server and re-allign everything so the director will take it as a normal client.
It is then then asking for a catalog for this task -- I don't want this


So my question is changed by this one:

How to have this catalog backed up . What would be the corrections to make in the Director's config?
It is probably very simple but so far I didn't get it.

Thank you in advance !

Learnix 11-18-2013 10:39 AM

Problem solved [SOLVED]
 
I thought there was a built in function in the software so that bacula would recognize the catalog to be any *.sql in /var/lib/bacula
There is no such a thing.

To backup the catalog:
The solution is to configure a local bacula client on the server to do the job.
A good idea is to put full compression using GZIP9 on the "BackupCatalog" job the Catalog is not a gigantic file (Normally few hundred of Megs)
so it will compress in a reasonable amount of time.

Cheers,


All times are GMT -5. The time now is 02:37 AM.