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