19 prosince, 2021

SQL Server DBA Diaries

provádění zálohování databáze je jedním z nejčastěji prováděných úkolů jakéhokoli DBA. Většinou je okno údržby, které tým DBA dostane k provádění činností údržby databáze, obvykle menší. Častěji to není, úkoly údržby databáze běží za stanoveným oknem a aplikační tým si na to začne stěžovat.

i v našem prostředí se obvykle aplikační tým vrací k tomu, že říká: „naše kritické úlohy se chystají začít v příštích několika minutách. Vidíme, že jeden proces zálohování databáze využívá většinu zdrojů. Protože to může ovlivnit naši práci, můžete to prosím zabít?“

pro ně je to záložní úloha, která běží každý den. Ale pouze DBA by věděl, jak cenná je záloha databáze. Nevzpomínám si, kolikrát mi ta posila navíc pomohla z těžkých situací nebo mi dodala sebevědomí, abych šel s nějakým riskantním návrhem.

když se někdo zeptá, jak dlouho bude tato zálohovací úloha spuštěna nebo kolik práce již udělala, nejlepší volbou v SQL Server 2000 bylo zkontrolovat výstup daný parametrem statistiky v záložním skriptu. Pokud však někdo zapomněl zahrnout parametr statistiky do skriptu zálohování, neexistuje způsob, jak zkontrolovat stav dokončení zálohy v SQL Server 2000.

ale při spuštění SQL Server 2005 se toto chování změnilo. Jedním z mnoha úžasných DMV, které mají být zahrnuty do SQL Server 2005, je sys. dm_exec_requests. s tímto DMV stav, procento dokončeno atd. procesu zálohování (na to přijde jakýkoli příkaz SQL) lze snadno sledovat. Zde je skript, který dělá přesně to samé.

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

vím, že většina z nás již používá nějakou nebo jinou verzi tohoto skriptu již velmi dlouho. Vzhledem k tomu, že tento skript nedávno pomohl Davidu Rummelovi sledovat zálohu velké databáze, myslel jsem, že by to mohlo někde pomoci někomu jinému.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.