Udostępnij za pośrednictwem


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

Dotyczy:programu SQL Server

W tym temacie opisano sposób przenoszenia odłączonej bazy danych do innej lokalizacji i ponownego dołączania jej do tego samego lub innego wystąpienia serwera w programie SQL Server. Zalecamy jednak przenoszenie baz danych przy użyciu procedury planowanej relokacji ALTER DATABASE zamiast odłączania i dołączania. Aby uzyskać więcej informacji, zobacz Przenieś bazy danych użytkowników.

Ważny

Zalecamy, aby nie dołączać ani przywracać baz danych z nieznanych lub niezaufanych źródeł. Takie bazy danych mogą zawierać złośliwy kod, który może wykonywać niezamierzony kod Transact-SQL lub powodować błędy, modyfikując schemat lub fizyczną strukturę bazy danych. Przed użyciem bazy danych z nieznanego lub niezaufanego źródła uruchom DBCC CHECKDB w bazie danych na serwerze nieprodukcyjnym, a także sprawdź kod, taki jak procedury składowane lub inny kod zdefiniowany przez użytkownika, w bazie danych.

Procedura

Aby przenieść bazę danych przy użyciu odłączania i dołączania

  1. Odłącz bazę danych. Aby uzyskać więcej informacji, zobacz Odłączanie bazy danych.

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

    Należy przenieść pliki dziennika, nawet jeśli zamierzasz utworzyć nowe pliki dziennika. W niektórych przypadkach ponowne dołączenie bazy danych wymaga istniejących plików dziennika. W związku z tym zawsze zachowaj wszystkie odłączone pliki dziennika do momentu pomyślnego dołączenia bazy danych bez nich.

    Notatka

    Jeśli spróbujesz dołączyć bazę danych bez określenia pliku dziennika, operacja dołączania będzie szukać pliku dziennika w oryginalnej lokalizacji. Jeśli kopia dziennika nadal istnieje w oryginalnej lokalizacji, kopia jest dołączona. Aby uniknąć używania oryginalnego pliku dziennika, określ ścieżkę nowego pliku dziennika lub usuń oryginalną kopię pliku dziennika (po skopiowaniu go do nowej lokalizacji).

  3. Dołącz skopiowane pliki. Aby uzyskać więcej informacji, zobacz sekcję "Dołącz bazę danych".

Przykład

Poniższy przykład tworzy kopię bazy danych AdventureWorks2022 o nazwie MyAdventureWorks. Instrukcje Transact-SQL są wykonywane w oknie Edytora zapytań połączonym z wystąpieniem serwera, do którego to okno jest podłączone.

  1. Odłącz bazę danych AdventureWorks2022, wykonując następujące instrukcje Transact-SQL:

    USE master;  
    GO  
    EXEC sp_detach_db @dbname = N'AdventureWorks2022';  
    GO  
    
  2. Korzystając z wybranej metody, skopiuj pliki bazy danych (AdventureWorks208R2_Data.mdf i AdventureWorks208R2_log) do: C:\MySQLServer\AdventureWorks208R2_Data.mdf i C:\MySQLServer\AdventureWorks208R2_Log.ldf.

    Ważny

    W przypadku produkcyjnej bazy danych umieść bazę danych i dziennik transakcji na oddzielnych dyskach.

    Aby skopiować pliki za pośrednictwem sieci do dysku na komputerze zdalnym, użyj nazwy uniwersalnej konwencji nazewnictwa (UNC) lokalizacji zdalnej. Nazwa UNC ma postać \\nazwa_serwera\nazwa_udziału\ścieżka\nazwa pliku. Podobnie jak w przypadku zapisywania plików na lokalnym dysku twardym, odpowiednie uprawnienia wymagane do odczytu lub zapisu w pliku na dysku zdalnym muszą zostać przyznane kontu użytkownika używanemu przez wystąpienie programu SQL Server.

  3. Dołącz przeniesioną bazę danych i, opcjonalnie, dziennik, wykonując następujące instrukcje Transact-SQL:

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

    W programie SQL Server Management Studio nowo dołączona baza danych nie jest natychmiast widoczna w Eksploratorze obiektów. Aby wyświetlić bazę danych, w Eksploratorze obiektów kliknij pozycję Widok,, a następnie Odśwież. Po rozwinięciu węzła Databases w Eksploratorze obiektów nowo dołączona baza danych jest teraz wyświetlana na liście baz danych.

Zobacz też

Odłączenie i dołączenie bazy danych (SQL Server)