X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fdird%2Fquery.sql;h=b18f10fd65df9c66b545ae9f74de9bdf56e50c0d;hb=ec7eb240abd60e667d1a26f89df1b064e1b3786d;hp=3b1aff3e0c97f083e3f7b3cedcd45935969250ba;hpb=d788c7298ec0f7da8dc629de2338f0d72a8ad838;p=bacula%2Fbacula diff --git a/bacula/src/dird/query.sql b/bacula/src/dird/query.sql index 3b1aff3e0c..b18f10fd65 100644 --- a/bacula/src/dird/query.sql +++ b/bacula/src/dird/query.sql @@ -1,12 +1,5 @@ -:List Job totals: -SELECT count(*) AS Jobs,sum(JobFiles) AS Files, - sum(JobBytes) AS Bytes,Name AS Job - FROM Job - GROUP BY Name; -SELECT max(JobId) AS Jobs,sum(JobFiles) AS Files,sum(JobBytes) As Bytes - FROM Job; -# 2 -:List up to 20 places where a File is saved regardless of the directory: +# 1 +:List up to 20 places where a File is saved regardless of the directory *Enter Filename (no path): SELECT DISTINCT Job.JobId as JobId, Client.Name as Client, Path.Path,Filename.Name,StartTime,Level,JobFiles,JobBytes @@ -15,8 +8,8 @@ SELECT DISTINCT Job.JobId as JobId, Client.Name as Client, AND Path.PathId=File.PathId AND Filename.FilenameId=File.FilenameId AND Filename.Name='%1' ORDER BY Job.StartTime LIMIT 20; -# 3 -:List where the most recent copies of a file are saved: +# 2 +:List where the most recent copies of a file are saved *Enter path with trailing slash: *Enter filename: *Enter Client name: @@ -32,8 +25,8 @@ SELECT DISTINCT Job.JobId,StartTime AS JobStartTime,VolumeName,Client.Name AS Cl AND JobMedia.MediaId=Media.MediaId AND Client.ClientId=Job.ClientId ORDER BY Job.StartTime DESC LIMIT 5; -# 4 -:List last 20 Full Backups for a Client: +# 3 +:List last 20 Full Backups for a Client *Enter Client name: SELECT DISTINCT Job.JobId,Client.Name AS Client,StartTime,JobFiles,JobBytes, JobMedia.StartFile as VolFile,VolumeName @@ -43,7 +36,7 @@ SELECT DISTINCT Job.JobId,Client.Name AS Client,StartTime,JobFiles,JobBytes, AND Level='F' AND JobStatus='T' AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId ORDER BY Job.StartTime DESC LIMIT 20; -# 5 +# 4 :List all backups for a Client after a specified time *Enter Client Name: *Enter time in YYYY-MM-DD HH:MM:SS format: @@ -55,7 +48,7 @@ SELECT DISTINCT Job.JobId,Client.Name as Client,Level,StartTime,JobFiles,JobByte AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId AND Job.StartTime >= '%2' ORDER BY Job.StartTime; -# 6 +# 5 :List all backups for a Client *Enter Client Name: SELECT DISTINCT Job.JobId as JobId,Client.Name as Client, @@ -63,27 +56,27 @@ SELECT DISTINCT Job.JobId as JobId,Client.Name as Client, JobFiles,JobBytes,VolumeName FROM Client,Job,JobMedia,Media,FileSet WHERE Client.Name='%1' - AND Client.ClientId=Job.ClientId - AND JobStatus='T' AND Job.FileSetId=FileSet.FileSetId + AND Client.ClientId=Job.ClientId AND Job.Type='B' + AND Job.JobStatus='T' AND Job.FileSetId=FileSet.FileSetId AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId ORDER BY Job.StartTime; -# 7 -:List Volume Attributes for a selected Volume: +# 6 +:List Volume Attributes for a selected Volume *Enter Volume name: SELECT Slot,MaxVolBytes,VolCapacityBytes,VolStatus,Recycle,VolRetention, VolUseDuration,MaxVolJobs,MaxVolFiles FROM Media WHERE VolumeName='%1'; -# 8 -:List Volumes used by selected JobId: +# 7 +:List Volumes used by selected JobId *Enter JobId: SELECT DISTINCT Job.JobId,VolumeName FROM Job,JobMedia,Media WHERE Job.JobId=%1 AND Job.JobId=JobMedia.JobId AND JobMedia.MediaId=Media.MediaId; -# 9 -:List Volumes to Restore All Files: +# 8 +:List Volumes to Restore All Files *Enter Client Name: !DROP TABLE temp; !DROP TABLE temp2; @@ -132,32 +125,32 @@ INSERT INTO temp2 SELECT DISTINCT Job.JobId,Job.StartTime,Media.VolumeName, SELECT DISTINCT VolumeName from temp2; !DROP TABLE temp; !DROP TABLE temp2; -# 10 -:List Pool Attributes for a selected Pool: +# 9 +:List Pool Attributes for a selected Pool *Enter Pool name: SELECT Recycle,VolRetention,VolUseDuration,MaxVolJobs,MaxVolFiles,MaxVolBytes FROM Pool WHERE Name='%1'; -# 11 -:List total files/bytes by Job: +# 10 +:List total files/bytes by Job SELECT count(*) AS Jobs,sum(JobFiles) AS Files,sum(JobBytes) AS Bytes,Name AS Job FROM Job GROUP by Name; -# 12 -:List total files/bytes by Volume: +# 11 +:List total files/bytes by Volume SELECT count(*) AS Jobs,sum(JobFiles) AS Files,sum(JobBytes) AS Bytes,VolumeName FROM Job,JobMedia,Media WHERE JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId GROUP by VolumeName; -# 13 -:List Files for a selected JobId: +# 12 +:List Files for a selected JobId *Enter JobId: SELECT Path.Path,Filename.Name FROM File,Filename,Path WHERE File.JobId=%1 AND Filename.FilenameId=File.FilenameId AND Path.PathId=File.PathId ORDER BY Path.Path,Filename.Name; -# 14 -:List Jobs stored in a selected MediaId: +# 13 +:List Jobs stored on a selected MediaId *Enter MediaId: SELECT DISTINCT Job.JobId,Job.Name,Job.StartTime,Job.Type, Job.Level,Job.JobFiles,Job.JobBytes,Job.JobStatus @@ -165,8 +158,8 @@ SELECT DISTINCT Job.JobId,Job.Name,Job.StartTime,Job.Type, WHERE JobMedia.JobId=Job.JobId AND JobMedia.MediaId=%1 ORDER by Job.StartTime; -# 15 -:List Jobs stored for a given Volume name: +# 14 +:List Jobs stored for a given Volume name *Enter Volume name: SELECT DISTINCT Job.JobId as JobId,Job.Name as Name,Job.StartTime as StartTime, Job.Type as Type,Job.Level as Level,Job.JobFiles as Files, @@ -176,17 +169,20 @@ SELECT DISTINCT Job.JobId as JobId,Job.Name as Name,Job.StartTime as StartTime, AND Media.MediaId=JobMedia.MediaId AND JobMedia.JobId=Job.JobId ORDER by Job.StartTime; +# 15 +:List Volumes Bacula thinks are in changer +SELECT MediaId,VolumeName,VolBytes/(1024*1024*1024) AS GB,Storage.Name + AS Storage,Slot,Pool.Name AS Pool,MediaType,VolStatus + FROM Media,Pool,Storage + WHERE Media.PoolId=Pool.PoolId + AND Slot>0 AND InChanger=1 + AND Media.StorageId=Storage.StorageId + ORDER BY MediaType ASC, Slot ASC; # 16 -:List File record for given Job and File -*Enter JobId: -*Enter Full path (no filename) with trailing slash: -*Enter Filename: -SELECT File.JobId AS JobId,FileIndex FROM File,Path,Filename - WHERE File.JobId=%1 AND - Path.Path='%2' AND Filename.Name='%3' AND - File.PathId=Path.PathId AND File.FilenameId=Filename.FilenameId; -SELECT JobId,Name,VolSessionId,VolsessionTime,JobFiles FROM Job WHERE JobId=%1; -SELECT JobId,MediaId,FirstIndex,LastIndex,StartFile,EndFile,StartBlock,EndBlock, - VolIndex FROM JobMedia WHERE JobId=%1; -SELECT VolumeName FROM Media,JobMedia WHERE JobMedia.JobId=%1 AND - Media.MediaId=JobMedia.MediaId; +:List Volumes likely to need replacement from age or errors +SELECT VolumeName AS Volume,VolMounts AS Mounts,VolErrors AS Errors, + VolWrites AS Writes,VolStatus AS Status + FROM Media + WHERE (VolErrors>0) OR (VolStatus='Error') OR (VolMounts>50) OR + (VolStatus='Disabled') OR (VolWrites>3999999) + ORDER BY VolStatus ASC, VolErrors,VolMounts,VolumeName DESC;