Databases / SQL
16. Back-up en Restore Een back-up gebruik je pas als iets verkeerd is gegaan. Dan moet je de backup terugzetten doormiddel van een restore. In dit hoofdstuk worden de statements voor het maken en terugzetten van een back-up besproken. Na bestudering van dit hoofdstuk moet je tot het onderstaande in staat zijn: • • • •
16.1.
Het kunnen maken van een back-up Het kunnen terugzetten van een back-up Het kunnen hanteren van een back-up strategie Het kunnen toepassen van de juiste back-up methoden
Syntax
Hieronder is een syntaxoverzicht van de gebruikte statements in dit hoofdstuk. Het maken van een back-up BACKUP DATABASE
TO DISK = N''
Het terugzetten van een back-up RESTORE DATABASE FROM DISK = N'' WITH FILE = 1
16.2.
Wat is een back-up
Volgens de Van Dale is een back-up een kopie van data.
Binnen MS-SQL is het een reserve kopie van een database. Een van de belangrijkste taken van een ICT-beheerder is het voorkomen van gegevensverlies. Nu is het voorkomen niet altijd mogelijk. Een server kan defect raken. Hierdoor kan de database die gebruikt wordt niet meer beschikbaar zijn. Bedrijven kunnen hierdoor grote schade ondervinden. In ernstige gevallen kan een bedrijf zelfs failliet gaan. Het is dus noodzakelijk dat een database snel weer online is. Versie 4
Blz. 10
Databases / SQL
Applicatie Ontwikkelaars kunnen nu denken: “Dat is een taak voor de Beheerders!” Helaas is dit niet het geval. Als applicatie ontwikkelaar weet je wat belangrijke data is binnen jouw applicatie. Jij dient er dan voor zorg te dragen dat er in de applicatie een eenvoudige optie zit die het maken van een back-up en het terugplaatsen hiervan mogelijk maakt. Daarnaast mogen beheerders nooit het probleem afwentelen op de software. Zij dienen ervoor te zorgen dat ook bij software waar geen back-up mogelijkheid is ingebouwd niets kwijt kan raken. DUS ALTIJD BACK-UPPEN!!
16.3.
Het maken van een back-up
Voor het maken van een back-up dien je de onderstaande syntax toe te passen:
BACKUP DATABASE Klanten TO DISK = 'Klanten.bak'
Standaard wordt een back-up geplaatst in de map: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\ Als je de back-up in een andere map wilt plaatsen zul je het bovenstaande statement moeten aanpassen zoals hieronder is weergegeven:
BACKUP DATABASE Klanten TO DISK = N'c:\Databases\Klanten.bak'
De ‘N’ is het zogenoemde escape teken binnen SQL. Dit teken moet je altijd gebruiken als je een eigen locatie gaat opgeven. Je hebt nu een zogenaamde Full back-up gemaakt. Dit houdt in dat de volledige database wordt veiliggesteld. Je kunt ook kiezen voor een differentiële back-up. Bij een differentiële back-up worden alleen de wijzigingen sinds de laatste back-up veilig gesteld.
Versie 4
Blz. 11
Databases / SQL
LET OP Je moet altijd eerst een Full back-up hebben voordat je een differentiële back-up kunt maken.
Het maken van een differentiële back-up moet je als volgt doen:
BACKUP DATABASE Klanten TO DISK = N'Klanten.bak' WITH
DIFFERENTIAL
16.4. Het terugzetten van een back-up Het terugplaatsen van een back-up (=restoren) is een stuk eenvoudiger dan het maken van een back-up. Je moet er alleen voor zorgen dat de gebruiker die de database moet restoren de juiste rechten heeft. Om een database te restoren moet je het onderstaande statement gebruiken.
RESTORE DATABASE Klanten FROM
16.5.
DISK = 'Klanten.bak'
Een back-up strategie
Omdat het maken van een volledige back-up van een database soms veel tijd kan kosten, wordt er in de praktijk vaak gebruik gemaakt van een back-up strategie. Een back-up strategie is niets anders dan een plan van aanpak dat is opgezet om de kans op gegevensverlies zo klein mogelijk te houden. Een van de doelen van een back-up strategie is de gebruikte hoeveelheid tapes of schijfruimte te beperken en toch alle gegevens veilig op te slaan. Welk back-up type je het beste kunt kiezen (Differentieel of Full) is afhankelijk van de omstandigheden. Komt er per dag niet veel nieuwe data bij en is de database klein (= minder dan 100MB), dan is de beste optie altijd een Full back-up één maal per dag. Bij grotere databases of veel nieuwe data per keer, kun je kiezen uit een combinatie van Full en differentieel. Versie 4
Blz. 12
Databases / SQL
Hieronder staan twee voorbeelden van een week strategie. Full back-up Zaterdag
Maandag
Dinsdag
Woensdag
Donderdag
Vrijdag
1
2
3
4
5
6
Bij een crash moet de volgende back-up worden teruggezet. Zaterdag
Maandag
Dinsdag
Woensdag
Donderdag
Vrijdag
1
2
3
4
5
Differential back-up
= Full back-up = Differential back-up Zaterdag
Maandag
Dinsdag
Woensdag
Donderdag
Vrijdag
1
2
3
4
5
6
Bij een crash moet de volgende back-up worden teruggezet. Zaterdag
Maandag
Dinsdag
Woensdag
Donderdag
Vrijdag
5
16.6.
1
2
3
4
Belangrijke aandachtspunten
Hieronder staan nog een aantal belangrijke aandachtspunten waarmee je rekening dient te houden bij het maken en bewaren van back-ups. LET OP Een back-up dient fysiek gescheiden te zijn van de originele gegevens.
Dit zorgt ervoor dat ook bij verlies, diefstal of bijvoorbeeld brand er nog een kopie van de data is. Versie 4
Blz. 13
Databases / SQL
LET OP Een back-up mag NOOIT gemaakt worden op dezelfde media als waarop de vorige back-up gemaakt is.
Als er tijdens het maken van een back-up iets fout gaat, is de kans aanwezig dat er ook wat met de vorige back-up fout gaat. Hierdoor kun je de gegevens van twee dagen kwijt raken. LET OP Registreer wanneer welke back-up gemaakt is.
Elke back-up dient je te registreren zodat iedereen deze snel kan terugvinden in geval van nood. Ook voor jezelf is registratie belangrijk. Standaard wordt er minimaal eenmaal per jaar een back-up gemaakt voor de belastingdienst. Deze back-up dient minimaal 7 jaar bewaard te blijven. Ook na 6 jaar moet je dus eenvoudig nog een tape of schijf kunnen terugvinden waarop de back-up staat.
Versie 4
Blz. 14