Utwórz różnicową kopię zapasową bazy danych (SQL Server)

Dotyczy:programu SQL Server

Ten artykuł opisuje, jak stworzyć różnicową kopię zapasową bazy danych w SQL Server, korzystając z SQL Server Management Studio, Transact-SQL lub PowerShell.

Aby uzyskać przegląd koncepcji i zadań tworzenia kopii zapasowych, zobacz przegląd kopii zapasowych (SQL Server).

Warunki wstępne

Różnicowa kopia zapasowa bazy danych wymaga wcześniejszej pełnej kopii zapasowej bazy danych. Jeśli baza danych go nie ma, najpierw zrób pełną kopię zapasową bazy danych. Aby uzyskać więcej informacji, zobacz Tworzenie pełnej kopii zapasowej bazy danych.

Zalecenia

Ponieważ różnicowe kopie zapasowe z czasem zwiększają rozmiar, przywrócenie różnicowej kopii zapasowej może znacząco wydłużyć czas przywrócenia bazy danych. Zrób nową pełną kopię zapasową w określonych odstępach, aby ustanowić nową bazę różnicową.

Na przykład możesz robić cotygodniową pełną kopię zapasową bazy danych, a następnie codzienne różnicowe kopie zapasowe w ciągu tygodnia.

Limitations

Nie możesz użyć BACKUP tego stwierdzenia w transakcji jawnej ani domyślnej.

uprawnienia

BACKUP DATABASE a BACKUP LOG uprawnienia domyślnie należą do członków stałej roli serwera administratora systemu , a także do ról db_owner i db_backupoperator stałej bazy danych.

Konto usługi SQL Server musi mieć uprawnienia do odczytu i zapisu w fizycznym pliku urządzenia backup. Problemy z własnością lub uprawnieniami do tego pliku uniemożliwiają operacje tworzenia kopii zapasowej i przywracania i pojawiają się tylko podczas wykonywania operacji backupu lub przywracania.

Na przykład procedura przechowywana w systemie sp_addumpdevice , która dodaje wpis urządzenia kopii zapasowej do tabel systemowych, nie waliduje dostępu do plików.

Korzystanie z programu SQL Server Management Studio

  1. W Eksplorator obiektów połącz się z Database Engine, a następnie rozwiń drzewo serwera.

  2. Rozwiń bazy danych, a następnie wybierz bazę użytkowników. Albo rozwiń System Databases i wybierz bazę danych systemową.

  3. Kliknij prawym przyciskiem myszy bazę danych, wskaż Tasks, a następnie wybierz Utwórz kopię zapasową. Zostanie wyświetlone okno dialogowe Kopia zapasowa bazy danych.

  4. W rozwijanej liście bazy danych weryfikuj nazwę bazy danych. Opcjonalnie wybierz inną bazę danych.

    Możesz wykonać różnicową kopię zapasową w dowolnym modelu odzyskiwania (pełnym, z logowaniem zbiorczym lub prostym).

  5. W rozwijanej liście typu kopii zapasowej wybierz Różnicowanie.

    Ważny

    Po wybraniu opcji Różnicowa upewnij się, że pole wyboru Kopia tylko do kopiowania jest niezaznaczone. Nie możesz utworzyć różnicowej kopii zapasowej na podstawie pełnej kopii zapasowej typu copy-only. Aby uzyskać więcej informacji, zobacz Kopie zapasowe tylko do kopiowania.

  6. W przypadku komponentu Backup wybierz Baza danych.

  7. W polu tekstowym Nazwa zaakceptuj domyślną nazwę zestawu zapasowego lub wprowadź nową.

  8. Opcjonalnie wpisz opis w polu tekstowym Opis .

  9. Określ, kiedy zestaw kopii zapasowych wygasa:

    • Aby wygasnąć zestaw kopii zapasowych po określonej liczbie dni, wybierz Po (domyślnie) i wpisz liczbę dni. Wartości wahają się od 0 do .99999 Wartość 0 oznacza, że zestaw kopii zapasowych nigdy nie wygasa.

      Domyślna wartość jest ustawiona w opcji Domyślne przechowywanie nośników kopii zapasowej (w dniach) na stronie Ustawienia bazy danych w oknie dialogowym Właściwości serwera. Aby ją otworzyć, kliknij prawym przyciskiem myszy na nazwę serwera w Eksplorator obiektów, wybierz Właściwości, a następnie stronę Ustawienia bazy danych.

    • Aby wygasnąć zestaw kopii zapasowych w określonym terminie, wybierz On i wpisz datę.

  10. Aby wybrać miejsce docelowe kopii zapasowej, wybierz Dysk lub adres URL. Aby dodać maksymalnie 64 napędy dyskowe do jednego zestawu nośników, wybierz Dodaj. Wybrane ścieżki pojawiają się na rozwijanej liście Backup do .

    Aby usunąć miejsce docelowe kopii zapasowej, wybierz je i wybierz pozycję Usuń. Aby wyświetlić zawartość miejsca docelowego kopii zapasowej, wybierz ją i wybierz pozycję Zawartość.

    Notatka

    Aby uzyskać więcej informacji na temat tworzenia kopii zapasowych w adresie URL, zobacz SQL Server backup to URL for Azure Blob Storage.

  11. Aby wyświetlić lub wybrać opcje zaawansowane, wybierz opcję Opcje w okienku Wybierz stronę.

  12. W przypadku Overwrite Media wybierz jedną z następujących opcji:

    • Twórz kopię zapasową na istniejący zestaw multimediów

      Wybierz opcję Dodaj do istniejącego zestawu kopii zapasowych lub Nadpisz wszystkie istniejące zestawy kopii zapasowych. Opcjonalnie zaznacz pole Sprawdź nazwę zestawu mediów i wygaśnięcie zestawu zapasowego oraz wpisz nazwę w polu tekstowym Nazwa zestawu mediów .

      Jeśli nie podasz nazwy, SQL Server tworzy zestaw mediów z pustą nazwą. Jeśli podasz nazwę, program SQL Server sprawdzi nośnik, aby potwierdzić, czy nazwa jest zgodna.

      Jeśli pozostawisz nazwę nośnika pustą i zaznaczysz pole wyboru, sprawdzenie powiedzie się tylko wtedy, gdy nazwa na nośniku również będzie pusta.

    • Utworzyć kopię zapasową na nowym zestawie multimediów, a następnie wymazać wszystkie istniejące zestawy kopii zapasowych

      Wpisz nazwę w polu tekstowym Nazwa nowego zestawu nośników. Opcjonalnie opisz zestaw mediów w polu tekstowym opisu zbioru nowych mediów .

  13. W sekcji Niezawodność opcjonalnie wybierz:

  14. Program SQL Server obsługuje kompresję kopii zapasowych. Domyślnie SQL Server kompresuje kopie zapasowe na podstawie backup-compression default opcji konfiguracji serwera. Niezależnie od domyślnej wersji serwera, wybierz Kompresuj kopię zapasową, aby skompresować kopię zapasową, lub wybierz Nie kompresuj kopii zapasowej, aby zapobiec kompresji.

    Aby wyświetlić domyślną kompresję bieżącej kopii zapasowej, zobacz Konfiguracja serwera: domyślna kompresja kopii zapasowej. Więcej informacji o kompresji kopii zapasowych można znaleźć w artykule Kompresja kopii zapasowych (SQL Server).

Remarks

  • Możesz użyć Kreatora Planów Konserwacyjnych, aby tworzyć różnicowe kopie zapasowe bazy danych.

  • Opcje sekcji dziennika transakcji są nieaktywne, chyba że robisz kopię zapasową dziennika transakcji. Określ tę opcję w sekcji Typ kopii zapasowej na stronie Ogólnej .

Korzystanie z Transact-SQL

Wykonaj BACKUP DATABASE polecenie, aby utworzyć różnicową kopię zapasową bazy danych. Precyzować:

  • Nazwa bazy danych do utworzenia kopii zapasowej.

  • Urządzenie kopii zapasowej, na którym jest zapisywana pełna kopia zapasowa bazy danych.

  • Klauzula DIFFERENTIAL o tworzeniu kopii zapasowej tylko tych części bazy, które zmieniły się po ostatniej pełnej kopii zapasowej bazy danych.

Użyj następującej składni:

BACKUP DATABASE database_nameTO< backup_device>WITH DIFFERENTIAL

Przykład (Transact-SQL)

Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.

-- Create a full database backup first.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH INIT;
GO

-- Time elapses.
-- Create a differential database backup, appending the backup
-- to the backup device containing the full database backup.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH DIFFERENTIAL;
GO

Remarks

Aby uzyskać informacje o tworzeniu kopii zapasowej na taśmie, zobacz BACKUP opcje taśmy oraz przykład Tworzenie kopii zapasowej na urządzeniu taśmowym w sekcji Tworzenie pełnej kopii zapasowej bazy danych.

Notatka

Opcja TAPE zostanie usunięta w przyszłej wersji SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.

Użyj PowerShell

Użyj polecenia Backup-SqlDatabase cmdlet. Aby określić różnicową kopię zapasową bazy danych, użyj parametru -Incremental wraz z .-BackupAction Database

Notatka

Ten przykład wymaga modułu SqlServer . Aby uzyskać więcej informacji, zobacz Dostawca PowerShell SQL Server.

Przykład (PowerShell)

Poniższy przykład tworzy różnicową kopię zapasową AdventureWorks2025 bazy danych do domyślnej lokalizacji kopii zapasowej instancji Computer\Instanceserwera. Pełna kopia zapasowa bazy danych musi już istnieć.

Aby zapoznać się z pełnymi przykładami składni, zobacz Backup-SqlDatabase.

$credential = Get-Credential

Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database AdventureWorks2025 -BackupAction Database -Incremental -Credential $credential