Helpdesk: TSM TDP – odtwarzanie bazy danych master

25-paź-2022

IBM Tivoli Data Protection to jedeno z rozwiązań ciągle używanych do wykonywania kopii zapasowej baz danych SQL. Narzędzie ma swoje wady i zalety, ale robi to co ma robić i chwała mu za to.

Dokumentacja produktu jest stworzona w dość typowy dla IBM pokrętny sposób. Niby wszystko tam jest, ale znalezienie sensownej informacji – to już jest najwyraźniej „out-of-scope” największej korporacji.

Tym razem zmierzyłem się z odtwarzaniem bazy danych master na serwerze SQL. Jak należało się spodziewać, wszelkie udogodnienia stworzone dla administratora w tym momencie przestają działać: przystawka mmc dedykowana dla Tivoli, owszem łączy sie do systemu backupowego i do serwera, ale po uruchomieniu odtworzenia operacja kończy się błędem.

Przystawka wykorzystuje „pod spodem” komendy powershella, które szczęśliwie wyświetla użytkownikowi, dzięki temu można przyjrzeć się parametrom, jakie udało się wyklikać w GUI. Jeśli jednak ktoś liczy na to, że uruchomienie powershella i owej komendy załatwi sprawę podczas odtwarzania, to się myli.

Podczas odtwarzania bazy danych, serwer SQL pracuje w trybie Single User Mode. Oznacza to, że jest możliwe TYLKO jedno aktywne połącznie. Polecenie Powershellowe najwyraźniej otwiera sobie tych połączeń więcej, więc samo się blokuje. Czemu tak to zostało zrobione? Bo IBM miał taki kaprys 🙂

Ale jest metoda! Należy skopiować polecenie powershell i przejrzeć jego argumenty. Następnie te argumenty należy przełożyć na argumenty polecenia tdpsqlc.exe. Kończymy uruchamiając polecenie tdpsqlc.exe z tak skonstruowanymi parametrami, np.:

Polecenie Powershell:

Restore-DpSqlBackup  master -Full -BackupDestination TSM -BackupMethod legacy 
-Replace -SqlServer "SERVER_NAME,SERVER_PORT" -SQLAUTHentication INTegrated 
-Stripes 1 -FromSqlServer SERVER_NAME -ObjectNames 20221025133439\000014B8 
-QueryNode DP -MountWait Yes -ConfigFile C:\......\tdpsql.cfg 
-TsmOptFile C:\.......\TDPSql\dsm.opt

zamieni się na:

tdpsqlc restore master full /BACKUPDESTination=TSM /BACKUPMETHod=LEGACY /REPlace 
/SQLSERVer=SERVER_NAME,SERVER_PORT /SQLAUTHentication=INTegrated 
/STRIPes=1 /FROMSQLSERVer=SERVER_NAME /OBJect=20221025133439\000014B8 
/QUERYNode=DP /MOUNTWait=Yes  /CONFIGfile=C:\.....\tdpsql.cfg 
/TSMOPTFile=C:\......\TDPSql\dsm.opt

Podsumowując, do poprawnego odtworzenia bazy danych master można:
0. Jeśli trzeba – odbudować uszkodzoną bazę master
1. Wyklikać operację odtworzenia bazy danych master, ale nie uruchamiać, tylko skopiować polecenie powershell i przerobić je na wersję tdpsqlc.exe
2. Uruchomić SQL Server w trybie single user (przełącznik -m dla programu sqlsrv.exe uruchamianego z katalogu binn w instancji)
3. Uruchomić przygotowane polecenie tdpsqlc.exe

Linki do dokumentacji IBM:
https://www.ibm.com/docs/en/tsmfd/7.1.1?topic=files-restoring-master-database
https://www.ibm.com/support/pages/apar/IC97413

Any one using Tivoli, TDP from IBM????


https://www.ibm.com/docs/en/tsmfd/7.1.3?topic=command-restore-syntax

Komentarze są wyłączone

Autor: Rafał Kraik