]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/dird/query.sql
cleanup query.sql + restructure ua_restore to handle selection of files
[bacula/bacula] / bacula / src / dird / query.sql
1 :List Job totals:
2 SELECT  count(*) AS Jobs, sum(JobFiles) AS Files, 
3  sum(JobBytes) AS Bytes, Name AS Job FROM Job GROUP BY Name;
4 SELECT max(JobId) AS Jobs,sum(JobFiles) AS Files,
5  sum(JobBytes) As Bytes FROM Job;
6 # 2 
7 :List where a File is saved regardless of the directory:
8 *Enter Filename (no path):
9 SELECT Job.JobId as JobId, Client.Name as Client,
10  Path.Path,Filename.Name,
11  StartTime,Level,JobFiles,JobBytes
12  FROM Client,Job,File,Filename,Path WHERE Client.ClientId=Job.ClientId
13  AND JobStatus='T' AND Job.JobId=File.JobId
14  AND Path.PathId=File.PathId AND Filename.FilenameId=File.FilenameId
15  AND Filename.Name='%1' ORDER BY Job.StartTime LIMIT 20;
16 # 3
17 :List where the most recent copies of a file are saved:
18 *Enter path with trailing slash:
19 *Enter filename:
20 *Enter Client name:
21 SELECT Job.JobId,StartTime AS JobStartTime,VolumeName,Client.Name AS ClientName
22  FROM Job,File,Path,Filename,Media,JobMedia,Client
23  WHERE File.JobId=Job.JobId
24  AND Path.Path='%1'
25  AND Filename.Name='%2'
26  AND Client.Name='%3'
27  AND Path.PathId=File.PathId
28  AND Filename.FilenameId=File.FilenameId
29  AND JobMedia.JobId=Job.JobId
30  AND JobMedia.MediaId=Media.MediaId
31  AND Client.ClientId=Job.ClientId
32  ORDER BY Job.StartTime DESC LIMIT 5;
33 # 4
34 :List last 20 Full Backups for a Client:
35 *Enter Client name:
36 Select Job.JobId,Client.Name as Client,StartTime,JobFiles,JobBytes,
37 JobMedia.StartFile as VolFile,VolumeName
38  FROM Client,Job,JobMedia,Media
39  WHERE Client.Name='%1'
40  AND Client.ClientId=Job.ClientId
41  AND Level='F' AND JobStatus='T'
42  AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId
43  ORDER BY Job.StartTime DESC LIMIT 20;
44 # 5
45 :List all backups for a Client after a specified time
46 *Enter Client Name:
47 *Enter time in YYYY-MM-DD HH:MM:SS format:
48 Select Job.JobId,Client.Name as Client,Level,StartTime,JobFiles,JobBytes,VolumeName
49   FROM Client,Job,JobMedia,Media
50   WHERE Client.Name='%1'
51   AND Client.ClientId=Job.ClientId
52   AND JobStatus='T'
53   AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId
54   AND Job.StartTime >= '%2'
55   ORDER BY Job.StartTime;
56 # 6
57 :List all backups for a Client
58 *Enter Client Name:
59 Select Job.JobId,Client.Name as Client,Level,StartTime,JobFiles,JobBytes,VolumeName
60   FROM Client,Job,JobMedia,Media
61   WHERE Client.Name='%1'
62   AND Client.ClientId=Job.ClientId
63   AND JobStatus='T'
64   AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId
65   ORDER BY Job.StartTime;
66 # 7
67 :List Volume Attributes for a selected Volume:
68 *Enter Volume name:
69 SELECT Slot,MaxVolBytes,VolCapacityBytes,VolStatus,Recycle,VolRetention,
70  VolUseDuration,MaxVolJobs,MaxVolFiles
71  FROM Media   
72  WHERE Volumename='%1';
73 # 8
74 :List Volumes used by selected JobId:
75 *Enter JobId:
76 SELECT Job.JobId,VolumeName 
77  FROM Job,JobMedia,Media 
78  WHERE Job.JobId=%1 
79  AND Job.JobId=JobMedia.JobId 
80  AND JobMedia.MediaId=Media.MediaId;
81 # 9
82 :List Volumes to Restore All Files:
83 *Enter Client Name:
84 !DROP TABLE temp;
85 !DROP TABLE temp2;
86 CREATE TABLE temp (JobId INTEGER UNSIGNED NOT NULL,
87  JobTDate BIGINT UNSIGNED,
88  ClientId INTEGER UNSIGNED,
89  Level CHAR,
90  StartTime TEXT,
91  VolumeName TEXT,
92  StartFile INTEGER UNSIGNED, 
93  VolSessionId INTEGER UNSIGNED,
94  VolSessionTime INTEGER UNSIGNED);
95 CREATE TABLE temp2 (JobId INTEGER UNSIGNED NOT NULL,
96  StartTime TEXT,
97  VolumeName TEXT,
98  Level CHAR,
99  StartFile INTEGER UNSIGNED, 
100  VolSessionId INTEGER UNSIGNED,
101  VolSessionTime INTEGER UNSIGNED);
102 # Select last Full save
103 INSERT INTO temp SELECT Job.JobId,JobTDate,Job.ClientId,Job.Level,
104    StartTime,VolumeName,JobMedia.StartFile,VolSessionId,VolSessionTime
105  FROM Client,Job,JobMedia,Media WHERE Client.Name='%1'
106  AND Client.ClientId=Job.ClientId
107  AND Level='F' AND JobStatus='T'
108  AND JobMedia.JobId=Job.JobId 
109  AND JobMedia.MediaId=Media.MediaId
110  ORDER BY Job.JobTDate DESC LIMIT 1;
111 # Copy into temp 2 getting all volumes of Full save
112 INSERT INTO temp2 SELECT Job.JobId,Job.StartTime,Media.VolumeName,Job.Level,
113    JobMedia.StartFile,Job.VolSessionId,Job.VolSessionTime
114  FROM temp,Job,JobMedia,Media WHERE temp.JobId=Job.JobId
115  AND Job.Level='F' AND Job.JobStatus='T'
116  AND JobMedia.JobId=Job.JobId
117  AND JobMedia.MediaId=Media.MediaId;
118 # Now add subsequent incrementals
119 INSERT INTO temp2 SELECT Job.JobId,Job.StartTime,Media.VolumeName,
120    Job.Level,JobMedia.StartFile,Job.VolSessionId,Job.VolSessionTime
121  FROM Job,temp,JobMedia,Media
122  WHERE Job.JobTDate>temp.JobTDate 
123  AND Job.ClientId=temp.ClientId
124  AND Job.Level IN ('I','D') AND JobStatus='T'
125  AND JobMedia.JobId=Job.JobId 
126  AND JobMedia.MediaId=Media.MediaId
127  GROUP BY Job.JobId;
128 # list results
129 SELECT * from temp2;
130 !DROP TABLE temp;
131 !DROP TABLE temp2;
132 # 10
133 :List Pool Attributes for a selected Pool:
134 *Enter Pool name:
135 SELECT Recycle,VolRetention,VolUseDuration,MaxVolJobs,MaxVolFiles,MaxVolBytes
136  FROM Pool
137  WHERE Name='%1';
138 # 11
139 :List total files/bytes by Job:
140 SELECT count(*) AS Jobs, sum(JobFiles) AS Files,
141  sum(JobBytes) AS Bytes, Name AS Job
142  FROM Job GROUP by Name
143 # 12
144 :List total files/bytes by Volume:
145 SELECT count(*) AS Jobs, sum(JobFiles) AS Files,
146  sum(JobBytes) AS Bytes, VolumeName
147  FROM Job,JobMedia,Media
148  WHERE JobMedia.JobId=Job.JobId
149  AND JobMedia.MediaId=Media.MediaId
150  GROUP by VolumeName;  
151 # 13
152 :List Files for a selected JobId:
153 *Enter JobId:
154 SELECT Path.Path,Filename.Name FROM File,
155  Filename,Path WHERE File.JobId=%1 
156  AND Filename.FilenameId=File.FilenameId 
157  AND Path.PathId=File.PathId ORDER BY
158  Path.Path,Filename.Name;