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
-
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.
-
Uruchom zapasową bazę danych Okno dialogowe
Kliknij Kopia zapasowa przycisk.
-
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.
-
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.