Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Denna artikel beskriver fördelarna med att säkerhetskopiera SQL Server-databaser, introducerar grundläggande villkor för säkerhetskopiering och återställning samt täcker säkerhetskopierings- och återställningsstrategier samt säkerhetsaspekter för SQL Server.
Anmärkning
Den här artikeln introducerar SQL Server-säkerhetskopior. Specifika steg för att säkerhetskopiera SQL Server-databaser finns i Skapa säkerhetskopior.
SQL Server-backup- och återställningskomponenten utgör ett viktigt skydd för kritisk data som lagras i dina SQL Server-databaser. För att minimera risken för katastrofal dataförlust, säkerhetskopiera dina databaser regelbundet för att bevara ändringar i dina data. En välplanerad säkerhetskopierings- och återställningsstrategi hjälper till att skydda databaser mot dataförlust orsakad av många typer av fel. Testa din strategi genom att återställa en uppsättning säkerhetskopior och sedan återställa din databas, så att du är redo att reagera på en katastrof.
Förutom lokal lagring stödjer SQL Server även säkerhetskopiering till och återställning från Azure Blob Storage. För mer information, se SQL Server backup and restore with Azure Blob Storage. För databasfiler som lagras med Azure Blob Storage ger SQL Server 2016 (13.x) möjlighet att använda Azure-ögonblicksbilder för nästan omedelbar säkerhetskopiering och snabbare återställningar. Mer information finns i Säkerhetskopiering av ögonblicksbilder av databasfiler i Azure. Azure erbjuder även en säkerhetskopieringslösning i företagsklass för SQL Server som körs på virtuella Azure-datorer. En fullständigt hanterad säkerhetskopieringslösning som stöder Always On availability groups, långtidslagring, återställning till en viss tidpunkt samt central hantering och övervakning. Mer information finns i Om SQL Server-säkerhetskopiering på virtuella Azure-datorer.
Varför säkerhetskopiera?
Att säkerhetskopiera dina SQL Server-databaser, köra teståterställningsprocedurer på dina säkerhetskopior och lagra kopior av säkerhetskopior på en säker, extern plats skyddar dig från potentiellt katastrofal dataförlust. Säkerhetskopiering är det enda sättet att skydda dina data.
Med giltiga säkerhetskopior av en databas kan du återställa dina data från många fel, till exempel:
Fel på mediet.
Användarfel, till exempel att ta bort en tabell av misstag.
Maskinvarufel, till exempel en skadad diskenhet eller permanent förlust av en server.
Naturkatastrofer. Genom att använda SQL Server Backup till Azure Blob Storage kan du skapa en extern backup i en annan region än din lokala plats, för att använda om en naturkatastrof skulle påverka din lokala plats.
Dessutom är säkerhetskopior av en databas användbara för rutinmässiga administrativa ändamål, till exempel att kopiera en databas från en server till en annan, konfigurera AlwaysOn-tillgänglighetsgrupper eller databasspegling och arkivering.
Ordlista över säkerhetskopieringsvillkor
| Term | Definition |
|---|---|
| säkerhetskopiera[verb] | Processen att skapa en backup[substantiv] genom att kopiera dataposter från en SQL Server-databas eller loggposter från dess transaktionslogg. |
| backup[substantiv] | En kopia av data som du kan använda för att återställa och återskapa data efter ett fel. Säkerhetskopior av en databas kan också användas för att återställa en kopia av databasen till en ny plats. |
| Backup-enhet | En disk eller bandenhet som SQL Server-säkerhetskopior skrivs till och från vilka de kan återställas. SQL Server-säkerhetskopior kan också skrivas till en Azure Blob Storage och URL-format används för att ange målet och namnet på säkerhetskopieringsfilen. För mer information, se SQL Server backup and restore with Azure Blob Storage. |
| säkerhetskopieringsmedia | Ett eller flera band eller diskfiler som en eller flera säkerhetskopior har skrivits till. |
| säkerhetskopiering av data | En säkerhetskopia av data i en fullständig databas (en databassäkerhetskopia), en partiell databas (en partiell säkerhetskopia) eller en uppsättning datafiler eller filgrupper (en filsäkerhetskopia). |
| databassäkerhetskopiering | En säkerhetskopia av en databas. Fullständiga databassäkerhetskopior representerar hela databasen när säkerhetskopieringen slutfördes. Differentiella databassäkerhetskopior innehåller endast ändringar som gjorts i databasen sedan den senaste fullständiga databassäkerhetskopian. |
| differentiell säkerhetskopiering | En datasäkerhetskopia som baseras på den senaste fullständiga säkerhetskopian av en fullständig eller partiell databas eller en uppsättning datafiler eller filgrupper (differentiell bas) och som endast innehåller de data som har ändrats sedan basen. |
| fullständig säkerhetskopiering | En datasäkerhetskopia som innehåller alla data i en specifik databas eller uppsättning filgrupper eller filer, och även tillräckligt med logg för att kunna återställa dessa data. |
| loggsäkerhetskopiering | En säkerhetskopia av transaktionsloggar som innehåller alla loggposter som inte säkerhetskopierades i en tidigare loggsäkerhetskopia (fullständig återställningsmodell). |
| recover | Så här returnerar du en databas till ett stabilt och konsekvent tillstånd. |
| återhämtning | En fas av start av databasen eller av en återställning med återhämtning som försätter databasen i ett transaktionskonsistent tillstånd. |
| återställningsmodell | En databasegenskap som styr transaktionsloggunderhåll på en databas. Det finns tre återställningsmodeller: enkel, fullständig och bulkloggad. En databass återställningsmodell avgör dess krav på säkerhetskopiering och återställning. |
| återställa | En flerfasprocess som kopierar alla data och loggsidor från en angiven SQL Server-säkerhetskopia till en angiven databas och sedan vidarebefordrar alla transaktioner som loggas i säkerhetskopian genom att använda loggade ändringar för att föra data framåt i tid. |
Strategier för säkerhetskopiering och återställning
Du måste anpassa backup- och återställningsstrategier till din miljö och tillgängliga resurser. Tillförlitlig återhämtning kräver en backup- och återställningsstrategi. En väl utformad strategi balanserar affärsbehoven för maximal datatillgänglighet och minimal dataförlust mot kostnaden för att underhålla och lagra säkerhetskopior.
En strategi för säkerhetskopiering och återställning innehåller en säkerhetskopieringsdel och en återställningsdel. Säkerhetskopieringsdelen definierar typ och frekvens av backuper, typen och hastigheten på den hårdvara de kräver, hur man testar backuper och var och hur backupmedia ska lagras (inklusive säkerhetsaspekter). Återställningsdelen definierar vem som ansvarar för att utföra återställningar, hur man utför återställningar för att uppnå dina mål för databastillgänglighet och minimal dataförlust, samt hur man testar återställningar.
En effektiv säkerhetskopierings- och återställningsstrategi kräver noggrann planering, implementering och testning. Testning krävs. Du har ingen backupstrategi förrän du framgångsrikt återställt backuper i varje kombination som ingår i din återställningsstrategi och testat varje återställd databas för fysisk konsistens. Överväg flera faktorer, inklusive:
Organisationens mål för dina produktionsdatabaser, särskilt kraven på tillgänglighet och skydd av data från förlust eller skada.
Varje databass karaktär: dess storlek, dess användningsmönster, innehållets art, kraven för dess data och så vidare.
Begränsningar för resurser, till exempel maskinvara, personal, utrymme för lagring av säkerhetskopieringsmedia, den fysiska säkerheten för det lagrade mediet och så vidare.
Rekommendationer för bästa praxis
Ge inte konton som gör backup- eller återställningsoperationer fler privilegier än nödvändigt. För mer information, se säkerhetskopiering och återställning för specifika behörighetsdetaljer. Kryptera databasbackuper och, om möjligt, komprimera dem.
Använd konsekventa filtillägg för att göra säkerhetskopior lättare att identifiera och hantera. SQL Server kräver eller upprätthåller inte dessa tillägg, men konsekvens hjälper till med operativa uppgifter som att konfigurera antivirusundantag för säkerhetskopieringsfiler. Mer information finns i Konfigurera antivirusprogram att fungera med SQL Server.
- Databasbackupfiler bör ha filändelsen
.BAK. - Säkerhetskopior av loggfiler bör ha filtillägget
.TRN.
Använd separat lagring
Placera dina databasbackuper på en separat fysisk plats eller på en separat enhet från databasfilerna. När den fysiska enheten som lagrar dina databaser går sönder eller kraschar, beror återställningen på din förmåga att komma åt den separata enheten eller fjärrenheten som lagrade säkerhetskopiorna. Du kan skapa flera logiska volymer eller partitioner från samma fysiska disk. Gå noggrant igenom diskpartitionen och de logiska volymlayouterna innan du väljer en lagringsplats för säkerhetskopiorna.
Välj lämplig återställningsmodell
Säkerhetskopierings- och återställningsåtgärder sker inom ramen för en återställningsmodell. En återställningsmodell är en databasegenskap som styr hur transaktionsloggen hanteras. Därför bestämmer databasens återställningsmodell vilka typer av säkerhetskopierings- och återställningsscenarier databasen stödjer, samt storleken på dess transaktionslogg-backuper. Vanligtvis använder en databas antingen den enkla återställningsmodellen eller den fullständiga återställningsmodellen. Du kan komplettera den fullständiga återställningsmodellen genom att växla till den massloggade återställningsmodellen innan massoperationer. En introduktion till dessa återställningsmodeller och hur de påverkar hantering av transaktionsloggar finns i transaktionsloggen.
Det bästa valet av databasåterställningsmodell beror på dina affärsbehov. Använd den enkla återställningsmodellen för att undvika hantering av transaktionsloggar och förenkla säkerhetskopiering och återställning. Använd den fullständiga återställningsmodellen för att minimera exponeringen av arbetsförluster på bekostnad av administrativa kostnader. För att minimera effekten på loggstorleken under bulkloggade operationer samtidigt som man tillåter återställning av dessa operationer, använd bulkloggad återställningsmodell. För information om effekten av återställningsmodeller på säkerhetskopiering och återställning, se Backup overview (SQL Server).
Utforma din strategi för säkerhetskopiering
När du har valt en återställningsmodell som uppfyller dina affärsbehov för en specifik databas, planera och implementera en matchande backupstrategi. Den bästa backupstrategin beror på flera faktorer. Följande faktorer är särskilt viktiga:
Hur många timmar per dag behöver applikationer för att komma åt databasen?
Om det finns en förutsägbar lågtrafikperiod bör du boka fullständiga databasbackuper för den perioden.
Hur ofta kommer det sannolikt att ske ändringar och uppdateringar?
Om förändringarna är frekventa, överväg:
Under den enkla återställningsmodellen kan du schemalägga differentierade säkerhetskopior mellan fullständiga databasbackuper. En differentiell säkerhetskopia samlar bara in ändringarna sedan den senaste fullständiga databassäkerhetskopian.
Under full recovery-modellen kan du schemalägga frekventa loggbackuper. Schemaläggning av differentiella säkerhetskopior mellan fullständiga säkerhetskopior kan minska återställningstiden genom att minska antalet loggsäkerhetskopior som du måste återställa när du har återställt data.
Är förändringar sannolika att ske endast i en liten del av databasen, eller i en stor del?
För en stor databas där ändringarna är koncentrerade till en delmängd av filerna eller filgrupperna kan partiella eller fullständiga filkopior vara användbara. För mer information, se Delvisa säkerhetskopior (SQL Server) och Fullständiga filsäkerhetskopior (SQL Server).
Hur mycket diskutrymme kräver en fullständig databasbackup?
Hur långt tidigare behöver företaget underhålla säkerhetskopior?
Se till att du har ett korrekt backup-schema som matchar applikationens behov och affärsbehov. När backuper åldras ökar risken för dataförlust om du inte har ett sätt att regenerera all data fram till felpunkten. Innan du gör dig av med gamla säkerhetskopior på grund av lagringsbegränsningar, fundera på om du behöver återställa så långt tillbaka i tiden.
Beräkna storleken på en fullständig databassäkerhetskopia
Innan du implementerar en backup- och återställningsstrategi, uppskatta hur mycket diskutrymme en fullständig databasbackup använder. Säkerhetskopieringsåtgärden kopierar data i databasen till säkerhetskopian. Backupen innehåller endast den faktiska datan i databasen, inte något oanvänt utrymme. Därför är säkerhetskopieringen vanligtvis mindre än själva databasen. För att uppskatta storleken på en fullständig databasbackup, använd sp_spaceused systemlagrad procedur. Mer information finns i sp_spaceused.
Schemalägga säkerhetskopieringar
En backupoperation har minimal effekt på att köra transaktioner, så du kan köra backuper under vanliga operationer. Du kan utföra en SQL Server-säkerhetskopiering med minimal effekt på produktionsarbetsbelastningar.
Anmärkning
Information om samtidighetsbegränsningar under säkerhetskopiering finns i Översikt över säkerhetskopiering (SQL Server).
När du har bestämt vilka typer av säkerhetskopior du behöver och hur ofta du ska utföra varje typ, schemalägg regelbundna säkerhetskopior som en del av en databasunderhållsplan. Information om underhållsplaner och hur du skapar dem för säkerhetskopior av databaser och loggsäkerhetskopior finns i Använda guiden Underhållsplan.
Testa dina säkerhetskopior
Du har ingen återställningsstrategi förrän du har testat dina säkerhetskopior. Testa noggrant din backupstrategi för varje databas genom att återställa en kopia av databasen till ett testsystem. Du måste testa att återställa alla typer av säkerhetskopior som du tänker använda. När du har återställt säkerhetskopian kör du DBCC CHECKDB mot databasen för att kontrollera att säkerhetskopiemediet inte är skadat.
Kontrollera mediestabilitet och konsekvens
Använd verifieringsalternativen som tillhandahålls av backupverktygen (BACKUPT-SQL-kommando, SQL Server Maintenance Plans, din backup-mjukvara eller lösning, och så vidare). För ett exempel, se RESTORE Påståenden - VERIFYONLY.
Använd avancerade funktioner som BACKUP CHECKSUM att upptäcka problem med själva backup-mediet. Mer information finns i Possible Media Errors During Backup and Restore (SQL Server).
Strategi för dokumentsäkerhetskopiering/återställning
Dokumentera dina backup- och återställningsprocedurer, och behåll en kopia av dokumentationen i din runbook.
Du bör också underhålla en operationsmanual för varje databas. Denna operationsmanual bör dokumentera platsen för säkerhetskopiorna, säkerhetskopians enhetsnamn (om några) och den tid som krävs för att återställa testbackuperna.
Säkerhetsrisk vid återställning av säkerhetskopior från ej betrodda källor
I det här avsnittet beskrivs säkerhetsrisken som är associerad med återställning av säkerhetskopior från ej betrodda källor till valfri SQL Server-miljö, inklusive lokalt, Azure SQL Managed Instance, SQL Server på virtuella Azure-datorer (VM) och andra miljöer.
Varför detta är viktigt
Återställning av SQL-säkerhetskopieringsfiler (.bak) medför en potentiell risk om säkerhetskopian kommer från en källa som inte är betrodd. Säkerhetsrisken förvärras ytterligare när en SQL Server-miljö har flera instanser, eftersom den förstärker hotområdet. Även om säkerhetskopior som ligger inom en betrodd gräns inte utgör något säkerhetsproblem kan återställning av en skadlig säkerhetskopia äventyra säkerheten i hela miljön.
En skadlig .bak fil kan:
- Ta över hela SQL Server-instansen.
- Höja behörigheter och få obehörig åtkomst till underliggande värdmaskinen eller den virtuella datorn.
Den här attacken inträffar innan några valideringsskript eller säkerhetskontroller kan utföras, vilket gör det extremt farligt. Att återställa en obetrodd säkerhetskopia motsvarar att köra program som inte är betrodda på en kritisk server eller virtuell dator och införa godtycklig kodkörning i din miljö.
Metodtips
Följ dessa metodtips för säkerhetskopieringssäkerhet för att minska hotet mot dina SQL Server-miljöer:
- Behandla återställning av säkerhetskopior som en högriskåtgärd.
- Minska området för hottjänsten med hjälp av isolerade instanser.
- Tillåt endast betrodda säkerhetskopior: Återställ aldrig säkerhetskopior från okända eller externa källor.
- Tillåt endast säkerhetskopior som har legat inom en betrodd gräns: se till att säkerhetskopior kommer från den betrodda gränsen.
- Kringgå inte säkerhetskontroller för enkelhetens skull.
- Aktivera granskning på servernivå för att samla in säkerhetskopierings- och återställningshändelser och minimera granskningsundandragande.
Övervaka förloppet med XEvent
Säkerhetskopierings- och återställningsoperationer kan ta lång tid på grund av databasens storlek och komplexiteten i de inblandade operationerna. När problem uppstår med någon av operationerna, använd den utökade händelsen backup_restore_progress_trace för att övervaka framstegen live. Mer information om utökade händelser finns i Översikt över utökade händelser.
Varning
Den utökade backup_restore_progress_trace händelsen kan orsaka prestandaproblem och förbruka mycket diskutrymme. Använd det under korta perioder, var försiktig och testa noggrant innan du använder det i produktion.
-- Create the backup_restore_progress_trace extended event session
CREATE EVENT SESSION [BackupRestoreTrace] ON SERVER
ADD EVENT sqlserver.backup_restore_progress_trace
ADD TARGET package0.event_file (SET filename = N'BackupRestoreTrace')
WITH
(
MAX_MEMORY = 4096 KB,
EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY = 5 SECONDS,
MAX_EVENT_SIZE = 0 KB,
MEMORY_PARTITION_MODE = NONE,
TRACK_CAUSALITY = OFF,
STARTUP_STATE = OFF
);
GO
-- Start the event session
ALTER EVENT SESSION [BackupRestoreTrace] ON SERVER
STATE = START;
GO
-- Stop the event session
ALTER EVENT SESSION [BackupRestoreTrace] ON SERVER
STATE = STOP;
GO
Exempelutdata från Extended Event
Mer om säkerhetskopieringsuppgifter
- Skapa en underhållsplan
- Skapa ett SQL Server Agent-jobb i SQL Server Management Studio
- Konfigurera schema för SQL Server Agent-jobb
Arbeta med säkerhetskopieringsenheter och säkerhetskopieringsmedia
- Definiera en logisk säkerhetskopieringsenhet för en diskfil (SQL Server)
- Definiera en logisk säkerhetskopieringsenhet för en bandenhet (SQL Server)
- Ange ett mål för disk- eller bandsäkerhetskopiering (SQL Server)
- Ta bort en säkerhetskopieringsenhet (SQL Server)
- Ange förfallodatumet för en säkerhetskopia (SQL Server)
- Visa innehållet i ett säkerhetskopieringsband eller en fil (SQL Server)
- Visa data och loggfiler i en säkerhetskopieringsuppsättning (SQL Server)
- Visa egenskaper och innehåll för en logisk säkerhetskopieringsenhet (SQL Server)
- Återställa en säkerhetskopia från en enhet (SQL Server)
Skapa säkerhetskopior
För partiella säkerhetskopior eller säkerhetskopior av typen copy-only använder du Transact-SQL-instruktionen BACKUP med alternativet PARTIAL respektive COPY_ONLY.
Använda SSMS
- Skapa en fullständig säkerhetskopia av databasen
- Säkerhetskopiera en transaktionslogg
- Säkerhetskopiera filer och filgrupper
- Skapa en differentiell databassäkerhetskopia (SQL Server)
Använda T-SQL
- Använd Resource Governor för att begränsa CPU-användningen genom backup-komprimering
- Säkerhetskopiera transaktionsloggen när databasen är skadad (SQL Server)
- Aktivera eller inaktivera kontrollsummor för säkerhetskopiering under säkerhetskopiering eller återställning (SQL Server)
- Ange säkerhetskopiering eller återställning för att fortsätta eller stoppa efter fel
Återställa datasäkerhetskopior
Använda SSMS
- Återställa en databassäkerhetskopia med hjälp av SSMS
- Återställa en databas till en ny plats (SQL Server)
- Återställa en differentiell databassäkerhetskopia (SQL Server)
- Återställ filer och filgrupper (SQL Server)
Använda T-SQL
- Återställ en databasbackup enligt den enkla återställningsmodellen
- Återställa databasen till felpunkten – fullständig återställning
- Återställ filer och filgrupper över befintliga filer (SQL Server)
- Återställ filer till en ny plats (SQL Server)
- Återställ huvuddatabasen
Återställa transaktionsloggar (fullständig återställningsmodell)
Använda SSMS
- Återställa en databas till en markerad transaktion (SQL Server Management Studio)
- Återställa en säkerhetskopia av transaktionsloggen (SQL Server)
- Återställ en SQL Server-databas till en viss tidpunkt (full återställningsmodell)
Använda T-SQL
- Återställ en SQL Server-databas till en viss tidpunkt (full återställningsmodell)
- Starta om en avbruten återställningsåtgärd
- Återställ en databas utan att återställa data
Relaterat innehåll
- Översikt över säkerhetskopiering (SQL Server)
- Översikt över återställning och återhämtning (SQL Server)
- BACKUP (Transact-SQL)
- RESTORE Instruktioner (Transact-SQL)
- Säkerhetskopiering och återställning av Analysis Services-databaser
- Säkerhetskopiera och återställ fulltextkataloger och index
- Säkerhetskopiera och återställ replikerade databaser
- Transaktionsloggen
- Återställningsmodeller (SQL Server)
- Medieuppsättningar, mediefamiljer och säkerhetskopieringsuppsättningar (SQL Server)