Udostępnij za pośrednictwem


Jak Przenoszenie bazy danych przy użyciu odłączyć i dołączyć (Transact-SQL)

Ważna informacjaWażne:

Zaleca się, aby przenieść bazy danych za pomocą procedury przeniesienia planowanych ZMIEŃ bazę danych, zamiast odłączyć i dołączyć.Aby uzyskać więcej informacji, zobacz ALTER DATABASE (Transact-SQL).

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

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Zaleca się, aby użytkownik nie dołączyć lub przywracanie bazy danych z nieznanych lub niezaufanych źródeł.Takie bazy danych może zawierać złośliwy kod, który może wykonać niezamierzone Transact-SQL Kod lub powodować błędy przez zmodyfikowanie schematu lub fizycznych struktura bazy danych.Przed użyciem bazy danych z nieznanych lub niezaufanych źródło, uruchomić dbcc checkdb bazy danych na serwerze Nieprodukcyjne 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 bazę danych zawierającą wykaz pełnotekstowy plików na SQL Server 2008 pliki wystąpienie serwera, katalogu, pliki są dołączone z poprzedniej lokalizacji wraz z bazy danych, takie same, jak w SQL Server 2005.Aby uzyskać więcej informacji, zobacz Uaktualnienie wyszukiwania pełnotekstowego.Po odłączeniu uaktualniony SQL Server 2005 bazę danych zawierającą wykaz pełnotekstowy plików z SQL Server 2008 wystąpienie serwera katalogu przechowywane są pliki z innymi plikami bazy danych, takie same, jak w SQL Server 2005.

Ostrzeżenie

Można również użyć odłączyć i dołączyć do uaktualnienia SQL Server 2000 lub SQL Server 2005 bazy danych do SQL Server 2008.Aby uzyskać więcej informacji, zobacz Jak Uaktualnienie bazy danych przy użyciu odłączyć i dołączyć (Transact-SQL).

Procedura

Kopiowanie bazy danych przy użyciu odłączyć i dołączyć

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

  2. W oknie Eksploratora Windows lub wiersza polecenia systemu Windows przenieś odłączony plik bazy danych lub plików, jak i plik dziennika lub pliki do nowej lokalizacji.

    Ostrzeżenie

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

    Nawet jeśli zamierzasz tworzyć nowe pliki dziennika, należy przenieść pliki dziennika.W niektórych przypadkach podłączenie bazy danych wymaga jego istniejących plików dzienników.Dlatego zawsze przechowywać wszystkie pliki dziennika odłączony, dopóki baza danych została pomyślnie dołączona bez nich.

    Ostrzeżenie

    Podczas próby dołączenia bazy danych bez określania pliku dziennika operacji Dołącz będzie szukał pliku dziennika w oryginalnej lokalizacji.Jeśli kopia dziennika nadal istnieje w oryginalnej lokalizacji, jest dołączony tej kopii.Aby uniknąć przy użyciu oryginalnego pliku dziennika, określ ścieżka nowy plik dziennika lub usuń oryginalną kopię pliku dziennika (na przykład po skopiowaniu go do nowej lokalizacji).

  3. Dołącz skopiowane pliki przy użyciu bazy danych utworzyć Transact-SQL instrukcja z dla DOŁĄCZANIA [Z <service_broker_option> ] klauzula lub klauzulę FOR ATTACH_REBUILD_LOG (Aby uzyskać więcej informacji, zobacz Tworzenie bazy danych (Transact-SQL)).Każda baza danych zawiera identyfikator unikatowy, używane do routowania Service Broker wiadomości do tej bazy danych.Jeśli baza danych używa Service Broker, zobacz Zarządzanie Service Broker tożsamości.

    Ostrzeżenie

    Aby uzyskać informacje dotyczące dołączania bazy danych za pomocą Eksploratora obiektu, zobacz Jak Dołączanie bazy danych (SQL Server Management Studio).

Przykład

Poniższy przykład tworzy kopię AdventureWorks2008R2 bazy danych o nazwie MyAdventureWorks. Transact-SQL Sprawozdania są wykonywane w oknie Edytora kwerend, który jest połączony z wystąpienie serwera, do którego AdventureWorks2008R2 jest dołączony.

  1. Odłączanie AdventureWorks2008R2 bazy danych, wykonując następujące Transact-SQL sprawozdania:

    USE master;
    GO
    EXEC sp_detach_db @dbname = N'AdventureWorks2008R2';
    GO
    
  2. Metoda wyboru Kopiuj pliki bazy danych (AdventureWorks2008R2_Data.mdf i AdventureWorks2008R2_log) do: C:\MySQLServer\AdventureWorks2008R2_Data.mdf i C:\MySQLServer\AdventureWorks2008R2_Log.ldf, odpowiednio.

    Ważna informacjaWażne:

    Dla produkcji bazy danych należy umieścić bazy danych i dziennika transakcji na oddzielnych dyskach.

    Aby skopiować pliki z sieci na dysku na komputerze zdalnym, użyj uniwersalnego konwencja nazewnictwa nazw (UNC) z lokalizacji zdalnej.Nazwa UNC ma postać **\nazwa_serwera\nazwa_udziału\ścieżkę\**nazwę pliku.Jak z zapisywanie plików na lokalnym dysku twardym, odpowiednie uprawnienia, które są wymagane do odczytu lub zapisu do pliku na zdalnym dysku musi być przyznane konto użytkownika używane przez wystąpienie SQL Server.

  3. Dołącz przeniesiono bazę danych i, opcjonalnie, jego dziennika przez wykonanie następujących Transact-SQL sprawozdania:

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

    Ostrzeżenie

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