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