Przenoszenie systemowych baz danych

W tym temacie opisano sposób przenoszenia bazy danych systemu SQL Server.Przenoszenie bazy danych systemu mogą być przydatne w następujących sytuacjach:

  • Odzyskiwanie po awarii.Na przykład, baza danych jest w trybie podejrzanych lub spowodował zamknięcie niedziałający z powodu awarii sprzętu.

  • Planowane przeniesienie.

  • Przeniesienie dysku zaplanowanej konserwacji.

Poniższe procedury dotyczą przenoszenie plików bazy danych, w tym samym wystąpienie z SQL Server.Przenieść bazę danych do innego wystąpienie programu SQL Server lub do innego serwera kopia zapasowa i przywracanie lub odłączyć i Dołącz operacji.

Procedury opisane w tym temacie wymagają nazwa logiczna plików bazy danych.Aby uzyskać nazwę, kwerenda name kolumna w sys.master_files wykazu widoku.

Ważna informacjaWażne:

Przenoszenie bazy danych systemu i później odbudować master bazy danych, należy przenieść system bazy danych ponownie, ponieważ operacja Odbuduj instaluje wszystkich baz danych systemu do ich lokalizacji domyślnej.Aby uzyskać więcej informacji dotyczących master bazy danych, zobacz "Rebuilding systemowych baz danych, odbudowa rejestru" in Jak: Instalowanie programu SQL Server 2008 R2 z wiersza polecenia.

Procedury konserwacji dysku zaplanowane i planowane przeniesienie

Aby przenieść dane bazy danych systemu lub pliku dziennika jako część operacji zaplanowanej konserwacji lub planowane przeniesienie, wykonaj następujące kroki.Ta procedura ma zastosowanie do wszystkich bazy danych systemu z wyjątkiem master i Resource baz danych.

  1. Dla każdego pliku ma być przeniesiony, uruchom następujące polecenie w instrukcja.

    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' )
    
  2. Zatrzymać wystąpienie SQL Server lub zamykanie niedziałający systemu, aby przeprowadzić konserwację.Aby uzyskać więcej informacji, zobacz Zatrzymywanie usług.

  3. Plik lub pliki można przenieść do nowej lokalizacji.

  4. Ponownie uruchom wystąpienie SQL Server lub serwera.Aby uzyskać więcej informacji, zobacz Uruchamianie i ponowne uruchamianie usługi.

  5. Sprawdź zmiany pliku, uruchamiając następujące kwerendy.

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'<database_name>');
    

Jeśli msdb Baza danych zostanie przeniesiona i wystąpienie SQL Server jest skonfigurowany dla Bazy danych korespondencji, wykonaj następujące kroki dodatkowe.

  1. Sprawdź, czy Service Broker jest włączone dla msdb bazy danych, uruchamiając następujące kwerendy.

    SELECT is_broker_enabled 
    FROM sys.databases
    WHERE name = N'msdb';
    

    Aby uzyskać więcej informacji dotyczących włączania Service Broker, zobacz ALTER DATABASE (Transact-SQL).

  2. Zweryfikować poczty bazy danych, wysyłając wiadomości testowe.Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z poczty bazy danych.

Niepowodzenie procedury odzyskiwania

Jeśli plik musi być przenoszone z powodu awarii sprzętu, wykonaj następujące kroki, aby przenieść plik do nowej lokalizacji.Ta procedura ma zastosowanie do wszystkich bazy danych systemu z wyjątkiem master i Resource baz danych.

Ważna informacjaWażne:

Jeśli nie można uruchomić bazę danych, który jest w trybie podejrzanych lub w Państwie nieodzyskanych, tylko członkowie sysadmin roli stałych można przenieść pliku.

  1. Zatrzymać wystąpienie SQL Server , jeśli jest uruchomiona.

  2. Uruchomić wystąpienie SQL Server w trybie tylko do wzorca odzyskiwanie, wpisując następujące polecenia w wiersz polecenia.Parametry określone w tych poleceniach są przypadek poufne.Polecenia nie powiedzie się, gdy parametry nie są określone, jak pokazano.

    • Dla wystąpienie domyślnego (MSSQLSERVER) uruchom następujące polecenie:

      NET START MSSQLSERVER /f /T3608
      
    • wystąpienie nazwane uruchom następujące polecenie:

      NET START MSSQL$instancename /f /T3608
      

    Aby uzyskać więcej informacji, zobacz Jak Uruchomić wystąpienie programu SQL Server (polecenia net).

  3. Dla każdego pliku ma być przeniesiony za pomocą polecenie sqlcmd polecenia lub SQL Server Management Studio do uruchomienia następującej instrukcja.

    ALTER DATABASE database_name MODIFY FILE( NAME = logical_name , FILENAME = 'new_path\os_file_name' )
    

    Aby uzyskać więcej informacji o korzystaniu z polecenie sqlcmd , narzędzie zobacz Przy użyciu polecenie sqlcmd, narzędzie.

  4. Zakończ polecenie sqlcmd narzędzie lub SQL Server Management Studio.

  5. Zatrzymać wystąpienie SQL Server.Na przykład uruchomić NET STOP MSSQLSERVER.

  6. Plik lub pliki można przenieść do nowej lokalizacji.

  7. Ponownie uruchom wystąpienie SQL Server.Na przykład uruchomić NET START MSSQLSERVER.

  8. Sprawdź zmiany pliku, uruchamiając następujące kwerendy.

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'<database_name>');
    

Przenoszenie bazy danych master

Aby przenieść master bazy danych, wykonaj następujące kroki.

  1. Z Start menu, wskaż Wszystkie programy, wskaż Microsoft SQL Server, wskaż Narzędzia konfiguracji, a następnie kliknij przycisk SQL Server Menedżer konfiguracji.

  2. W Usług SQL Server węzła, kliknij prawym przyciskiem myszy wystąpienie SQL Server (na przykład sql Server (mssqlserver)) i wybierz polecenie Właściwości.

  3. W SQL Server (nazwa_wystąpienia) właściwości okno dialogowe, kliknij przycisk Zaawansowane kartę.

  4. Edytowanie Parametry startowe wartości wskaż lokalizację planowanych master bazy danych i pliki dziennika, kliknij OK.Przenoszenie pliku dziennik błędów jest opcjonalne.

    Wartość parametru w pliku danych, należy wykonać -d parametru i wartości dla pliku dziennika musi następować -l parametru.Poniższy przykład przedstawia wartości parametrów w domyślnej lokalizacji master plików danych i dziennika.

    -dC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\
    master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\
    LOG\ERRORLOG;-lC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\
    DATA\mastlog.ldf
    

    Jeśli planowane przeniesienie dla master plików danych i dziennika jest E:\SQLData, zmiany wartości parametrów w następujący sposób:

    -dE:\SQLData\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\ERRORLOG;-lE:\SQLData\mastlog.ldf
    
  5. Zatrzymać wystąpienie SQL Server prawym przyciskiem myszy nazwę instancji i wybierając polecenie Stop.

  6. Przenieś pliki master.mdf i mastlog.ldf do nowej lokalizacji.

  7. Ponownie uruchom wystąpienie SQL Server.

  8. Sprawdź zmiany pliku dla master bazy danych, uruchamiając następujące kwerendy.

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID('master');
    GO
    

Przenoszenie bazy danych zasobów

Lokalizacja Resource Baza danych jest <dysku>: \Program Files\Microsoft SQL Server\MSSQL10_50.<nazwa_wystąpienia>\MSSQL\Binn\.Nie można przenieść bazę danych.

Przykłady

A.Przenoszenie bazy danych tempdb

W następującym przykładzie przenoszona tempdb danych i plików dziennika do nowej lokalizacji jako część planowanego przemieszczenia.

Ostrzeżenie

Ponieważ tempdb odtwarza się każdy czas wystąpienia SQL Server jest uruchomiona, nie ma fizycznego przenoszenia danych i dziennika pliki.Pliki są tworzone w nowej lokalizacji, po ponownym uruchomieniu usługa w kroku 3.Do czasu ponownego uruchomienia usługa, tempdb w dalszym ciągu używać danych i dziennika pliki w istniejącej lokalizacji.

  1. Określenie nazwy pliku logicznego tempdb bazy danych i ich bieżącej lokalizacji na dysku.

    SELECT name, physical_name AS CurrentLocation
    FROM sys.master_files
    WHERE database_id = DB_ID(N'tempdb');
    GO
    
  2. Zmień położenie każdego pliku za pomocą ALTER DATABASE.

    USE master;
    GO
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');
    GO
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');
    GO
    
  3. Zatrzymaj i ponownie uruchom wystąpienie SQL Server.

  4. Sprawdź zmiany pliku.

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'tempdb');
    
  5. Usuń tempdb.mdf i templog.ldf pliki z oryginalnej lokalizacji.