Moving System Databases

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

  • Niepowodzenie odzyskiwanie.Na przykład, baza danych jest w trybie podejrzanych lub został zamknięty niedziałający z powodu awarii sprzętu.

  • Planowane przeniesienie.

  • Przeniesienie dysku zaplanowanej konserwacji.

Poniższe procedury mają zastosowanie do przenoszenia plików bazy danych w tym samym wystąpienie z SQL Server. Aby przenieść bazę danych do innego wystąpienie programu SQL Server lub na innym serwerze, za pomocą Tworzenie kopii zapasowych i przywracanie or Odłączanie i dołączanie operacje.

Procedury opisane w tym temacie wymagają logiczne nazwy plików bazy danych.Uzyskanie nazwę kwerendy kolumna Nazwa sys.master_files Służy do wyświetlania katalogu.

Important noteImportant Note:

Jeśli przeniesienie bazy danych systemu, a później ponownie utworzyć wzorzec bazy danych, należy przenieść bazy danych systemu ponownie ponieważ operacji odbudowywania instaluje wszystkich baz danych systemowych do ich lokalizacji domyślnej.Aby uzyskać więcej informacji na temat przebudowywanie wzorzec bazy danych, zobacz „ Rebuilding bazy danych systemu, przebudowywaniem rejestru "w How to: Install SQL Server 2008 from the Command Prompt.

Procedury konserwacji dysków zaplanowanych i planowanych relokacja

Aby przenieść dane bazy danych do systemu lub pliku dziennika jako część planowane przeniesienie lub zaplanowanej konserwacji operacji, wykonaj następujące kroki.Ta procedura odnosi się do wszystkich baz danych systemu z wyjątkiem wzorca i baz danych zasób.

  1. Każdy plik ma być przeniesiony należy wykonać następującą instrukcję.

    ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME = 'new_path\os_file_name' )
    
  2. Zatrzymać wystąpienie SQL Server lub zamknięcia systemu w celu wykonania konserwacji. Aby uzyskać więcej informacji zobaczStopping Services.

  3. Przenieś plik lub pliki do nowej lokalizacji.

  4. Ponownie uruchom wystąpienie SQL Server lub na serwerze. Aby uzyskać więcej informacji zobaczStarting and Restarting Services.

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

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

Po przeniesieniu bazy danych msdb obiekt SQL Server skonfigurowano pod kątem Poczta bazy danych, wykonaj następujące kroki dodatkowe.

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

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

    Aby uzyskać więcej informacji na temat włączania Service Broker, zobacz ALTER DATABASE języka Transact-SQL).

  2. Sprawdź, czy poczta baza danych działa przez wysłanie wiadomości testowe.Aby uzyskać więcej informacji zobaczTroubleshooting Database Mail.

Niepowodzenie procedury odzyskiwanie

Jeśli plik musi być przeniesiony z powodu awarii sprzętu, wykonaj następujące kroki, aby przenieść plik do nowej lokalizacji.Ta procedura odnosi się do wszystkich baz danych systemu z wyjątkiem wzorca i baz danych zasób.

Important noteImportant Note:

Jeśli baza danych nie można uruchomić, czyli znajduje się w trybie podejrzanych lub w stanie unrecovered, tylko członkowie sysadmin, stałe roli można przenieść plik.

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

  2. Uruchom wystąpienie z SQL Server w trybie tylko do wzorca odzyskiwanie wprowadzając jedną z następujących poleceń w wiersz polecenia. Parametry określone w tych poleceń jest rozróżniana wielkość liter.Polecenia nie powiedzie się, gdy nie podano parametrów, 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 zobaczHow to: Start an Instance of SQL Server (net Commands).

  3. Dla każdego pliku ma być przeniesiony za pomocą SQLCMD poleceń lub SQL Server Management Studio Aby uruchomić następującą instrukcję.

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

    Aby uzyskać więcej informacji o korzystaniu z SQLCMD patrz narzędzieZa pomocą narzędzia sqlcmd.

  4. Zakończ SQLCMD Narzędzie lub SQL Server Management Studio.

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

  6. Przenieś plik lub pliki 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ącą kwerendę.

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

Przenoszenie wzorzec bazy danych

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

  1. Z Rozpocznij wskaż menuWszystkie programy, point to Microsoft SQL Server, point to Narzędzia konfiguracja, a następnie kliknij przycisk Program SQL Server Menedżer konfiguracja.

  2. W SQL Server Services , węzeł, kliknij prawym przyciskiem myszy wystąpienie SQL Server (na przykład Program SQL Server (MSSQLSERVER)) a następnie wybierz polecenie Właściwości.

  3. W Program SQL Server)okno dialogowe instance_name ) właściwości kliknijZaawansowane tab.

  4. Edytowanie Parametry startowe wartości wskaż planowane lokalizację plików danych i dziennika bazy danych, a następnie kliknij przycisk OK.Przenoszenie pliku dziennik błędów jest opcjonalne.

    Wartość parametru w pliku danych muszą być zgodne z -d parametru i wartości dla pliku dziennika musi następować -l parametr. Poniższy przykład przedstawia wartości parametrów dla domyślnej lokalizacji dane główne i plików dziennika.

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

    Jeśli jest planowane przeniesienie plików danych i dziennika głównego E:\SQLData, wartości parametrów mogą zostać zmienione w następujący sposób:

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

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

  7. Ponownie uruchom wystąpienie SQL Server.

  8. Sprawdź zmiany pliku do wzorzec bazy danych, uruchamiając następującą kwerendę.

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

Przenoszenie bazy danych zasób

W SQL Server 2008, to lokalizację bazy danych zasób <dysk>: \Program Files\Microsoft SQL Server\MSSQL10. \MSSQL\Binn\<>instance_name.Nie można przenieść bazę danych.

Przykłady

A.Przenoszenie bazy danych tempdb

W poniższym przykładzie przenosi tempdb pliki danych i dziennika do nowej lokalizacji, w ramach planowane przeniesienie.

Uwaga

Ponieważ tempdb jest utworzony ponownie przy każdym wystąpieniu SQL Server jest uruchomiony, nie trzeba fizycznie przenieść dane i pliki dziennika. Pliki są tworzone w nowej lokalizacji po ponownym uruchomieniu usługa w kroku 3.Do momentu ponownego uruchomienia usługa tempdb nadal używać tych danych i plików dziennika w istniejącej lokalizacji.

  1. Określenie nazwy pliku logicznego, tempdb Baza 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. Zmiana lokalizacji każdego pliku przy użyciu 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. Delete tempdb.mdf i templog.ldf pliki z oryginalnej lokalizacji.

Historia zmian

Microsoft Learning

Zaktualizowano sekcję „ przenoszenie zasób Database"oznacza, że bazy danych zasób nie mogą być przenoszone.