]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/dird/query.sql
Misc bug fixes
[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   GROUP BY Job.JobId
56   ORDER BY Job.StartTime;
57 # 6
58 :List all backups for a Client
59 *Enter Client Name:
60 Select Job.JobId,Client.Name as Client,Level,StartTime,JobFiles,JobBytes,VolumeName
61   FROM Client,Job,JobMedia,Media
62   WHERE Client.Name='%1'
63   AND Client.ClientId=Job.ClientId
64   AND JobStatus='T'
65   AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId
66   GROUP BY Job.JobId
67   ORDER BY Job.StartTime;
68 # 7
69 :List Volume Attributes for a selected Volume:
70 *Enter Volume name:
71 SELECT Slot,MaxVolBytes,VolCapacityBytes,VolStatus,Recycle,VolRetention,
72  VolUseDuration,MaxVolJobs,MaxVolFiles
73  FROM Media   
74  WHERE Volumename='%1';
75 # 8
76 :List Volumes used by selected JobId:
77 *Enter JobId:
78 SELECT Job.JobId,VolumeName 
79  FROM Job,JobMedia,Media 
80  WHERE Job.JobId=%1 
81  AND Job.JobId=JobMedia.JobId 
82  AND JobMedia.MediaId=Media.MediaId;
83 # 9
84 :List Volumes to Restore All Files:
85 *Enter Client Name:
86 !DROP TABLE temp;
87 !DROP TABLE temp2;
88 CREATE TABLE temp (JobId INTEGER UNSIGNED NOT NULL,
89  JobTDate BIGINT UNSIGNED,
90  ClientId INTEGER UNSIGNED,
91  Level CHAR,
92  StartTime TEXT,
93  VolumeName TEXT,
94  StartFile INTEGER UNSIGNED, 
95  VolSessionId INTEGER UNSIGNED,
96  VolSessionTime INTEGER UNSIGNED);
97 CREATE TABLE temp2 (JobId INTEGER UNSIGNED NOT NULL,
98  StartTime TEXT,
99  VolumeName TEXT,
100  Level CHAR,
101  StartFile INTEGER UNSIGNED, 
102  VolSessionId INTEGER UNSIGNED,
103  VolSessionTime INTEGER UNSIGNED);
104 # Select last Full save
105 INSERT INTO temp SELECT Job.JobId,JobTDate,Job.ClientId,Job.Level,
106    StartTime,VolumeName,JobMedia.StartFile,VolSessionId,VolSessionTime
107  FROM Client,Job,JobMedia,Media WHERE Client.Name='%1'
108  AND Client.ClientId=Job.ClientId
109  AND Level='F' AND JobStatus='T'
110  AND JobMedia.JobId=Job.JobId 
111  AND JobMedia.MediaId=Media.MediaId
112  ORDER BY Job.JobTDate DESC LIMIT 1;
113 # Copy into temp 2 getting all volumes of Full save
114 INSERT INTO temp2 SELECT Job.JobId,Job.StartTime,Media.VolumeName,Job.Level,
115    JobMedia.StartFile,Job.VolSessionId,Job.VolSessionTime
116  FROM temp,Job,JobMedia,Media WHERE temp.JobId=Job.JobId
117  AND Job.Level='F' AND Job.JobStatus='T'
118  AND JobMedia.JobId=Job.JobId
119  AND JobMedia.MediaId=Media.MediaId;
120 # Now add subsequent incrementals
121 INSERT INTO temp2 SELECT Job.JobId,Job.StartTime,Media.VolumeName,
122    Job.Level,JobMedia.StartFile,Job.VolSessionId,Job.VolSessionTime
123  FROM Job,temp,JobMedia,Media
124  WHERE Job.JobTDate>temp.JobTDate 
125  AND Job.ClientId=temp.ClientId
126  AND Job.Level IN ('I','D') AND JobStatus='T'
127  AND JobMedia.JobId=Job.JobId 
128  AND JobMedia.MediaId=Media.MediaId
129  GROUP BY Job.JobId;
130 # list results
131 SELECT DISTINCT VolumeName from temp2;
132 !DROP TABLE temp;
133 !DROP TABLE temp2;
134 # 10
135 :List Pool Attributes for a selected Pool:
136 *Enter Pool name:
137 SELECT Recycle,VolRetention,VolUseDuration,MaxVolJobs,MaxVolFiles,MaxVolBytes
138  FROM Pool
139  WHERE Name='%1';
140 # 11
141 :List total files/bytes by Job:
142 SELECT count(*) AS Jobs, sum(JobFiles) AS Files,
143  sum(JobBytes) AS Bytes, Name AS Job
144  FROM Job GROUP by Name
145 # 12
146 :List total files/bytes by Volume:
147 SELECT count(*) AS Jobs, sum(JobFiles) AS Files,
148  sum(JobBytes) AS Bytes, VolumeName
149  FROM Job,JobMedia,Media
150  WHERE JobMedia.JobId=Job.JobId
151  AND JobMedia.MediaId=Media.MediaId
152  GROUP by VolumeName;  
153 # 13
154 :List Files for a selected JobId:
155 *Enter JobId:
156 SELECT Path.Path,Filename.Name FROM File,
157  Filename,Path WHERE File.JobId=%1 
158  AND Filename.FilenameId=File.FilenameId 
159  AND Path.PathId=File.PathId ORDER BY
160  Path.Path,Filename.Name;
161 # 14
162 :List Jobs stored in a selected MediaId:
163 *Enter MediaId:
164 SELECT Job.JobId,Job.Name,Job.StartTime,Job.Type,
165  Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus
166   FROM JobMedia,Job
167   WHERE JobMedia.JobId = Job.JobId
168   AND JobMedia.MediaId = %1;
169 SELECT MediaId,VolumeName,VolStatus,VolBytes,VolFiles,
170  VolRetention,Recycle,Slot,MediaType,LastWritten
171  FROM Media WHERE MediaId = %1;