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

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.

W SQL Server 2008, można użyć Odłączanie i dołączanie działania w celu uaktualnienia baza danych użytkownika z SQL Server 2000 lub SQL Server 2005. Po dołączeniu SQL Server 2005 lub SQL Server 2000 bazy danych SQL Server 2008, natychmiast staje się dostępna bazie danych, a następnie zostanie automatycznie uaktualniony.

Niemniej jednak, obowiązują następujące ograniczenia:

  • Kopie wzorzec, Model or msdb bazy danych, utworzonych za pomocą SQL Server 2000 lub SQL Server 2005 Nie można dołączyć.

  • Podczas dołączania zreplikowanej bazy danych, które zostały skopiowane zamiast odłączone:

    • Jeśli baza danych jest dołączany do uaktualnionej wersja tego samego wystąpienie serwera, należy wykonać sp_vupgrade_replication uaktualnić replikacja, po zakończeniu operacji dołączania.Aby uzyskać więcej informacji zobaczsp_vupgrade_replication (Transact-SQL).

    • Jeśli baza danych jest dołączany do wystąpienie inny serwer (niezależnie od wersja), należy wykonać sp_removedbreplication , aby usunąć replikacja, po zakończeniu operacji dołączania.Aby uzyskać więcej informacji zobaczsp_removedbreplication (Transact-SQL).

  • Gdy APPLY, PIVOT, TABLESAMPLE, lub UNPIVOT słowa kluczowe są używane dla bazy danych, które są uaktualniane z SQL Server 2000 Aby SQL Server 2008, poziom zgodności bazy danych musi być ustawiony na 100. Aby ustawić poziom zgodności bazy danych, zobacz sp_dbcmptlevel (języka Transact-SQL).

    Important noteImportant Note:

    W SQL Server 2000 Z dodatkiem usługa Pack 3 (SP3) i nowszych wersjach SQL Server, Dołącz i odłączyć disable własność DB między tworzenie łańcuchów dla DB przez ustawienie jego przekroczenia tworzenie łańcucha własności DB opcji na wartość 0.Aby uzyskać informacje dotyczące włączania tworzenie łańcucha zobacz cross db ownership chaining Option.

Opcje uaktualnienia indeksie pełnego tekstu

Uwaga

Po dołączeniu bazy danych programu SQL Server 2005 lub SQL Server 2000 do programu SQL Server 2008 baza danych jest dostępna natychmiast i jest automatycznie uaktualniana.Jeśli baza danych zawiera indeksy pełnotekstowe, są one podczas procesu uaktualniania importowane, resetowane lub odbudowywane, w zależności od ustawienia właściwości serwera upgrade_option.Gdy wybraną opcją uaktualnienia będzie opcja importu (upgrade_option = 2) lub odbudowywania (upgrade_option = 0), indeksy pełnotekstowe będą niedostępne w czasie uaktualniania.W zależności od ilości indeksowanych danych importowanie może trwać kilka godzin, a odbudowywanie może trwać do dziesięciu razy dłużej.Należy zauważyć, że w sytuacji, gdy wybraną opcją uaktualnienia będzie opcja importu, a wykaz pełnotekstowy będzie niedostępny, skojarzone indeksy pełnotekstowe zostaną odbudowane.Aby zmienić ustawienie właściwości serwera upgrade_option, należy użyć procedury składowanej sp_fulltext_service.

Procedury

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

  1. Odłącz bazę danych z programu SQL Server 7.0 lub SQL Server 2000 za pomocą sp_detach_db procedura przechowywana.

    Aby uzyskać więcej informacji zobacz SQL Server Książki online dla tej wersja SQL Server.

    Uwaga

    W SQL Server 2005, ta procedura przechowywana ma nowe opcje. Aby uzyskać więcej informacji zobaczsp_detach_db (języka Transact-SQL).

  2. Opcjonalnie można przenieść pliku odłączoną bazę danych lub plików oraz pliku dziennika lub plików.

    Nawet wtedy, gdy zamierza się tworzyć nowe pliki dziennika, należy przenieść pliki dziennika wraz z plikami danych.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 oryginalną kopię w dzienniku nadal istnieje w tej 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 plików skopiowanych do wystąpienie SQL Server 2005 za pomocą TWORZENIE BAZY DANYCH instrukcja przy użyciu opcji do DOŁĄCZENIA lub ATTACH_REBUILD_LOG FOR.

    Uwaga

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

  4. Firma Microsoft zaleca, aby uruchomić UPDATEUSAGE DBCC uaktualnionej bazy danych.

    We wcześniejszych wersjach SQL Server, wartości liczby wierszy tabela oraz indeks i licznik wskazuje strona może stać się nieprawidłowe. Dlatego też baz danych utworzonych w wersjach wcześniejszych niż SQL Server 2005 mogą zawierać nieprawidłowych liczb. Po uaktualnieniu bazy danych SQL Server 2005, zaleca się uruchomienie UPDATEUSAGE DBCC, aby poprawić wszelkie nieprawidłowe liczniki. Ta instrukcja DBCC poprawia wierszy, stron używanych, zarezerwowane stron, liść stron i strona danych zlicza dla każdej partycji, w tabela lub indeksu.Aby uzyskać więcej informacji zobaczDBCC UPDATEUSAGE (języka Transact-SQL).

  5. Opcjonalnie Jeśli użytkownik powierza kopię bazy danych (zamiast przenosić je), użytkownik może Podłącz oryginalnej bazy danych w wystąpieniu SQL Server 7.0 lub SQL Server 2000 za pomocą sp_attach_db or sp_attach_single_file_db procedura przechowywana.

    Aby uzyskać więcej informacji zobacz dokumentację SQL Server Books Online dla tej wersja SQL Server.

Poziom zgodności bazy danych po uaktualnieniu

Poziom zgodności tempdb, Model, msdb and Zasób baz danych są ustawione na 100, po uaktualnieniu.The master system database retains the compatibility poziom it had before upgrade, unless that poziom was less than 80.Jeśli poziom zgodności wzorzec była mniejsza niż 80 przed uaktualnieniem, jest on zestaw do 80 po uaktualnieniu.

Jeśli poziom zgodności baza danych użytkownika 80 lub 90 przed uaktualnieniem, pozostaje taka sama po uaktualnieniu.Jeżeli poziom zgodności był 70 lub mniej przed uaktualnieniem uaktualnionej bazy danych, to poziom zgodności zestaw do 80, która jest poziom najniższy obsługiwanych zgodności w SQL Server 2008.

Uwaga

Nowy użytkownik bazy danych będzie dziedziczyć poziom zgodności Model bazy danych.

Zarządzanie metadane na wystąpienie uaktualnionego serwera

Podczas dołączania bazy danych do innego wystąpienie serwera zapewniające stanowi spójne źródło informacji dla użytkowników i aplikacji, może zajść potrzeba ponownego utworzenia całość lub część metadane dla bazy danych, takich jak identyfikatory logowania, zadania i uprawnień w wystąpieniu serwera.Aby uzyskać więcej informacji zobaczManaging Metadata When Making a Database Available on Another Server Instance.

Przykłady

The following example upgrades the SQL Server 2000pubs database to a SQL Server 2005 database by using Transact-SQL statements to detach and attach the database.

  1. Łączenie SQL Server 2000 Query Analyzer do wystąpienie serwera, na którym pubs jest podłączony i odłączyć bazę danych za pomocą sp_detach_db Procedura przechowywana.

    USE master;
    GO
    EXEC sp_detach_db @dbname = N'pubs';
    GO
    
  2. Dla celów tego przykładu, przy użyciu metoda wybór, skopiuj pubs pliki (pubs.mdf i pubs_log.ldf) z katalogu C:\Program Files\Microsoft SQL Server\MSSQL\Data\ (jest to domyślne lokalizacje Pubs in SQL Server 2000) do katalogu C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\ (jest to SQL Server 2005 dane katalogu).

    Important noteImportant Note:

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

    Uwaga

    Kopiowanie plików za pośrednictwem sieci na dysku na komputerze zdalnym przy użyciu uniwersalnej nazwy konwencji (UNC Universal konwencja nazewnictwa) z lokalizacji zdalnej.Nazwa UNC ma postać \\Nazwa_serwera\ nazwaudziału\ ścieżka\ nazwę pliku.Jak w przypadku zapisywania plików na lokalnym dysku twardym, konto użytkownika używane przez SQL Server musi mieć udzielone uprawnienia wymagane do odczytu lub zapisu do pliku znajdującego się na dysku zdalnym.

  3. Dołączanie skopiowane pubs bazy danych i, opcjonalnie, plików dziennika do wystąpienie SQL Server 2005 (w tym przykładzie użyto tej samej nazwie bazy danych). W SQL Server Management Studio, otwórz nową kwerendę Edytor kwerend i połącz się z wystąpienie serwera, na której chcesz dołączyć bazę danych.

    Uwaga

    Aby uzyskać więcej informacji zobacz Okno Edytor kwerend aparatu Server Management Studio bazy danych SQL.

    Wykonaj następujące czynności CREATE DATABASE Instrukcja.

    USE master;
    GO
    CREATE DATABASE pubs ON PRIMARY 
       (FILENAME = 
          'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\pubs.mdf')
       LOG ON (FILENAME = 
          'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\pubs_log.ldf')
       FOR ATTACH;
    GO
    

    Uwaga

    W SQL Server Management Studio, nowo dołączonego baza danych nie jest natychmiast widoczne w Eksploratorze obiektów. To view the database, click the Object Explorer window, and select View > Refresh.Gdy Bazy danych węzeł jest rozwinięty, pojawia się na liście baz danych z nowo dołączonego bazą danych.

  4. Opcjonalnie można ponownie podłączyć oryginał pubs bazy danych do wystąpienie SQL Server 2000 za pomocą sp_attach_db Procedura przechowywana. W programie Query Analyzer wpisz następujące wyrażenie:

    USE master;
    Go
    EXEC sp_attach_db @dbname = N'pubs', 
       @filename1 = 
          N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf', 
       @filename2 = 
          N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf';
    GO