Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Utwórz kopię zapasową bazy danych w SQL Server 2017

SQL Server zapewnia łatwy sposób tworzenia kopii zapasowej bazy danych. Kopie zapasowe można wykonywać za pomocą Transact-SQL, PowerShell lub za pomocą GUI.

Tutaj zademonstruję, jak utworzyć kopię zapasową za pomocą graficznego interfejsu użytkownika programu SQL Operations Studio (obecnie zwanego Azure Data Studio), następnie za pomocą języka Transact-SQL, a na koniec za pomocą programu SQL Server Powershell.

Utwórz kopię zapasową za pomocą graficznego interfejsu użytkownika SQLOPS/Azure Data Studio

  1. Otwórz pulpit nawigacyjny bazy danych

    W lewym okienku kliknij prawym przyciskiem myszy bazę danych, której kopię zapasową chcesz utworzyć, i wybierz Zarządzaj .

    Jeśli używasz programu SSMS, w Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych, której kopię zapasową chcesz utworzyć, i wybierz Zadania> Utwórz kopię zapasową... z menu kontekstowego. Spowoduje to uruchomienie Kopia zapasowa bazy danych okno dialogowe.

  2. Uruchom zapasową bazę danych Okno dialogowe

    Kliknij Kopia zapasowa przycisk.

  3. Sprawdź ustawienia

    To okno dialogowe daje możliwość zmiany dowolnych ustawień w razie potrzeby.

    W naszym przykładzie pozostaw ustawienia domyślne i kliknij Kopia zapasowa aby utworzyć kopię zapasową.

    Jeśli masz określone wymagania dotyczące tworzenia kopii zapasowych, możesz zmienić typ kopii zapasowej i/lub kliknąć Konfiguracja zaawansowana aby dostosować zaawansowane ustawienia konfiguracji.

  4. Ukończono kopię zapasową

    Po zakończeniu tworzenia kopii zapasowej zostanie wyświetlony komunikat potwierdzający pomyślne utworzenie kopii zapasowej.

Utwórz kopię zapasową bazy danych przy użyciu języka Transact-SQL

Możesz wykonać tę samą kopię zapasową, co powyżej, używając T-SQL.

Aby to zrobić, otwórz nowe okno zapytania i wykonaj BACKUP oświadczenie.

BACKUP Instrukcja akceptuje różne opcje (podobnie jak opcja GUI), ale możesz również uruchomić prostą kopię zapasową z minimalną ilością kodu.

Poniżej znajduje się przykład prostego skryptu kopii zapasowej w systemie Linux lub Mac. Skrypt określa bazę danych do utworzenia kopii zapasowej oraz lokalizację, w której ma zostać wykonana kopia zapasowa.

BACKUP DATABASE Music  
TO DISK = '/var/opt/mssql/data/Music.bak';

W systemie Windows ścieżka będzie używać ukośników odwrotnych:

BACKUP DATABASE Music  
TO DISK = 'C:\Backups\Music.bak';

Po uruchomieniu tego kodu plik kopii zapasowej zostanie umieszczony w określonej lokalizacji.

Utwórz kopię zapasową bazy danych za pomocą PowerShell

SQL Server 2017 obsługuje program Windows PowerShell, który jest powłoką skryptów, zwykle używaną do automatyzacji zadań administracyjnych i wdrażania.

Język PowerShell obsługuje bardziej złożoną logikę niż skrypty Transact-SQL, co daje możliwość tworzenia bardziej wyrafinowanych skryptów do tworzenia kopii zapasowych i innych zadań.

Poniższy kod utworzy kopię zapasową, tak jak w poprzednich przykładach. Wystarczy zastąpić MyServer z nazwą twojego serwera.

Backup-SqlDatabase -ServerInstance MyServer -Database Music

Możesz także określić lokalizację

Backup-SqlDatabase -ServerInstance MyServer -Database Music -BackupFile 'C:\Backups\Music.bak'

Po uruchomieniu tego kodu plik kopii zapasowej zostanie umieszczony w domyślnej lokalizacji.

Możesz także określić -BackupAction Database aby wyraźnie stwierdzić, że jest to pełna kopia zapasowa. Jest to jednak opcja domyślna.

Możesz zobaczyć pełną dokumentację Backup-SqlDatabase polecenie na stronie Microsoft.

Zastępowanie plików kopii zapasowych

Jeśli wykonujesz wiele kopii zapasowych przy użyciu tej samej nazwy pliku kopii zapasowej, możesz zauważyć, że za każdym razem, gdy uruchamiasz kopię zapasową, rozmiar pliku kopii zapasowej wzrasta.

Dzieje się tak, ponieważ każda kolejna kopia zapasowa dodaje się do istniejącego pliku. Robi to, ponieważ używasz tej samej nazwy pliku i nie określiłeś wyraźnie, że każda kopia zapasowa powinna nadpisywać istniejący plik.

Istnieje opcja, która pozwala nadpisać istniejący plik.

  • Korzystanie z GUI SQLOPS , kliknij Konfiguracja zaawansowana i pod Kopia zapasowa do istniejącego zestawu multimediów , wybierz Zastąp wszystkie istniejące zestawy kopii zapasowych .
  • Korzystanie z GUI SSMS , kliknij Opcje multimediów w lewym menu Kopia zapasowa bazy danych i wybierz Zastąp wszystkie istniejące zestawy kopii zapasowych w Zastąp multimedia sekcja.
  • Korzystanie z SQL dodaj WITH INIT do instrukcji SQL.
  • Korzystanie z Powershell , dodaj -Initialize do polecenia.

Korzystanie z unikalnych nazw plików

Jednak często dobrym pomysłem jest utworzenie pełnej kopii zapasowej z unikatową nazwą pliku (zazwyczaj zawierającą datę w nazwie pliku). Posiadanie unikalnej nazwy pliku oznacza, że ​​każda kopia zapasowa będzie osobnym plikiem.

Ponadto, w zależności od rozmiaru bazy danych i ilości wprowadzanych do niej nowych danych, można uzupełnić pełne kopie zapasowe kopiami różnicowymi. Różnicowa kopia zapasowa przechwytuje tylko te dane, które uległy zmianie od czasu ostatniej pełnej kopii zapasowej.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyeksportować dane SQL Server z tabeli do pliku CSV

  2. Jak uzyskać wszystkie błędy wszystkich pakietów SSIS w rozwiązaniu?

  3. Błąd krytyczny:wywołanie niezdefiniowanej funkcji sqlsrv_connect()

  4. 7 sposobów na zwrócenie wszystkich tabel z kluczem podstawowym w SQL Server

  5. SQL — wywołanie procedury składowanej dla każdego rekordu