X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fdird%2Fquery.sql;h=1ab1170a2615568da7410cf73c651597bbb9de2f;hb=38a5a6ba3f01d059e57df50f81f76c3b049b4170;hp=9495f2c1f44683abd280f7dd4d9ef4a9c486e341;hpb=3a0d7d1ee99ae3750af1f9fa63c3b7e5cadd879d;p=bacula%2Fbacula diff --git a/bacula/src/dird/query.sql b/bacula/src/dird/query.sql index 9495f2c1f4..1ab1170a26 100644 --- a/bacula/src/dird/query.sql +++ b/bacula/src/dird/query.sql @@ -12,7 +12,9 @@ SELECT Job.JobId as JobId, Client.Name as Client, FROM Client,Job,File,Filename,Path WHERE Client.ClientId=Job.ClientId AND JobStatus='T' AND Job.JobId=File.JobId AND Path.PathId=File.PathId AND Filename.FilenameId=File.FilenameId - AND Filename.Name='%1' ORDER BY Job.StartTime LIMIT 20; + AND Filename.Name='%1' + GROUP BY Job.JobId + ORDER BY Job.StartTime LIMIT 20; # 3 :List where the most recent copies of a file are saved: *Enter path with trailing slash: @@ -29,11 +31,12 @@ SELECT Job.JobId,StartTime AS JobStartTime,VolumeName,Client.Name AS ClientName AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId AND Client.ClientId=Job.ClientId + GROUP BY Job.JobId ORDER BY Job.StartTime DESC LIMIT 5; # 4 :List last 20 Full Backups for a Client: *Enter Client name: -Select Job.JobId,Client.Name as Client,StartTime,JobFiles,JobBytes, +SELECT DISTINCT Job.JobId,Client.Name AS Client,StartTime,JobFiles,JobBytes, JobMedia.StartFile as VolFile,VolumeName FROM Client,Job,JobMedia,Media WHERE Client.Name='%1' @@ -45,25 +48,23 @@ JobMedia.StartFile as VolFile,VolumeName :List all backups for a Client after a specified time *Enter Client Name: *Enter time in YYYY-MM-DD HH:MM:SS format: -Select Job.JobId,Client.Name as Client,Level,StartTime,JobFiles,JobBytes,VolumeName +SELECT DISTINCT Job.JobId,Client.Name as Client,Level,StartTime,JobFiles,JobBytes,VolumeName FROM Client,Job,JobMedia,Media WHERE Client.Name='%1' AND Client.ClientId=Job.ClientId AND JobStatus='T' AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId AND Job.StartTime >= '%2' - GROUP BY Job.JobId ORDER BY Job.StartTime; # 6 :List all backups for a Client *Enter Client Name: -Select Job.JobId,Client.Name as Client,Level,StartTime,JobFiles,JobBytes,VolumeName +SELECT DISTINCT Job.JobId,Client.Name as Client,Level,StartTime,JobFiles,JobBytes,VolumeName FROM Client,Job,JobMedia,Media WHERE Client.Name='%1' AND Client.ClientId=Job.ClientId AND JobStatus='T' AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId - GROUP BY Job.JobId ORDER BY Job.StartTime; # 7 :List Volume Attributes for a selected Volume: @@ -71,11 +72,11 @@ Select Job.JobId,Client.Name as Client,Level,StartTime,JobFiles,JobBytes,VolumeN SELECT Slot,MaxVolBytes,VolCapacityBytes,VolStatus,Recycle,VolRetention, VolUseDuration,MaxVolJobs,MaxVolFiles FROM Media - WHERE Volumename='%1'; + WHERE VolumeName='%1'; # 8 :List Volumes used by selected JobId: *Enter JobId: -SELECT Job.JobId,VolumeName +SELECT DISTINCT Job.JobId,VolumeName FROM Job,JobMedia,Media WHERE Job.JobId=%1 AND Job.JobId=JobMedia.JobId @@ -85,22 +86,22 @@ SELECT Job.JobId,VolumeName *Enter Client Name: !DROP TABLE temp; !DROP TABLE temp2; -CREATE TABLE temp (JobId INTEGER UNSIGNED NOT NULL, - JobTDate BIGINT UNSIGNED, - ClientId INTEGER UNSIGNED, +CREATE TABLE temp (JobId BIGINT NOT NULL, + JobTDate BIGINT, + ClientId BIGINT, Level CHAR, StartTime TEXT, VolumeName TEXT, - StartFile INTEGER UNSIGNED, - VolSessionId INTEGER UNSIGNED, - VolSessionTime INTEGER UNSIGNED); -CREATE TABLE temp2 (JobId INTEGER UNSIGNED NOT NULL, + StartFile BIGINT, + VolSessionId BIGINT, + VolSessionTime BIGINT ); +CREATE TABLE temp2 (JobId BIGINT NOT NULL, StartTime TEXT, VolumeName TEXT, Level CHAR, - StartFile INTEGER UNSIGNED, - VolSessionId INTEGER UNSIGNED, - VolSessionTime INTEGER UNSIGNED); + StartFile BIGINT, + VolSessionId BIGINT, + VolSessionTime BIGINT); # Select last Full save INSERT INTO temp SELECT Job.JobId,JobTDate,Job.ClientId,Job.Level, StartTime,VolumeName,JobMedia.StartFile,VolSessionId,VolSessionTime @@ -118,17 +119,16 @@ INSERT INTO temp2 SELECT Job.JobId,Job.StartTime,Media.VolumeName,Job.Level, AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId; # Now add subsequent incrementals -INSERT INTO temp2 SELECT Job.JobId,Job.StartTime,Media.VolumeName, +INSERT INTO temp2 SELECT DISTINCT Job.JobId,Job.StartTime,Media.VolumeName, Job.Level,JobMedia.StartFile,Job.VolSessionId,Job.VolSessionTime FROM Job,temp,JobMedia,Media WHERE Job.JobTDate>temp.JobTDate AND Job.ClientId=temp.ClientId AND Job.Level IN ('I','D') AND JobStatus='T' AND JobMedia.JobId=Job.JobId - AND JobMedia.MediaId=Media.MediaId - GROUP BY Job.JobId; + AND JobMedia.MediaId=Media.MediaId; # list results -SELECT * from temp2; +SELECT DISTINCT VolumeName from temp2; !DROP TABLE temp; !DROP TABLE temp2; # 10 @@ -161,11 +161,20 @@ SELECT Path.Path,Filename.Name FROM File, # 14 :List Jobs stored in a selected MediaId: *Enter MediaId: -SELECT Job.JobId,Job.Name,Job.StartTime,Job.Type, +SELECT DISTINCT Job.JobId,Job.Name,Job.StartTime,Job.Type, Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus FROM JobMedia,Job - WHERE JobMedia.JobId = Job.JobId - AND JobMedia.MediaId = %1; -SELECT MediaId,VolumeName,VolStatus,VolBytes,VolFiles, - VolRetention,Recycle,Slot,MediaType,LastWritten - FROM Media WHERE MediaId = %1; + WHERE JobMedia.JobId=Job.JobId + AND JobMedia.MediaId=%1 + ORDER by Job.StartTime; +# 15 +:List Jobs stored for a given Volume name: +*Enter Volume name: +SELECT Job.JobId as JobId,Job.Name as Name,Job.StartTime as StartTime, + Job.Type as Type,Job.Level as Level,Job.JobFiles as Files, + Job.JobBytes as Bytes,Job.JobStatus as Status + FROM Media,JobMedia,Job + WHERE Media.VolumeName='%1' + AND Media.MediaId=JobMedia.MediaId + AND JobMedia.JobId=Job.JobId + GROUP BY Job.JobId ORDER by Job.StartTime;