Quantcast
Channel: Ivanti User Community: Message List
Viewing all articles
Browse latest Browse all 12704

Emergency Management of Service Desk

$
0
0

Yesterday I killed our production database by deleting an object that was scheduleable.  For the record, don't do that.  Support advised me that my database was trashed and to restore my backup from last night.  Pretty standard stuff.  Then something interesting happened, my DBA suggested that he could copy my database to new instance so I could still access the data.  That never occurred to me, I thought all was lost.  I could not launch Service Desk or anything useful but my data still existed even though the meta data was a huge mess.  I wrote a few scripts that I ran against my old database.  I ran the scripts below all at once and had 5 windows in SQL.  I copied all the incidents from the first select statement to Excel and then removed the comment before "and im_id = @ID".  Then for each incident on the spreadsheet I updated @ID (my incident number) and ran the script.  I had the basic data for creating the incident, the resolutions (if any) for that incident, the analyst notes (notes only an analyst can see), the notes, and then the assignments.  With that data I could go back and easily put all of my data back the way it was.  Obviously my attributes are different than yours but I think you should get the idea of what is going on.

 

You will want to try this NOW and modify it while all is well so what that dreadful day does come, this query will be ready to get you going again and reduce some of the damage.  For me it was a slow day and I noticed the corruption before noon so it could have been a lot worse.  Next time I will know exactly what to do and won't waste a bunch of time writing these scripts.  I hope this saves someone a lot of effort some day.

 

 

declare @ID Integer= 201427957, @BadDate datetime='9/9/2014'

 

--New Incidents

SELECT im_incident.im_id,'Incident', usr_poc, tps_user_2.tps_name AS Creator, tps_user.tps_name AS [End User], pm_process.pm_description, pm_process.usr_description_html, pm_process.pm_creation_date

FROM ((im_incident INNERJOIN pm_process ON im_incident.pm_guid = pm_process.pm_guid)INNERJOIN tps_user AS tps_user_2 ON pm_process.pm_creation_user_guid = tps_user_2.tps_guid)INNERJOIN tps_user ON pm_process.pm_raise_user_guid = tps_user.tps_guid

WHERE (((pm_process.pm_creation_date)>= @BadDate))--and im_id = @ID

ORDERBY im_incident.im_id;

 

--Resolutions

SELECT im_incident.im_id, im_incident_resolution.im_creation_date, tps_user_2.tps_name AS [Resolved By], im_incident_resolution.usr_description2_html, im_incident_resolution.usr_description2

FROM (im_incident LEFTJOIN im_incident_resolution ON im_incident.pm_guid = im_incident_resolution.im_incident_guid)LEFTJOIN tps_user AS tps_user_2 ON im_incident_resolution.im_creation_user_guid = tps_user_2.tps_guid

WHERE (((im_incident_resolution.im_creation_date)>= @BadDate))and im_incident.im_id = @ID

ORDERBY im_incident_resolution.im_creation_date;

 

--Analyst Notes

SELECT im_incident.im_id,'Analyst Note', usr_analystnote.usr_description, usr_analystnote.usr_description_html, usr_analystnote.usr_creationdate, tps_user_2.tps_name

FROM (im_incident LEFTJOIN usr_analystnote ON im_incident.pm_guid = usr_analystnote.usr_incident)LEFTJOIN tps_user AS tps_user_2 ON usr_analystnote.usr_creationuser = tps_user_2.tps_guid

WHERE (((usr_analystnote.usr_creationdate)>= @BadDate))and im_id = @ID

ORDERBY im_incident.im_id;

 

--Notes

SELECT im_incident.im_id,'Note', im_incident_note.im_text, im_incident_note.usr_text_html, im_incident_note.im_creation_date, tps_user_1.tps_name

FROM (im_incident LEFTJOIN im_incident_note ON im_incident.pm_guid = im_incident_note.im_incident_guid)LEFTJOIN tps_user AS tps_user_1 ON im_incident_note.im_creation_user_guid = tps_user_1.tps_guid

WHERE (((im_incident_note.im_creation_date)>= @BadDate))and im_id = @ID

ORDERBY im_incident.im_id;

 

--Assignments

SELECT im_incident.im_id,'Assignment', pm_process_assignment.pm_creation_date, pm_process_assignment.pm_description, tps_user.tps_name AS Creator, tps_user_1.tps_name AS [Assigned User], tps_group.tps_name AS [Assigned Group], pm_process_assignment.pm_serial_number

FROM (((((im_incident INNERJOIN pm_process ON im_incident.pm_guid = pm_process.pm_guid)INNERJOIN im_incident_assignment ON pm_process.pm_guid = im_incident_assignment.im_incident_guid)LEFTJOIN pm_process_assignment ON im_incident_assignment.pm_guid = pm_process_assignment.pm_guid)LEFTJOIN tps_user ON pm_process_assignment.pm_creation_user_guid = tps_user.tps_guid)LEFTJOIN tps_user AS tps_user_1 ON pm_process_assignment.pm_user_guid = tps_user_1.tps_guid)LEFTJOIN tps_group ON pm_process_assignment.pm_group_guid = tps_group.tps_guid

WHERE (((pm_process_assignment.pm_creation_date)>= @BadDate))and im_id = @ID

ORDERBY im_incident.im_id, pm_serial_number;


Viewing all articles
Browse latest Browse all 12704

Trending Articles