Dela via


Säkerhetskopiera filer och filgrupper

gäller för:SQL Server

Det här avsnittet beskriver hur du säkerhetskopierar filer och filgrupper i SQL Server med hjälp av SQL Server Management Studio, Transact-SQL eller PowerShell. När databasstorleken och prestandakraven gör en fullständig databassäkerhetskopia opraktisk kan du skapa en filsäkerhetskopia i stället. En filsäkerhetskopiering innehåller alla data i en eller flera filer (eller filgrupper).

Mer information om filsäkerhetskopior finns i Fullständiga filsäkerhetskopior (SQL Server) och Differentiella säkerhetskopieringar (SQL Server).

Innan du börjar

Begränsningar och restriktioner

  • BACKUP-instruktionen är inte tillåten i en explicit eller implicit transaktion.

  • Under den enkla återställningsmodellen måste alla läs-/skrivfiler säkerhetskopieras tillsammans. Detta säkerställer att databasen kan återställas till en konsekvent tidpunkt. I stället för att individuellt ange varje läs-/skrivfil eller filgrupp använder du alternativet READ_WRITE_FILEGROUPS. Det här alternativet säkerhetskopierar alla läs-/skrivfilgrupper i databasen. En säkerhetskopia som skapas genom att ange READ_WRITE_FILEGROUPS kallas för en partiell säkerhetskopiering, se partiella säkerhetskopieringar (SQL Server).

Mer information om begränsningar och restriktioner finns i Översikt över säkerhetskopiering (SQL Server).

Rekommendationer

Som standard lägger varje lyckad säkerhetskopiering till en post i SQL Server-felloggen och i systemhändelseloggen. Om du säkerhetskopierar loggen mycket ofta ackumuleras dessa lyckade meddelanden snabbt, vilket resulterar i enorma felloggar som kan göra det svårt att hitta andra meddelanden. I sådana fall kan du utelämna dessa loggposter med hjälp av spårningsflagga 3226 om inget av dina skript är beroende av dessa poster, se Spårningsflaggor (Transact-SQL).

Behörigheter

BACKUP DATABASE och BACKUP LOG är behörigheter som standard för medlemmar i den fördefinierade serverrollen sysadmin samt de fördefinierade databasrollerna db_owner och db_backupoperator.

Ägarskaps- och behörighetsproblem på säkerhetskopieringsenhetens fysiska fil kan störa en säkerhetskopieringsåtgärd. SQL Server måste kunna läsa och skriva till enheten. kontot där SQL Server-tjänsten körs måste ha skrivbehörighet. Men sp_addumpdevice, som lägger till en post för en säkerhetskopieringsenhet i systemtabellerna, kontrollerar inte filåtkomstbehörigheter. Sådana problem på säkerhetskopieringsenhetens fysiska fil kanske inte visas förrän den fysiska resursen används när säkerhetskopieringen eller återställningen görs.

Använda SQL Server Management Studio

  1. När du har anslutit till rätt instans av SQL Server Database Engine klickar du på servernamnet i Object Explorer för att expandera serverträdet.

  2. Expandera Databaseroch välj antingen en användardatabas eller expandera systemdatabaser och välj en systemdatabas, beroende på databasen.

  3. Högerklicka på databasen, peka på Uppgifteroch klicka sedan på Säkerhetskopiera. Dialogrutan Säkerhetskopiera databas visas.

  4. Kontrollera databasnamnet i listan Database. Du kan också välja en annan databas i listan.

  5. I listan Säkerhetskopieringstyp väljer du Fullständig eller Differentiell.

  6. Klicka på alternativet säkerhetskopieringskomponent, Fil och filgrupper.

  7. I dialogrutan Välj filer och filgrupper väljer du de filer och filgrupper som du vill säkerhetskopiera. Du kan markera en eller flera enskilda filer eller markera kryssrutan för en filgrupp för att automatiskt markera alla filer i den filgruppen.

  8. Acceptera antingen standardnamnet för säkerhetskopieringsuppsättningen som föreslås i textrutan Namn eller ange ett annat namn för säkerhetskopieringsuppsättningen.

  9. (valfritt) I textrutan Beskrivning anger du en beskrivning av säkerhetskopieringsuppsättningen.

  10. Ange när säkerhetskopieringsuppsättningen ska upphöra att gälla:

    • Om du vill att säkerhetskopieringsuppsättningen ska upphöra att gälla efter ett visst antal dagar klickar du på Efter (standardalternativet) och anger antalet dagar efter att uppsättningen har skapats som uppsättningen upphör att gälla. Det här värdet kan vara mellan 0 och 99999 dagar. värdet 0 dagar innebär att säkerhetskopieringsuppsättningen aldrig upphör att gälla.

      Standardvärdet anges i alternativet Standardlagring av säkerhetskopieringsmedia (i dagar) i dialogrutan Serveregenskaper (databasinställningar sidan). Om du vill komma åt det här alternativet högerklickar du på servernamnet i Object Explorer och väljer egenskaper. välj sedan sidan Databasinställningar.

    • Om du vill att säkerhetskopieringsuppsättningen ska upphöra att gälla ett visst datum klickar du på och anger det datum då uppsättningen upphör att gälla.

  11. Välj typ av säkerhetskopieringsmål genom att klicka på Disk eller Band. Om du vill välja sökvägar för upp till 64 disk- eller bandenheter som innehåller en enda medieuppsättning klickar du på Lägg till. De valda sökvägarna visas i -listan för backup till.

    Obs.

    Om du vill ta bort ett mål för säkerhetskopiering väljer du det och klickar på Ta bort. Om du vill visa innehållet i ett mål för säkerhetskopiering markerar du det och klickar på Innehåll.

  12. Om du vill visa eller välja avancerade alternativ klickar du på Alternativ i fönstret Välj en sida.

  13. Välj alternativet Skriv över Media genom att klicka på något av följande:

    • Säkerhetskopiera till den befintliga medieuppsättningen

      För det här alternativet klickar du antingen på Lägg till i den befintliga säkerhetskopieringsuppsättningen eller Skriva över alla befintliga säkerhetskopieringsuppsättningar.

      Information om hur du säkerhetskopierar till en befintlig medieuppsättning finns i Media Sets, Media Families och Backup Sets (SQL Server).

      • (valfritt) Välj Kontrollera mediauppsättningens namn och förfallodatum för säkerhetskopieringsuppsättningen för att göra så att säkerhetskopieringsåtgärden verifierar datum och tid då medieuppsättningen och säkerhetskopieringsuppsättningen upphör att gälla.

      • (valfritt) Ange ett namn i textrutan Media set name. Om inget namn anges skapas en medieuppsättning med ett tomt namn. Om du anger ett mediauppsättningsnamn kontrolleras mediet (band eller disk) för att se om det faktiska namnet matchar det namn som du anger här.

      Om du lämnar medienamnet tomt och markerar kryssrutan för att kontrollera det mot mediet, indikeras framgång om medienamnet på mediet också är tomt.

    • Säkerhetskopiera till en ny medieuppsättning och radera alla befintliga säkerhetskopieringsuppsättningar

      För det här alternativet anger du ett namn i textrutan Nytt medieuppsättningsnamn och kan också beskriva medieuppsättningen i Beskrivning av ny medieuppsättning textruta.

      Mer information om hur du skapar en ny medieuppsättning finns i Media Sets, Media Families och Backup Sets (SQL Server).

  14. (valfritt) I avsnittet Reliability kontrollerar du:

  15. Om du säkerhetskopierar till en bandenhet (enligt beskrivningen i avsnittet Mål på sidan Allmänt) är alternativet Ta bort bandet efter säkerhetskopiering aktivt. Genom att klicka på det här alternativet aktiveras alternativet Spola tillbaka bandet innan avlastning.

    Not

    Alternativen i avsnittet Transaktionslogg är inaktiva om du inte säkerhetskopierar en transaktionslogg (som anges i avsnittet Säkerhetskopieringstyp på sidan Allmänt).

  16. SQL Server 2008 (10.0.x) Enterprise och senare versioner stöder säkerhetskopieringskomprimering. Som standard beror det på värdet av serverkonfigurationsalternativet för säkerhetskopieringskomprimering om en säkerhetskopia komprimeras eller inte. Oavsett den aktuella standardinställningen på servernivå kan du dock komprimera en säkerhetskopia genom att kontrollera Komprimera säkerhetskopiering, och du kan förhindra komprimering genom att kontrollera Komprimera inte säkerhetskopieringen.

    Om du vill visa den aktuella standardinställningen för säkerhetskopieringskomprimering, se Visa eller konfigurera standardinställningen för säkerhetskopieringskomprimering i serverkonfigurationsalternativet.

Använda Transact-SQL

Om du vill skapa en fil- eller filgruppssäkerhetskopia använder du instruktionen BACKUP DATABASE <file_or_filegroup>. Minimalt måste den här instruktionen ange följande:

  • Databasnamnet.

  • En FILE- eller FILEGROUP-sats för varje fil eller filgrupp.

  • Den säkerhetskopieringsenhet där den fullständiga säkerhetskopian kommer att skrivas.

Den grundläggande Transact-SQL syntaxen för en filsäkerhetskopiering är:

Säkerhetskopiera databasen

{ FIL =logical_file_name | FILDGRUPP =logical_filegroup_name } [ ,...f ]

ATT backup_device [ ,...n ]

[ MED med_alternativ [ ,...o ] ] ;

Alternativ Beskrivning
databas Den databas från vilken transaktionsloggen, den partiella databasen eller hela databasen säkerhetskopieras.
FIL =logisk_filnamn Anger det logiska namnet på en fil som ska ingå i filsäkerhetskopian.
FILEGROUP =logical_filegroup_name Anger det logiska namnet på en filgrupp som ska ingå i filsäkerhetskopian. I den enkla återställningsmodellen är säkerhetskopiering av filgrupper endast tillåten för en skrivskyddad filgrupp.
[ ,...f ] Är en platshållare som anger att flera filer och filgrupper kan anges. Antalet filer eller filgrupper är obegränsat.
backup_device [ ,...n ] Anger en lista med mellan 1 och 64 säkerhetskopieringsenheter som ska användas för säkerhetskopieringen. Du kan ange en fysisk säkerhetskopieringsenhet eller ange en motsvarande logisk säkerhetskopieringsenhet om den redan har definierats. Om du vill ange en fysisk säkerhetskopieringsenhet använder du alternativet DISK eller BAND:

{ DISK | TAPE } =physical_backup_device_name

Mer information finns i Backup Devices (SQL Server).
MED med_alternativ [ ,...och ] Du kan också ange ett eller flera ytterligare alternativ, till exempel DIFFERENTIAL. En differentiell filsäkerhetskopia kräver en fullständig säkerhetskopia som bas.

Mer information finns i Skapa en differentiell databassäkerhetskopia (SQL Server).

Under den fullständiga återställningsmodellen måste du också säkerhetskopiera transaktionsloggen. Om du vill använda en fullständig uppsättning fullständiga filsäkerhetskopior för att återställa en databas måste du också ha tillräckligt med loggsäkerhetskopior för att omfatta alla filsäkerhetskopior, från början av den första filsäkerhetskopian.

Mer information finns i Säkerhetskopiera en transaktionslogg (SQL Server).

Exempel

I följande exempel säkerhetskopieras en eller flera filer av de sekundära filgrupperna i Sales-databasen. Den här databasen använder den fullständiga återställningsmodellen och innehåller följande sekundära filgrupper:

  • En filgrupp med namnet SalesGroup1 som har filerna SGrp1Fi1 och SGrp1Fi2.

  • En filgrupp med namnet SalesGroup2 som har filerna SGrp2Fi1 och SGrp2Fi2.

A. Skapa en filsäkerhetskopia av två filer

I följande exempel skapas en differentiell filsäkerhetskopia av endast den SGrp1Fi2 filen för SalesGroup1 och SGrp2Fi2-filen i SalesGroup2-filgruppen.

--Backup the files in the SalesGroup1 secondary filegroup.  
BACKUP DATABASE Sales  
   FILE = 'SGrp1Fi2',   
   FILE = 'SGrp2Fi2'   
   TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck';  
GO  

B. Skapa en fullständig filsäkerhetskopia av de sekundära filgrupperna

I följande exempel skapas en fullständig filsäkerhetskopia av varje fil i båda de sekundära filgrupperna.

--Back up the files in SalesGroup1.  
BACKUP DATABASE Sales  
   FILEGROUP = 'SalesGroup1',  
   FILEGROUP = 'SalesGroup2'  
   TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck';  
GO  

C. Skapa en differentiell filsäkerhetskopia av de sekundära filgrupperna

I följande exempel skapas en differentiell filsäkerhetskopia av varje fil i båda de sekundära filgrupperna.

--Back up the files in SalesGroup1.  
BACKUP DATABASE Sales  
   FILEGROUP = 'SalesGroup1',  
   FILEGROUP = 'SalesGroup2'  
   TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'  
   WITH   
      DIFFERENTIAL;  
GO  

Använda PowerShell

Konfigurera och använda SQL Server PowerShell-providern.

Använd cmdleten Backup-SqlDatabase och ange Files för värdet för parametern -BackupAction. Ange också någon av följande parametrar:

  • Om du vill säkerhetskopiera en specifik fil anger du parametern -DatabaseFileString, där String är en eller flera databasfiler som ska säkerhetskopieras.

  • Om du vill säkerhetskopiera alla filer i en viss filgrupp anger du parametern -DatabaseFileGroupString, där String är en eller flera databasfilgrupper som ska säkerhetskopieras.

I följande exempel skapas en fullständig filsäkerhetskopia av varje fil i de sekundära filgrupperna "FileGroup1" och "FileGroup2" i <myDatabase>-databasen. Säkerhetskopiorna skapas på standardplatsen för säkerhetskopiering för serverinstansen Computer\Instance.

Backup-SqlDatabase -ServerInstance Computer\Instance -Database <myDatabase> -BackupAction Files -DatabaseFileGroup "FileGroup1","FileGroup2" 

Se även

Säkerhetskopiering Översikt (SQL Server)
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
Säkerhetskopieringshistorik och Huvudinformation (SQL Server)
Säkerhetskopiera databas (allmän sida)
säkerhetskopieringsdatabas (sidan Säkerhetskopieringsalternativ)
Fullständiga Filsäkerhetskopior (SQL Server)
differentiella säkerhetskopieringar (SQL Server)
filåterställning (fullständig återställningsmodell)
Filåterställningar (Enkel Återställningsmodell)