Quantcast
Viewing all articles
Browse latest Browse all 5094

OpsCenter common custom reports

Here I will be posting custom reports, that were created by me or other forum members. All correction, improvements and optimizations to code below are highly appreciated.

  • SQL procedure for converting time in seconds to hh:mm:sec format. May be useful for displaying duration in human readable form.
  • *This procedure used in some of my reports, make sure to add it.

  • Audit report deleted and deactivated policies. 
  • Audit report clients removed from policies. 
  • List of all active clients, policies, policy types and backup selections in configuration.
  • Last successful backup for failed jobs, done by M_henriksen, with a little bit of my tuning
  • Generic daily report with 
    • Policy Name
    • Client Name
    • Platform
    • Version
    • Schedule Name
    • Job Scheduled Time
    • Job Start Time
    • Job End Time
    • Job Duration
    • Job Status
    • Files(Selection)
    • Job Size(MB)
    • Status Code
  • Unique failures daily(Parent jobs only child jobs will be omitted) 
  • SQL procedure

    CREATE FUNCTION SecToTime(seconds INT)

    RETURNS CHAR(20)

    AS

    BEGIN

    RETURN (

            (SELECT RIGHT('00' + CAST(CAST(floor(seconds/3600) as NUMERIC(3)) as CHAR(3)), 2)) + ':' +

            (SELECT RIGHT('00' + CAST(CAST(floor(seconds/60) % 60 as NUMERIC(2)) as CHAR(2)), 2)) +':' +

            (SELECT RIGHT('00' + CAST(CAST(seconds % 60 as NUMERIC(2)) as CHAR(2)), 2))

    )

    END

    Example:

    SELECT SecToTime(1000);

    >>00:16:40

    SELECT SecToTime(100000); -- hours will go over 24.

    >>27:46:40

     Audit report deleted and deactivated policies

    SELECT

    domain_MasterServer.networkName as "Master",

    SUBSTR(LIST(audit_Key.value), 0, CHARINDEX(',',LIST(audit_Key.value))) as "Client",

    SUBSTR(LIST(audit_Key.value), CHARINDEX(',',LIST(audit_Key.value))+1, LEN(LIST(audit_Key.value))) as "Policy",

    MAX(UTCBigIntToNomTime(audit_Record.auditTime)) as "Timestamp",

    MAX(audit_UserIdentity.userName) as "User"

    FROM audit_Record, audit_Key, domain_MasterServer, audit_UserIdentity

    WHERE domain_MasterServer.id =  audit_Key.masterServerId

    AND audit_Record.userIdentityId = audit_UserIdentity.id

    AND audit_Record.masterServerId = audit_Key.masterServerId

    AND audit_Record.tieInId = audit_Key.tieInId

    AND audit_Record.recordId = audit_Key.recordId

    AND audit_Record.messageId = 10

    AND DATEDIFF(hour,UTCBigIntToNomTime(audit_Record.auditTime), GETDATE()) <= 48 --- Change time here

    GROUP BY audit_Record.tieInId, domain_MasterServer.networkName

    ORDER BY "Timestamp" DESC

    Audit report clients removed from policies

    SELECT

    domain_MasterServer.networkName as "Master",

    LIST(audit_Key.value) as "Policy",

    LIST((CASE

            WHEN audit_Record.messageId = 2 THEN 'Deactivated'

            WHEN audit_Record.messageId = 5 THEN 'Deleted'

    END)) as "Action",

    LIST(UTCBigIntToNomTime(audit_Record.auditTime)) as "Timestamp",

    LIST(audit_UserIdentity.userName) as "User"

    FROM audit_Record, audit_Key, domain_MasterServer, audit_UserIdentity

    WHERE domain_MasterServer.id = audit_Key.masterServerId

    AND audit_Record.masterServerId = audit_Key.masterServerId

    AND audit_Record.tieInId = audit_Key.tieInId

    AND audit_Record.recordId = audit_Key.recordId

    AND audit_Record.userIdentityId = audit_UserIdentity.id

    AND audit_Record.messageId IN (2 ,5)

    AND DATEDIFF(day,UTCBigIntToNomTime(audit_Record.auditTime), GETDATE()) <= 7 -- Change Time here

    GROUP BY audit_Record.tieInId,domain_MasterServer.networkName

    ORDER BY "Timestamp" DESC

    List of all active clients, policies, policy types and backup selections in configuration

    SELECT

    domain_PolicyClient.clientName as "Client Name",

    domain_PolicyClient.policyName as "Policy Name",

    lookup_PolicyType.name as "Policy Type",

    nb_Policy.fileList as "Backup Selection"

    FROM

    domain_PolicyClient, domain_Client,lookup_PolicyType, domain_Policy, nb_Policy

    WHERE

    AND lookup_PolicyType.id = domain_Policy.type

    AND domain_PolicyClient.clientName = domain_Client.name

    AND domain_PolicyClient.masterServerId = domain_Client.masterServerId

    AND domain_PolicyClient.policyName = domain_Policy.name

    AND domain_PolicyClient.masterServerId = domain_Policy.masterServerId

    AND domain_PolicyClient.policyDomainName = domain_Policy.policyDomainName

    AND domain_PolicyClient.policyVersionNo= domain_Policy.versionNo

    AND domain_Policy.name = nb_Policy.name

    AND domain_Policy.masterServerId = nb_Policy.masterServerId

    AND domain_Policy.versionNo = nb_Policy.versionNo

    AND domain_Policy.policyDomainName = nb_Policy.policyDomainName

    AND domain_Policy.status = 0

    AND domain_Policy.active = 1

    AND lookup_PolicyType.name  LIKE '%DB2%'

    -- domain_Policy.name LIKE '%PR%'

    -- domain_PolicyClient.clientName LIKE '%winprd%'

    ORDER BY domain_PolicyClient.clientName

    Last successful backup for failed jobs f all active clients, policies, policy types and backup selections in configuration

    SELECT DISTINCT

    B.friendlyName as 'Master Server',

    A.clientName as 'Client Name',

    A.policyName as 'Policy Name',

    LIST(A.statuscode) as 'Status Code',

                (       select DATEDIFF(DAY,UtcBigIntToNomTime(MAX(CKP.endTime)),GETDATE()) as 'Days since Last successful' 

                        from   domain_JobArchive CKP

                        where CKP.masterServerId = A.masterServerId AND

                                  CKP.id = CKP.parentJobId AND

                                  CKP.clientId = A.clientId AND

                                  CKP.policyId = A.policyId AND

                                  CKP.policyName = A.policyName AND

                                  CKP.policyType = A.policyType AND

                                  ( CKP.statusCode = 0 OR   CKP.statusCode = 1  )  ),

                (       select  UtcBigIntToNomTime(MAX(BKP.endTime)) as 'Last successful'

                        from   domain_JobArchive BKP

                        where BKP.masterServerId = A.masterServerId AND

                                  BKP.Id = BKP.parentJobId AND

                                  BKP.clientId = A.clientId AND

                                  BKP.policyId = A.policyId AND

                                  BKP.policyName = A.policyName AND

                                  BKP.policyType = A.policyType AND

                                 ( BKP.statusCode = 0 OR   BKP.statusCode = 1  ) )

    FROM  "domain_JobArchive" A , "domain_masterserver" B

    WHERE

    A.masterServerId = B.id AND A.id = A.parentjobid AND

              DATEDIFF(hour,UtcBigIntToNomTime(A.endTime), GETDATE()) <= 24

    AND

    (         select  DATEDIFF(DAY,UtcBigIntToNomTime(MAX(CKP.endTime)),GETDATE()) as 'Days since Last successful'

                        from   domain_JobArchive CKP

                        where CKP.masterServerId = A.masterServerId AND

                                  CKP.id = A.parentJobId AND

                                  CKP.clientId = A.clientId AND

                                  CKP.policyId = A.policyId AND

                                  CKP.policyName = A.policyName AND

                                  CKP.policyType = A.policyType AND

                                  CKP.scheduleType = A.scheduleType AND

                                  ( CKP.statusCode = 0 OR   CKP.statusCode = 1  )  ) > 0 AND

    A.scheduleName != 'user_backup' AND

    A.statusCode not in (0,1,190,199,230,239,240,800,1000) AND

    A.policyName NOT LIKE 'SLP_%' AND A.type IN (0,22,28) AND

    A.scheduletype not in (-1,2)

    Group by A.clientName,A.masterServerId,A.policyName,B.friendlyName,policyType,scheduleType,clientid,policyid

    ORDER BY B.friendlyName , A.clientName

     Generic daily report with 

    SELECT

    domain_JobArchive.policyName as "Policy Name",

    domain_JobArchive.clientName as "Client Name",

    domain_Client.hardwareDescription as "Platform",

    domain_Client.versionLabel as "Version",

    domain_JobArchive.scheduleName as "Schedule Name",

    adjust_timestamp(domain_ScheduledJob.scheduledTime,10800000) as "Job Scheduled Time",

    UTCBigIntToNomTime(domain_JobArchive.startTime) as "Job Start Time",

    UTCBigIntToNomTime(domain_JobArchive.endTime) as "Job End Time",

    SecToTime(DATEDIFF(minute,UTCBigIntToNomTime(domain_JobArchive.startTime),UTCBigIntToNomTime(domain_JobArchive.endTime))) as "Job Duration(Minutes)",

    (CASE

            WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode = 0 THEN 'Successful'

            WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode = 1 THEN 'Partial'

            WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode > 1 THEN 'Failed'

            ELSE 'Failed'

    END)  as "Job Status",

    nb_JobFilesArchive.fileinfo as "Files",

    CAST(domain_JobArchive.bytesWritten/1024/1024/1024 as NUMERIC(20,2)) as "Job Size(MB)",

    domain_JobArchive.statusCode as "Status Code"

    FROM domain_JobArchive,  lookup_JobState, domain_ScheduledJob, nb_JobFilesArchive, domain_MasterServer, domain_Client

    WHERE domain_ScheduledJob.jobid  = domain_JobArchive.id

    AND domain_JobArchive.masterserverId = nb_JobFilesArchive.masterserverId

    AND domain_JobArchive.clientName = nb_JobFilesArchive.clientName

    AND domain_JobArchive.id = nb_JobFilesArchive.jobID

    AND domain_MasterServer.id = domain_JobArchive.masterServerId

    AND domain_JobArchive.clientName = domain_Client.name

    AND domain_JobArchive.masterserverId = domain_Client.masterserverId

    AND domain_JobArchive.state =lookup_JobState.id

    AND DATEDIFF(hour,UTCBigIntToNomTime(domain_JobArchive.endTime), GETDATE()) <=24

    AND domain_JobArchive.policyName != ''

     Unique failures daily(Parent jobs only child jobs will be omitted) 

    SELECT

    MAX(domain_Job.id) as "Job Primary ID",

    domain_Job.clientName as "Client Name",

    domain_Client.hardwareDescription as "Client OS",

    lookup_JobType.name as "Job Type",

    lookup_JobState.name as "Job Status",

    count(domain_Job.statusCode) as "Number of entries",

    domain_Job.policyName as "Policy Name",

    MAX(UTCBigIntToNomTime(domain_Job.startTime)) as "Job Start Time",

    MAX(UTCBigIntToNomTime(domain_Job.endTime)) as "Job End Time",

    MAX(SecToTime(DATEDIFF(second,UTCBigIntToNomTime(domain_Job.startTime),UTCBigIntToNomTime(domain_Job.endTime)))) as "Job Duration",

    MAX(domain_Job.bytesWritten/1024/1024/1024) as "Job Size(MB)",

    MAX(domain_Job.filesBackedUp) as "Job File Count",

    MAX(domain_Job.throughput) as "Job Throughput (KB/Sec)",

    domain_Job.statusCode as "Status Code",

    lookup_JobStatusCode.name as "Status Code Description"

    FROM

    domain_Job, domain_Client, lookup_JobType, lookup_JobState, lookup_JobStatusCode

    WHERE domain_Job.type = lookup_JobType.id

    AND domain_Job.statusCode > 0

    AND domain_Job.statusCode = lookup_JobStatusCode.id

    AND domain_Job.id = domain_Job.ParentJobID

    AND domain_Job.state = lookup_JobState.id

    AND domain_Job.clientName = domain_Client.name

    AND DATEDIFF(hour,UTCBigIntToNomTime(domain_Job.endTime), GETDATE()) <= 24

    AND domain_Job.policyName != ''

    child jobs will be omitted) 

SQL procedure

CREATE FUNCTION SecToTime(seconds INT)

RETURNS CHAR(20)

AS

BEGIN

RETURN (

         (SELECT RIGHT('00' + CAST(CAST(floor(seconds/3600) as NUMERIC(3)) as CHAR(3)), 2)) + ':' +

         (SELECT RIGHT('00' + CAST(CAST(floor(seconds/60) % 60 as NUMERIC(2)) as CHAR(2)), 2)) +':' +

         (SELECT RIGHT('00' + CAST(CAST(seconds % 60 as NUMERIC(2)) as CHAR(2)), 2))

)

END

Example:

SELECT SecToTime(1000);

>>00:16:40

SELECT SecToTime(100000); -- hours will go over 24.

>>27:46:40

 Audit report deleted and deactivated policies

SELECT

domain_MasterServer.networkName as "Master",

SUBSTR(LIST(audit_Key.value), 0, CHARINDEX(',',LIST(audit_Key.value))) as "Client",

SUBSTR(LIST(audit_Key.value), CHARINDEX(',',LIST(audit_Key.value))+1, LEN(LIST(audit_Key.value))) as "Policy",

MAX(UTCBigIntToNomTime(audit_Record.auditTime)) as "Timestamp",

MAX(audit_UserIdentity.userName) as "User"

FROM audit_Record, audit_Key, domain_MasterServer, audit_UserIdentity

WHERE domain_MasterServer.id =  audit_Key.masterServerId

AND audit_Record.userIdentityId = audit_UserIdentity.id

AND audit_Record.masterServerId = audit_Key.masterServerId

AND audit_Record.tieInId = audit_Key.tieInId

AND audit_Record.recordId = audit_Key.recordId

AND audit_Record.messageId = 10

AND DATEDIFF(hour,UTCBigIntToNomTime(audit_Record.auditTime), GETDATE()) <= 48 --- Change time here

GROUP BY audit_Record.tieInId, domain_MasterServer.networkName

ORDER BY "Timestamp" DESC

Audit report clients removed from policies

SELECT

domain_MasterServer.networkName as "Master",

LIST(audit_Key.value) as "Policy",

LIST((CASE

         WHEN audit_Record.messageId = 2 THEN 'Deactivated'

         WHEN audit_Record.messageId = 5 THEN 'Deleted'

END)) as "Action",

LIST(UTCBigIntToNomTime(audit_Record.auditTime)) as "Timestamp",

LIST(audit_UserIdentity.userName) as "User"

FROM audit_Record, audit_Key, domain_MasterServer, audit_UserIdentity

WHERE domain_MasterServer.id = audit_Key.masterServerId

AND audit_Record.masterServerId = audit_Key.masterServerId

AND audit_Record.tieInId = audit_Key.tieInId

AND audit_Record.recordId = audit_Key.recordId

AND audit_Record.userIdentityId = audit_UserIdentity.id

AND audit_Record.messageId IN (2 ,5)

AND DATEDIFF(day,UTCBigIntToNomTime(audit_Record.auditTime), GETDATE()) <= 7 -- Change Time here

GROUP BY audit_Record.tieInId,domain_MasterServer.networkName

ORDER BY "Timestamp" DESC

List of all active clients, policies, policy types and backup selections in configuration

SELECT

domain_PolicyClient.clientName as "Client Name",

domain_PolicyClient.policyName as "Policy Name",

lookup_PolicyType.name as "Policy Type",

nb_Policy.fileList as "Backup Selection"

FROM

domain_PolicyClient, domain_Client,lookup_PolicyType, domain_Policy, nb_Policy

WHERE

AND lookup_PolicyType.id = domain_Policy.type

AND domain_PolicyClient.clientName = domain_Client.name

AND domain_PolicyClient.masterServerId = domain_Client.masterServerId

AND domain_PolicyClient.policyName = domain_Policy.name

AND domain_PolicyClient.masterServerId = domain_Policy.masterServerId

AND domain_PolicyClient.policyDomainName = domain_Policy.policyDomainName

AND domain_PolicyClient.policyVersionNo= domain_Policy.versionNo

AND domain_Policy.name = nb_Policy.name

AND domain_Policy.masterServerId = nb_Policy.masterServerId

AND domain_Policy.versionNo = nb_Policy.versionNo

AND domain_Policy.policyDomainName = nb_Policy.policyDomainName

AND domain_Policy.status = 0

AND domain_Policy.active = 1

AND lookup_PolicyType.name  LIKE '%DB2%'

-- domain_Policy.name LIKE '%PR%'

-- domain_PolicyClient.clientName LIKE '%winprd%'

ORDER BY domain_PolicyClient.clientName

Last successful backup for failed jobs f all active clients, policies, policy types and backup selections in configuration

SELECT DISTINCT

B.friendlyName as 'Master Server',

A.clientName as 'Client Name',

A.policyName as 'Policy Name',

LIST(A.statuscode) as 'Status Code',

            (       select DATEDIFF(DAY,UtcBigIntToNomTime(MAX(CKP.endTime)),GETDATE()) as 'Days since Last successful' 

                    from   domain_JobArchive CKP

                    where CKP.masterServerId = A.masterServerId AND

                              CKP.id = CKP.parentJobId AND

                              CKP.clientId = A.clientId AND

                              CKP.policyId = A.policyId AND

                              CKP.policyName = A.policyName AND

                              CKP.policyType = A.policyType AND

                              ( CKP.statusCode = 0 OR   CKP.statusCode = 1  )  ),

            (       select  UtcBigIntToNomTime(MAX(BKP.endTime)) as 'Last successful'

                    from   domain_JobArchive BKP

                    where BKP.masterServerId = A.masterServerId AND

                              BKP.Id = BKP.parentJobId AND

                              BKP.clientId = A.clientId AND

                              BKP.policyId = A.policyId AND

                              BKP.policyName = A.policyName AND

                              BKP.policyType = A.policyType AND

                             ( BKP.statusCode = 0 OR   BKP.statusCode = 1  ) )

FROM  "domain_JobArchive" A , "domain_masterserver" B

WHERE

A.masterServerId = B.id AND A.id = A.parentjobid AND

          DATEDIFF(hour,UtcBigIntToNomTime(A.endTime), GETDATE()) <= 24

AND

(         select  DATEDIFF(DAY,UtcBigIntToNomTime(MAX(CKP.endTime)),GETDATE()) as 'Days since Last successful'

                    from   domain_JobArchive CKP

                    where CKP.masterServerId = A.masterServerId AND

                              CKP.id = A.parentJobId AND

                              CKP.clientId = A.clientId AND

                              CKP.policyId = A.policyId AND

                              CKP.policyName = A.policyName AND

                              CKP.policyType = A.policyType AND

                              CKP.scheduleType = A.scheduleType AND

                              ( CKP.statusCode = 0 OR   CKP.statusCode = 1  )  ) > 0 AND

A.scheduleName != 'user_backup' AND

A.statusCode not in (0,1,190,199,230,239,240,800,1000) AND

A.policyName NOT LIKE 'SLP_%' AND A.type IN (0,22,28) AND

A.scheduletype not in (-1,2)

Group by A.clientName,A.masterServerId,A.policyName,B.friendlyName,policyType,scheduleType,clientid,policyid

ORDER BY B.friendlyName , A.clientName

 Generic daily report with 

SELECT

domain_JobArchive.policyName as "Policy Name",

domain_JobArchive.clientName as "Client Name",

domain_Client.hardwareDescription as "Platform",

domain_Client.versionLabel as "Version",

domain_JobArchive.scheduleName as "Schedule Name",

adjust_timestamp(domain_ScheduledJob.scheduledTime,10800000) as "Job Scheduled Time",

UTCBigIntToNomTime(domain_JobArchive.startTime) as "Job Start Time",

UTCBigIntToNomTime(domain_JobArchive.endTime) as "Job End Time",

SecToTime(DATEDIFF(minute,UTCBigIntToNomTime(domain_JobArchive.startTime),UTCBigIntToNomTime(domain_JobArchive.endTime))) as "Job Duration(Minutes)",

(CASE

         WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode = 0 THEN 'Successful'

         WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode = 1 THEN 'Partial'

         WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode > 1 THEN 'Failed'

         ELSE 'Failed'

END)  as "Job Status",

nb_JobFilesArchive.fileinfo as "Files",

CAST(domain_JobArchive.bytesWritten/1024/1024/1024 as NUMERIC(20,2)) as "Job Size(MB)",

domain_JobArchive.statusCode as "Status Code"

FROM domain_JobArchive,  lookup_JobState, domain_ScheduledJob, nb_JobFilesArchive, domain_MasterServer, domain_Client

WHERE domain_ScheduledJob.jobid  = domain_JobArchive.id

AND domain_JobArchive.masterserverId = nb_JobFilesArchive.masterserverId

AND domain_JobArchive.clientName = nb_JobFilesArchive.clientName

AND domain_JobArchive.id = nb_JobFilesArchive.jobID

AND domain_MasterServer.id = domain_JobArchive.masterServerId

AND domain_JobArchive.clientName = domain_Client.name

AND domain_JobArchive.masterserverId = domain_Client.masterserverId

AND domain_JobArchive.state =lookup_JobState.id

AND DATEDIFF(hour,UTCBigIntToNomTime(domain_JobArchive.endTime), GETDATE()) <=24

AND domain_JobArchive.policyName != ''

 Unique failures daily(Parent jobs only child jobs will be omitted) 

SELECT

MAX(domain_Job.id) as "Job Primary ID",

domain_Job.clientName as "Client Name",

domain_Client.hardwareDescription as "Client OS",

lookup_JobType.name as "Job Type",

lookup_JobState.name as "Job Status",

count(domain_Job.statusCode) as "Number of entries",

domain_Job.policyName as "Policy Name",

MAX(UTCBigIntToNomTime(domain_Job.startTime)) as "Job Start Time",

MAX(UTCBigIntToNomTime(domain_Job.endTime)) as "Job End Time",

MAX(SecToTime(DATEDIFF(second,UTCBigIntToNomTime(domain_Job.startTime),UTCBigIntToNomTime(domain_Job.endTime)))) as "Job Duration",

MAX(domain_Job.bytesWritten/1024/1024/1024) as "Job Size(MB)",

MAX(domain_Job.filesBackedUp) as "Job File Count",

MAX(domain_Job.throughput) as "Job Throughput (KB/Sec)",

domain_Job.statusCode as "Status Code",

lookup_JobStatusCode.name as "Status Code Description"

FROM

domain_Job, domain_Client, lookup_JobType, lookup_JobState, lookup_JobStatusCode

WHERE domain_Job.type = lookup_JobType.id

AND domain_Job.statusCode > 0

AND domain_Job.statusCode = lookup_JobStatusCode.id

AND domain_Job.id = domain_Job.ParentJobID

AND domain_Job.state = lookup_JobState.id

AND domain_Job.clientName = domain_Client.name

AND DATEDIFF(hour,UTCBigIntToNomTime(domain_Job.endTime), GETDATE()) <= 24

AND domain_Job.policyName != ''

Here I will be posting custom reports, that were created by me or other forum members. All correction, improvements and optimizations to code below are highly appreciated.

  • SQL procedure for converting time in seconds to hh:mm:sec format. May be useful for displaying duration in human readable form.

*This procedure used in some of my reports, make sure to add it.

  • Audit report deleted and deactivated policies. 
  • Audit report clients removed from policies. 
  • List of all active clients, policies, policy types and backup selections in configuration.
  • Last successful backup for failed jobs, done by M_henriksen, with a little bit of my tuning
  • Generic daily report with 
    • Policy Name
    • Client Name
    • Platform
    • Version
    • Schedule Name
    • Job Scheduled Time
    • Job Start Time
    • Job End Time
    • Job Duration
    • Job Status
    • Files(Selection)
    • Job Size(MB)
    • Status Code
  • Unique failures daily(Parent jobs only child jobs will be omitted) 

SQL procedure

CREATE FUNCTION SecToTime(seconds INT)

RETURNS CHAR(20)

AS

BEGIN

RETURN (

         (SELECT RIGHT('00' + CAST(CAST(floor(seconds/3600) as NUMERIC(3)) as CHAR(3)), 2)) + ':' +

         (SELECT RIGHT('00' + CAST(CAST(floor(seconds/60) % 60 as NUMERIC(2)) as CHAR(2)), 2)) +':' +

         (SELECT RIGHT('00' + CAST(CAST(seconds % 60 as NUMERIC(2)) as CHAR(2)), 2))

)

END

Example:

SELECT SecToTime(1000);

>>00:16:40

SELECT SecToTime(100000); -- hours will go over 24.

>>27:46:40

 Audit report deleted and deactivated policies

SELECT

domain_MasterServer.networkName as "Master",

SUBSTR(LIST(audit_Key.value), 0, CHARINDEX(',',LIST(audit_Key.value))) as "Client",

SUBSTR(LIST(audit_Key.value), CHARINDEX(',',LIST(audit_Key.value))+1, LEN(LIST(audit_Key.value))) as "Policy",

MAX(UTCBigIntToNomTime(audit_Record.auditTime)) as "Timestamp",

MAX(audit_UserIdentity.userName) as "User"

FROM audit_Record, audit_Key, domain_MasterServer, audit_UserIdentity

WHERE domain_MasterServer.id =  audit_Key.masterServerId

AND audit_Record.userIdentityId = audit_UserIdentity.id

AND audit_Record.masterServerId = audit_Key.masterServerId

AND audit_Record.tieInId = audit_Key.tieInId

AND audit_Record.recordId = audit_Key.recordId

AND audit_Record.messageId = 10

AND DATEDIFF(hour,UTCBigIntToNomTime(audit_Record.auditTime), GETDATE()) <= 48 --- Change time here

GROUP BY audit_Record.tieInId, domain_MasterServer.networkName

ORDER BY "Timestamp" DESC

Audit report clients removed from policies

SELECT

domain_MasterServer.networkName as "Master",

LIST(audit_Key.value) as "Policy",

LIST((CASE

         WHEN audit_Record.messageId = 2 THEN 'Deactivated'

         WHEN audit_Record.messageId = 5 THEN 'Deleted'

END)) as "Action",

LIST(UTCBigIntToNomTime(audit_Record.auditTime)) as "Timestamp",

LIST(audit_UserIdentity.userName) as "User"

FROM audit_Record, audit_Key, domain_MasterServer, audit_UserIdentity

WHERE domain_MasterServer.id = audit_Key.masterServerId

AND audit_Record.masterServerId = audit_Key.masterServerId

AND audit_Record.tieInId = audit_Key.tieInId

AND audit_Record.recordId = audit_Key.recordId

AND audit_Record.userIdentityId = audit_UserIdentity.id

AND audit_Record.messageId IN (2 ,5)

AND DATEDIFF(day,UTCBigIntToNomTime(audit_Record.auditTime), GETDATE()) <= 7 -- Change Time here

GROUP BY audit_Record.tieInId,domain_MasterServer.networkName

ORDER BY "Timestamp" DESC

List of all active clients, policies, policy types and backup selections in configuration

SELECT

domain_PolicyClient.clientName as "Client Name",

domain_PolicyClient.policyName as "Policy Name",

lookup_PolicyType.name as "Policy Type",

nb_Policy.fileList as "Backup Selection"

FROM

domain_PolicyClient, domain_Client,lookup_PolicyType, domain_Policy, nb_Policy

WHERE

AND lookup_PolicyType.id = domain_Policy.type

AND domain_PolicyClient.clientName = domain_Client.name

AND domain_PolicyClient.masterServerId = domain_Client.masterServerId

AND domain_PolicyClient.policyName = domain_Policy.name

AND domain_PolicyClient.masterServerId = domain_Policy.masterServerId

AND domain_PolicyClient.policyDomainName = domain_Policy.policyDomainName

AND domain_PolicyClient.policyVersionNo= domain_Policy.versionNo

AND domain_Policy.name = nb_Policy.name

AND domain_Policy.masterServerId = nb_Policy.masterServerId

AND domain_Policy.versionNo = nb_Policy.versionNo

AND domain_Policy.policyDomainName = nb_Policy.policyDomainName

AND domain_Policy.status = 0

AND domain_Policy.active = 1

AND lookup_PolicyType.name  LIKE '%DB2%'

-- domain_Policy.name LIKE '%PR%'

-- domain_PolicyClient.clientName LIKE '%winprd%'

ORDER BY domain_PolicyClient.clientName

Last successful backup for failed jobs f all active clients, policies, policy types and backup selections in configuration

SELECT DISTINCT

B.friendlyName as 'Master Server',

A.clientName as 'Client Name',

A.policyName as 'Policy Name',

LIST(A.statuscode) as 'Status Code',

            (       select DATEDIFF(DAY,UtcBigIntToNomTime(MAX(CKP.endTime)),GETDATE()) as 'Days since Last successful' 

                    from   domain_JobArchive CKP

                    where CKP.masterServerId = A.masterServerId AND

                              CKP.id = CKP.parentJobId AND

                              CKP.clientId = A.clientId AND

                              CKP.policyId = A.policyId AND

                              CKP.policyName = A.policyName AND

                              CKP.policyType = A.policyType AND

                              ( CKP.statusCode = 0 OR   CKP.statusCode = 1  )  ),

            (       select  UtcBigIntToNomTime(MAX(BKP.endTime)) as 'Last successful'

                    from   domain_JobArchive BKP

                    where BKP.masterServerId = A.masterServerId AND

                              BKP.Id = BKP.parentJobId AND

                              BKP.clientId = A.clientId AND

                              BKP.policyId = A.policyId AND

                              BKP.policyName = A.policyName AND

                              BKP.policyType = A.policyType AND

                             ( BKP.statusCode = 0 OR   BKP.statusCode = 1  ) )

FROM  "domain_JobArchive" A , "domain_masterserver" B

WHERE

A.masterServerId = B.id AND A.id = A.parentjobid AND

          DATEDIFF(hour,UtcBigIntToNomTime(A.endTime), GETDATE()) <= 24

AND

(         select  DATEDIFF(DAY,UtcBigIntToNomTime(MAX(CKP.endTime)),GETDATE()) as 'Days since Last successful'

                    from   domain_JobArchive CKP

                    where CKP.masterServerId = A.masterServerId AND

                              CKP.id = A.parentJobId AND

                              CKP.clientId = A.clientId AND

                              CKP.policyId = A.policyId AND

                              CKP.policyName = A.policyName AND

                              CKP.policyType = A.policyType AND

                              CKP.scheduleType = A.scheduleType AND

                              ( CKP.statusCode = 0 OR   CKP.statusCode = 1  )  ) > 0 AND

A.scheduleName != 'user_backup' AND

A.statusCode not in (0,1,190,199,230,239,240,800,1000) AND

A.policyName NOT LIKE 'SLP_%' AND A.type IN (0,22,28) AND

A.scheduletype not in (-1,2)

Group by A.clientName,A.masterServerId,A.policyName,B.friendlyName,policyType,scheduleType,clientid,policyid

ORDER BY B.friendlyName , A.clientName

 Generic daily report with 

SELECT

domain_JobArchive.policyName as "Policy Name",

domain_JobArchive.clientName as "Client Name",

domain_Client.hardwareDescription as "Platform",

domain_Client.versionLabel as "Version",

domain_JobArchive.scheduleName as "Schedule Name",

adjust_timestamp(domain_ScheduledJob.scheduledTime,10800000) as "Job Scheduled Time",

UTCBigIntToNomTime(domain_JobArchive.startTime) as "Job Start Time",

UTCBigIntToNomTime(domain_JobArchive.endTime) as "Job End Time",

SecToTime(DATEDIFF(minute,UTCBigIntToNomTime(domain_JobArchive.startTime),UTCBigIntToNomTime(domain_JobArchive.endTime))) as "Job Duration(Minutes)",

(CASE

         WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode = 0 THEN 'Successful'

         WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode = 1 THEN 'Partial'

         WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode > 1 THEN 'Failed'

         ELSE 'Failed'

END)  as "Job Status",

nb_JobFilesArchive.fileinfo as "Files",

CAST(domain_JobArchive.bytesWritten/1024/1024/1024 as NUMERIC(20,2)) as "Job Size(MB)",

domain_JobArchive.statusCode as "Status Code"

FROM domain_JobArchive,  lookup_JobState, domain_ScheduledJob, nb_JobFilesArchive, domain_MasterServer, domain_Client

WHERE domain_ScheduledJob.jobid  = domain_JobArchive.id

AND domain_JobArchive.masterserverId = nb_JobFilesArchive.masterserverId

AND domain_JobArchive.clientName = nb_JobFilesArchive.clientName

AND domain_JobArchive.id = nb_JobFilesArchive.jobID

AND domain_MasterServer.id = domain_JobArchive.masterServerId

AND domain_JobArchive.clientName = domain_Client.name

AND domain_JobArchive.masterserverId = domain_Client.masterserverId

AND domain_JobArchive.state =lookup_JobState.id

AND DATEDIFF(hour,UTCBigIntToNomTime(domain_JobArchive.endTime), GETDATE()) <=24

AND domain_JobArchive.policyName != ''

 Unique failures daily(Parent jobs only child jobs will be omitted) 

SELECT

MAX(domain_Job.id) as "Job Primary ID",

domain_Job.clientName as "Client Name",

domain_Client.hardwareDescription as "Client OS",

lookup_JobType.name as "Job Type",

lookup_JobState.name as "Job Status",

count(domain_Job.statusCode) as "Number of entries",

domain_Job.policyName as "Policy Name",

MAX(UTCBigIntToNomTime(domain_Job.startTime)) as "Job Start Time",

MAX(UTCBigIntToNomTime(domain_Job.endTime)) as "Job End Time",

MAX(SecToTime(DATEDIFF(second,UTCBigIntToNomTime(domain_Job.startTime),UTCBigIntToNomTime(domain_Job.endTime)))) as "Job Duration",

MAX(domain_Job.bytesWritten/1024/1024/1024) as "Job Size(MB)",

MAX(domain_Job.filesBackedUp) as "Job File Count",

MAX(domain_Job.throughput) as "Job Throughput (KB/Sec)",

domain_Job.statusCode as "Status Code",

lookup_JobStatusCode.name as "Status Code Description"

FROM

domain_Job, domain_Client, lookup_JobType, lookup_JobState, lookup_JobStatusCode

WHERE domain_Job.type = lookup_JobType.id

AND domain_Job.statusCode > 0

AND domain_Job.statusCode = lookup_JobStatusCode.id

AND domain_Job.id = domain_Job.ParentJobID

AND domain_Job.state = lookup_JobState.id

AND domain_Job.clientName = domain_Client.name

AND DATEDIFF(hour,UTCBigIntToNomTime(domain_Job.endTime), GETDATE()) <= 24

AND domain_Job.policyName != ''


Viewing all articles
Browse latest Browse all 5094

Trending Articles