Jak Przenoszenie bazy danych za pomocą Odłącz i Dołącz (języka Transact-SQL)

Important noteImportant Note:

Firma Microsoft zaleca, aby przenieść bazy danych przy użyciu instrukcji ALTER DATABASE planowane przeniesienie procedury, zamiast Odłączanie i dołączanie.Aby uzyskać więcej informacji zobaczALTER DATABASE języka Transact-SQL).

Można przenieść w inne miejsce odłączoną bazę danych i ponownie go do tej samej lub wystąpienie innego serwera.

Security noteSecurity Note:

Zaleca się, należy nie dołączać lub przywrócić baz danych z nieznanych lub niezaufanych źródeł.Takie bazy danych może zawierać złośliwy kod, który może być wykonać niezamierzone Transact-SQL Kod lub powodować błędy przez zmodyfikowanie schematu lub struktury fizycznej bazy danych. Aby korzystać z bazy danych z nieznanych lub niepewnych urządzenie źródłowe, uruchamianie DBCC CHECKDB w bazie danych na serwerze nonproduction i również sprawdzić kod, takie jak procedury przechowywane lub inny kod zdefiniowany przez użytkownika w bazie danych.

Po dołączeniu SQL Server 2005 Baza danych zawierająca pliki wykazu pełnego tekstu na SQL Server 2008 wystąpienie serwera, katalogu, pliki są dołączone z wraz z innymi plikami bazy danych, takie same, jak w poprzedniej lokalizacji SQL Server 2005. Aby uzyskać więcej informacji zobaczFull-Text Search Upgrade.Po odłączeniu uaktualniony SQL Server 2005 Baza danych zawierająca pliki wykazu pełnego tekstu z SQL Server 2008 wystąpienie serwera z innymi plikami bazy danych, takie same jak są przechowywane pliki wykazu SQL Server 2005.

Uwaga

Można również użyć odłączyć i podłączyć do uaktualnienia SQL Server 2000 lub SQL Server 2005 bazy danych SQL Server 2008. Aby uzyskać więcej informacji zobaczJak Uaktualnianie bazy danych za pomocą Odłącz i Dołącz (języka Transact-SQL).

Procedura

Aby skopiować bazę danych za pomocą odłączyć i Dołącz

  1. Odłącz bazę danych za pomocą sp_detach_db procedura przechowywana.

  2. W oknie Eksploratora Windows lub wiersz polecenia systemu Windows przenieś plik odłączoną bazę danych lub plików oraz pliku dziennika lub pliki do nowej lokalizacji.

    Uwaga

    Jeśli rozmiar pliku jest dość mała, wiadomości e-mail pomieścić do przenoszenia jednego pliku bazy danych, można użyć wiadomości e-mail.

    Nawet jeśli mają zostać utworzone nowe pliki dziennika, należy przenieść pliki dziennika.W niektórych przypadkach podłączenie bazy danych wymaga jego istniejących plików dziennika.W związku z tym zawsze przechowywać wszystkie pliki dziennika odłączonego dopóki baza danych została pomyślnie dołączona bez nich.

    Uwaga

    Podczas próby dołączenia bazy danych bez określenia pliku dziennika operacji dołączania będzie poszukiwał pliku dziennika w oryginalnej lokalizacji.Jeśli kopie w dzienniku nadal istnieje w jego oryginalnej lokalizacji, kopia ta jest dołączony.Aby uniknąć przy użyciu oryginalnego pliku dziennika, określ ścieżka do nowego pliku dziennika albo usunąć oryginalną kopię pliku dziennika (po skopiowaniu go do nowej lokalizacji).

  3. Dołączanie skopiowanych plików przy użyciu tworzenie bazy danych Transact-SQL Wyciąg z do DOŁĄCZANIA [WITH <service_broker_option> ] klauzula lub klauzulę FOR ATTACH_REBUILD_LOG (Aby uzyskać więcej informacji, zobacz CREATE DATABASE (Transact-SQL)). Każda baza danych zawiera identyfikator unikatowy, używane do przesyłania Service Broker wiadomości do tej bazy danych. Jeśli korzysta się z bazą danych Service Broker, zobacz Zarządzanie usługa Broker tożsamości.

    Uwaga

    Aby uzyskać informacje na temat dołączania bazy danych przy użyciu Eksplorator obiektów Zobacz How to: Attach a Database (SQL Server Management Studio).

Przykład

Poniższy przykład tworzy kopię AdventureWorks bazy danych o nazwie MyAdventureWorks. The Transact-SQL statements are executed in a Query Editor window that is connected to the server wystąpienie to which AdventureWorks is attached.

  1. Odłączanie AdventureWorks bazy danych, wykonując następujące czynności Transact-SQL instrukcje:

    USE master;
    GO
    EXEC sp_detach_db @dbname = N'AdventureWorks';
    GO
    
  2. Za pomocą metoda dowolnego, skopiuj pliki bazy danych (AdventureWorks_Data.mdf i AdventureWorks_log) do: C:\MySQLServer\AdventureWorks_Data.mdf i C:\MySQLServer\AdventureWorks_Log.ldf, odpowiednio.

    Important noteImportant Note:

    W produkcyjnej bazie danych należy umieścić w dzienniku bazy danych i transakcji na oddzielnych dyskach.

    Aby skopiować pliki z sieci na dysku na komputerze zdalnym, użyj uniwersalnej nazwy konwencji (UNC Universal konwencja nazewnictwa) z lokalizacji zdalnej.Nazwa UNC ma postać \\Nazwa_serwera\ nazwaudziału\ ścieżka\ nazwę pliku.Podobnie jak w przypadku zapisywania plików na lokalnym dysku twardym, należy udzielić odpowiednich uprawnień, które są wymagane do odczytu lub zapisu do pliku znajdującego się na dysku zdalnym na konto użytkownika używane przez wystąpienie SQL Server.

  3. Dołączyć przeniesiono bazę danych i, opcjonalnie, jego dziennika, wykonując następujące czynności Transact-SQL instrukcje:

    USE master;
    GO
    CREATE DATABASE MyAdventureWorks 
        ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'),
        (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf')
        FOR ATTACH;
    GO
    

    Uwaga

    W SQL Server Management Studio, nowo dołączonego baza danych nie jest natychmiast widoczne w Eksploratorze obiektów. Aby wyświetlić Eksplorator obiektów bazy danych, kliknij przycisk Widoku and then Odśwież.Gdy Bazy danych węzeł jest rozwinięty w Eksploratorze obiektów nowo dołączonego bazy danych pojawi się na liście baz danych.