Moving Bacula Volumes from one Storage to Another

A few weeks ago, I moved some Bacula Volumes from one Storage Daemon to another. In fact, I was decommissioning the old bacula-sd and creating a new one. I copied all the Volumes over. Backups have been running smoothly ever since.

However.

Today I tried a restore. It failed. Without any useful diagnostic information.

Here is what I have:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
04-Aug 15:23 bacula-dir JobId 138030: Start Restore Job RestoreFiles.2013-08-04_15.23.08_20
04-Aug 15:23 bacula-dir JobId 138030: Error: Bacula bacula-dir 5.2.12 (12Sep12):
 Build OS:               amd64-portbld-freebsd9.1 freebsd 9.1-RELEASE
 JobId:                  138030
 Job:                    RestoreFiles.2013-08-04_15.23.08_20
 Restore Client:         crey-fd
 Start time:             04-Aug-2013 15:23:11
 End time:               04-Aug-2013 15:23:11
 Files Expected:         1
 Files Restored:         0
 Bytes Restored:         0
 Rate:                   0.0 KB/s
 FD Errors:              0
 FD termination status: 
 SD termination status: 
 Termination:            *** Restore Error ***
 
04-Aug 15:23 bacula-dir JobId 138030: Error: Bacula bacula-dir 5.2.12 (12Sep12):
 Build OS:               amd64-portbld-freebsd9.1 freebsd 9.1-RELEASE
 JobId:                  138030
 Job:                    RestoreFiles.2013-08-04_15.23.08_20
 Restore Client:         crey-fd
 Start time:             04-Aug-2013 15:23:11
 End time:               04-Aug-2013 15:23:11
 Files Expected:         1
 Files Restored:         0
 Bytes Restored:         0
 Rate:                   0.0 KB/s
 FD Errors:              1
 FD termination status: 
 SD termination status: 
 Termination:            *** Restore Error ***

After thinking for a while, I started to wonder if this was a database issue. This was quickly confirmed. Here is the query I ran:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bacula=#   SELECT S.storageid,
bacula-#          S.name,
bacula-#          count(S.storageid)
bacula-#     FROM media   M,
bacula-#          storage S
bacula-#    WHERE M.storageid = S.storageid
bacula-# GROUP BY S.storageid, S.name
bacula-# ORDER BY S.name;
 storageid |        name         | count
-----------+---------------------+-------
        25 | CreyFile            |    57
         3 | DLT                 |     1
         8 | DigitalTapeLibrary  |   221
         9 | MegaFile            |  2045
        24 | OverlandTapeLibrary |    59
(5 rows)
 
bacula=#

I can see the problem. It’s MegaFile. That is the old storage device. CreyFile is the new one. I need to run a database update, after first taking a backup.

[dan@slocum:~] $ pg_dump bacula > bacula.sql
[dan@slocum:~] $ psql bacula
psql (9.2.4)
Type "help" for help.

bacula=# begin;
BEGIN
bacula=# update media set storageid = 25 where storageid = 9;
UPDATE 2045
bacula=# commit;
COMMIT
bacula=# 

Now the restore works!

Website Pin Facebook
Twitter Myspace Friendfeed Technorati del.icio.us Digg Google StumbleUpon Premium Responsive

Leave a Comment