Upload
ferdinand-aalderink
View
219
Download
1
Embed Size (px)
Citation preview
DATABASE BACKUP EN RESTORE 101
Crash – Koffie – Restore – Koffie – Held!
Agenda Introductie Backups; waarom eigenlijk? Recovery modellen Help! Mijn datafile is weg? Losgeslagen logfiles... Piecemeal restore, 3 gangen restore De master is dood, leve de master! Q&A
Introductie Robert Hartskeerl 10 jaar ervaring met SQL 2000+ MCITP SQL 2005/2008 DBA en Developer Ervaring met aanverwante MS technologiën Maar ook Linux, MySql en Apache Blog: http://sqlblog.hartskeerl.nl Email: [email protected] Twitter: http://twitter.com/rhartskeerl
Waar gaat het niet over? Backup performance Database snapshots VSS Writers en VDI Microsoft Data Protection Manager Iedere andere 3rd party backup tool Marked transactions Geavanceerde restore technieken (bv. Page
restores)
Backups. Waarom eigenlijk? We leven van informatie die we halen uit
databases. Als we gegevens verliezen, verliezen we ook de informatie. Essentiele informatie die we gebruiken bij onze dagelijkse beslissingen.
Backups. Waarom eigenlijk? Verwijderen van data door virus, hacker
rancuneuze (ex) werknemer. Onbedoeld verwijderen of overschrijven van data. Kwijtraken van opslagmedia. Beheerfouten. Hardware falen. Data corruptie. Brand. Inbraak of vernieling. Natuurgeweld.
Recovery modellen
FULL
• Weinig tot geen dataverlies
• LOG Backups• Page restore• Database
Mirroring• Log Shipping
BULK LOGGED
• Bulk transacties zijn minimaal gelogd
• LOG Backups
SIMPLE
• Geen logbackups
• Dataverlies afhankelijk van backup frequentie
Recovery modellen
INSERT 1000
INSERT 1000
BATCH
UPDATE 1000
INSERT INTO
SELECT
DELETE WITH
TABLOCK
0
500
1000
1500
2000
2500
3000
3500
4000
4500
FULLBULKSIMPLE
Recovery modellen
Minimaal logging gebeurt alleen wanneer: De tabel niet gerepliceerd wordt. TABLOCK wordt gebruikt. Als de tabel geen indexen heeft worden de
data pages minimaal gelogd Als de tabel een geclusterde index heeft en
leeg is wordt er minimaal gelogd.
Help! Mijn datafiles zijn weg FULL: Iedere vrijdag 20:00u DIFF: Iedere dag, behalve vrijdag 20:00u LOG: Ieder uur
FULL LOGs DIFF LOGs CRASH
Dinsdag 08:22u
Help! Mijn datafiles zijn weg
PRIMARY
LOGF:\D
ata
Id SpeakerName SessionTitle SlotDateTime Ed.
1 John D. Session title 1 6-3-2010 10:00 12 John D. Session title 2 6-3-2010 12:00 13 John D. Session title 3 6-3-2010 14:00 14 John D. Session title 4 22-10-2010 10:00 25 John D. Session title 5 22-10-2010 12:00 26 John D. Session title 6 22-10-2010 14:00 27 John D. Session title 7 2-4-2011 10:00 38 John D. Session title 8 2-4-2011 12:00 39 John D. Session title 9 2-4-2011 14:00 3
Help! Mijn datafiles zijn weg
Scenario 1 – Datafiles en logfile zijn weg
FULL LOGDIFFLOG
Dinsdag 08.00
LOG
Demo 1 – Data en logfile restore
Help! Mijn datafiles zijn weg FULL: Iedere vrijdag 20:00u DIFF: Iedere dag, behalve vrijdag 20:00u LOG: Ieder uur
FULL LOGs DIFF LOGs CRASH
Dinsdag 08:22u
Help! Mijn datafiles zijn weg
PRIMARY
G:\
Dat
a
Id SpeakerName SessionTitle SlotDateTime Ed.
1 John D. Session title 1 6-3-2010 10:00 12 John D. Session title 2 6-3-2010 12:00 13 John D. Session title 3 6-3-2010 14:00 14 John D. Session title 4 22-10-2010 10:00 25 John D. Session title 5 22-10-2010 12:00 26 John D. Session title 6 22-10-2010 14:00 27 John D. Session title 7 2-4-2011 10:00 38 John D. Session title 8 2-4-2011 12:00 39 John D. Session title 9 2-4-2011 14:00 3LOG
H:\
Dat
a
Help! Mijn datafiles zijn weg
Scenario 2 – Datafiles zijn weg
FULL LOGDIFFLOG
Dinsdag 08.22
LOG
BACKUP TAIL LOG
Demo 2 – Datafile restore
Losgeslagen logfiles...
Losgeslagen logfiles
VLF1 VLF2 VLF3 VLF4
Een logfile bestaat uit meerdere Virtual Log Files (VLF)Een VLF kan inactief (0) zijn of actief (2)
INSERT INTO dbo.t1 (c1, c2) values (default);BACKUP LOG sqlzat3 TO DISK = ‘sqlzat3_log.bak
VLF5 VLF6 VLF7 VLF8
Losgeslagen logfiles... Een logfile bestaat uit meerdere Virtual Log
Files (VLF) Een logfile heeft actieve en niet actieve VLFs Niet actieve VLFs worden opnieuw gebruikt Een logfile groeit alleen als er geen niet-actieve
VLFs meer zijn Een actieve VLF wordt inactief bij een
CHECKPOINT onder het SIMPLE recoverymodel en bij een LOG BACKUP bij het FULL recoverymodel
Demo 3 – Logfile management
Piecemeal restore Online gedeeltelijke restore in Enterprise Ed. Ideaal voor bijvoorbeeld grote archief
databases. Belangrijkste data is snel online en op de
achtergrond wordt de restore verder uitgevoerd.
CURRENTPRIMARY ARCHIVE LOG
Piecemeal restore
PRIMARY
LOG
N:\
Dat
a
Id SpeakerName SessionTitle SlotDateTime Ed.
1 John D. Session title 1 6-3-2010 10:00 12 John D. Session title 2 6-3-2010 12:00 13 John D. Session title 3 6-3-2010 14:00 14 John D. Session title 4 22-10-2010 10:00 25 John D. Session title 5 22-10-2010 12:00 26 John D. Session title 6 22-10-2010 14:00 27 John D. Session title 7 2-4-2011 10:00 38 John D. Session title 8 2-4-2011 12:00 39 John D. Session title 9 2-4-2011 14:00 3
CURRENTEd. 3+
ARCHIVEEd. 1-2
Piecemeal Restore
• RESTORE db FILEGROUP=‘Primary’ WITH PARTIAL, NORECOVERY
Eerst moet de Primary filegroup online en
aangeven dat we een Partial restore gaan doen
• RESTORE db FILEGROUP=‘FG_A’ WITH NORECOVERY
Dan de volgen de overige filegroups in volgorde van
belangrijkheid.
• RESTORE LOG… en RESTORE WITH RECOVERY
Na iedere sequence moeten de logfiles weer
gerestored worden om de database online te brengen
Demo 4 – Piecemeal restore
De master is dood, leve de master!
Het restoren van systeem databases is niet anders dan normale databases.MODEL en MSDB kunnen we restoren net als
normale databasesBij de MASTER database wordt het iets
spannender.○ Als SQL Server niet meer start, eerst een REBUILD.○ De MASTER database kan alleen gerestored worden
als SQL in SINGLE USER mode gestart is.○ Daarna is het net een normale database. Ik zei ook
“iets” spannender.
Demo 5 – Restore master
Q&A Backing Up and Restoring Databases in SQL
Server Blog Paul S. Randal - Backup/Restore SQL Cat Team – Backup performance
compression SQL Cat Team - Backup performance VLDB o
ver netwerk whitepaper