SQL Server DBA Diaries
efectuarea backup-uri de baze de date sunt una dintre cele mai frecvent efectuate activități de orice DBA. De cele mai multe ori fereastra de întreținere pe care echipa DBA o primește pentru a efectua activități de întreținere a bazei de date este de obicei mai mică. De cele mai multe ori, sarcinile de întreținere a bazei de date depășesc fereastra stipulată și echipa de aplicații începe să se plângă de acest lucru.
chiar și în mediul nostru, de obicei, echipa de aplicații revine la afirmația „locurile noastre de muncă critice sunt pe cale să înceapă în următoarele câteva minute. Vedem că un proces de backup al bazei de date utilizează majoritatea resurselor. Din moment ce ar putea afecta locurile noastre de muncă, poți te rog să-l omoare?”
pentru ei este de locuri de muncă de rezervă, care ruleaza de zi cu zi. Dar numai DBA ar ști cât de prețioasă este o copie de rezervă a bazei de date. Nu-mi amintesc de câte ori acea rezervă suplimentară m-a ajutat să ies din situații dificile sau mi-a dat încrederea să merg mai departe cu o propunere riscantă.
când cineva întreabă Cât timp va rula acea lucrare de rezervă sau cât de mult a lucrat deja, cea mai bună opțiune din SQL Server 2000 a fost să verifice ieșirea dată de parametrul statistici din scriptul de rezervă. Dar dacă cineva a uitat să includă parametrul statistici în scriptul de rezervă, nu există nicio modalitate de a verifica starea de finalizare a copiei de rezervă în SQL Server 2000.
dar începând SQL Server 2005, acest comportament s-a schimbat. Unul dintre numeroasele DMV-uri minunate care trebuie incluse în SQL Server 2005 este SYS.dm_exec_requests. cu acest DMV Starea, Procentul finalizat etc. a procesului de Backup (pentru care contează orice comandă SQL) pot fi urmărite cu ușurință. Iată scenariul care face exact același lucru.
SELECT A.NAME,B.TOTAL_ELAPSED_TIME/60000 AS ,B.ESTIMATED_COMPLETION_TIME/60000 AS ,B.PERCENT_COMPLETE as ,(SELECT TEXT FROM sys.dm_exec_sql_text(B.SQL_HANDLE))AS COMMAND FROM MASTER..SYSDATABASES A, sys.dm_exec_requests BWHERE A.DBID=B.DATABASE_ID AND B.COMMAND LIKE '%BACKUP%' order by percent_complete desc,B.TOTAL_ELAPSED_TIME/60000 desc
știu că majoritatea dintre noi folosim deja o versiune sau alta a acestui script de foarte mult timp. Din moment ce acest script a ajutat recent David Rummel pentru a urmări de rezervă a unei baze de date de mare, a crezut că acest lucru ar putea ajuta pe altcineva undeva.