Het antwoord is JA , u kunt terugkrijgen, maar het is niet gemakkelijk. Alle databases loggen elke wijziging daarin aangebracht. U moet:
- Sluit de server af (of zet hem in ieder geval in de alleen-lezen modus)
- Maak een volledige back-up van de server
- Krijg een kopie van alle db-logbestanden die teruggaan tot het moment waarop het ongeluk gebeurde
- Herstel de back-up op een andere server
- Gebruik db-beheertools om terug te gaan door de logbestanden totdat u het ongeval "ongedaan maakt"
- Bekijk de herstelde code in de opgeslagen procedure en codeer deze terug naar je huidige versie
En het allerbelangrijkste:HAAL UW OPGESLAGEN PROCEDURECODE ONDER BRONCONTROLE
Veel mensen begrijpen dit concept niet:u kunt alleen wijzigingen aanbrengen naar een database; je kunt de opgeslagen proc-versie niet terugdraaien zoals je kunt met applicatiecode door bestanden te vervangen door hun vorige versies. Om "terug te draaien", moet je meer . maken wijzigingen die uw opgeslagen proces laten vallen/definiëren.
Opmerking voor muggenzifters:met "terugdraaien" bedoel ik niet "terugdraaien van transacties". Ik bedoel, je hebt je wijzigingen aangebracht en besluit zodra de server weer in de lucht is dat de wijziging niet goed is.