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

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.

W SQL Server 2008 R2, można odłączyć i dołączanie operacji uaktualnić baza danych użytkownika, z SQL Server 2000 lub SQL Server 2005.Po dołączeniu SQL Server 2005 lub SQL Server 2000 lub SQL Server 2008 bazy danych do SQL Server 2008 R2, bazy danych staje się natychmiast dostępne, a następnie zostanie automatycznie uaktualniony.

Jednakże stosuje się następujące ograniczenia:

  • Kopie wzorca, model lub msdb bazy danych utworzonej 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 uaktualniania replikacja, po zakończeniu operacji Dołącz.Aby uzyskać więcej informacji, zobacz sp_vupgrade_replication (języka Transact-SQL).

    • Jeśli dołączyć bazę danych do innego serwera wystąpienie (niezależnie od wersja), należy wykonać sp_removedbreplication do usunięcia replikacja, po zakończeniu operacji Dołącz.Aby uzyskać więcej informacji, zobacz sp_removedbreplication (języka Transact-SQL).

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

    Ważna informacjaWażne:

    W SQL Server 2000 Service Pack 3 (SP3) i nowszych wersjach SQL Server, dołączanie lub odłączanie Wyłącz międzybazowy łańcuch własności bazy danych przez ustawienie jego granic tworzenie łańcucha własności db opcji do 0.Informacje dotyczące włączania, łańcuch, zobacz Opcja łańcuch własności krzyżowego db.

Opcje uaktualnienia indeksu pełnotekstowego

Ostrzeżenie

Po dołączeniu SQL Server 2005 lub SQL Server 2000 bazy danych do SQL Server 2008 R2, bazy danych staje się natychmiast dostępne, a następnie zostanie automatycznie uaktualniony.If the database has full-text indexes, the upgrade process either imports, resets, or rebuilds them, depending on the setting of the upgrade_option server property.Jeśli opcja uaktualnienia zestaw do zaimportowania (upgrade_option = 2) lub odbudować (upgrade_option = 0), indeksy pełnotekstowe będzie niedostępny podczas uaktualniania systemu.Zależnie od ilości danych indeksowany, importowanie może potrwać kilka godzin i odbudowy może potrwać do dziesięciu razy dłużej.Należy zauważyć, że kiedy opcja uaktualnienia zestaw do importowania, odbudowa skojarzone indeksy pełnotekstowe Jeśli wykaz pełnotekstowy nie jest dostępny.Aby zmienić ustawienie upgrade_option właściwość serwera, należy zastosować sp_fulltext_service.

Procedury

Uaktualnienie bazy danych przy użyciu odłączyć i Dołącz

  1. Odłączyć bazę danych od wystąpienie SQL Server 7.0 lub SQL Server 2000 za pomocą sp_detach_db procedura składowana.

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

    Ostrzeżenie

    W SQL Server 2005, ta procedura składowana ma nowe opcje.Aby uzyskać więcej informacji, zobacz sp_detach_db (języka Transact-SQL).

  2. Opcjonalnie można przenieść odłączony plik bazy danych lub pliki i plik dziennika lub plików.

    Nawet jeśli zamierzasz 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 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.Oryginał dziennika nadal istnieje w tej lokalizacji, załącza się 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. Załączanie plików skopiowanych do wystąpienie SQL Server 2005 za pomocą Tworzenie bazy danych instrukcja z opcją dla DOŁĄCZANIA lub dla ATTACH_REBUILD_LOG.

    Ostrzeżenie

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

  4. Zaleca się, aby uruchomić DBCC UPDATEUSAGE na uaktualnioną bazą danych.

    W starszych wersjach SQL Server, liczby wierszy wartości tabela i indeks i licznik strona może stać się nieprawidłowe.Dlatego baz danych utworzonych w wersjach przed SQL Server 2005 może zawierać niepoprawne liczniki.Po uaktualnieniu bazy danych w SQL Server 2005, zaleca się uruchomienie DBCC UPDATEUSAGE, aby poprawić wszelkie nieprawidłowe liczniki.Ta instrukcja DBCC poprawia wierszy, używanych stron, strona zarezerwowane, liść stron i strona danych zlicza dla każdej partycji w tabela lub indeksu.Aby uzyskać więcej informacji, zobacz DBCC UPDATEUSAGE (Transact-SQL).

  5. Opcjonalnie, jeśli wysyłasz kopię bazy danych (zamiast przenieść) można Podłącz oryginalnej bazy danych na wystąpienie SQL Server 7.0 lub SQL Server 2000 za pomocą sp_attach_db lub sp_attach_single_file_db procedura składowana.

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

Poziom zgodności bazy danych po uaktualnieniu

Poziomy zgodności z tempdb, model, msdb i zasobów bazy danych są zestaw do 100, po uaktualnieniu.Wzorca bazy danych systemu zachowuje poziom zgodności, jak przed uaktualnieniem, chyba że poziom był mniejszy niż 80.Jeśli poziom zgodności wzorca była mniejsza niż 80 przed uaktualnieniem, jest 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śli poziom zgodności został 70 lub mniej przed uaktualnieniem uaktualnionej bazy danych, poziom zgodności jest zestaw do 80, który jest poziom najniższej obsługiwanych zgodności w SQL Server 2008 R2.

Ostrzeżenie

Nowych baz danych użytkowników będą dziedziczyły poziom zgodności model bazy danych.

Zarządzanie metadanych w wystąpieniu serwera uaktualniony

Podczas dołączania bazy danych do innego wystąpienia serwera, aby zapewnić spójny wygląd użytkowników i aplikacje, trzeba odtworzyć niektórych lub wszystkich metadane dla bazy danych, takie jak logowania, zadania i uprawnień na wystąpienie serwera.Aby uzyskać więcej informacji, zobacz Zarządzanie metadane podczas tworzenia bazy danych na inne wystąpienie serwera.

Przykłady

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

  1. Połą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 składowana.

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

    Ważna informacjaWażne:

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

    Ostrzeżenie

    Do kopiowania plików przez sieć do dysku na komputerze zdalnym za pomocą uniwersalnego konwencja nazewnictwa nazw (UNC) z lokalizacji zdalnej.Nazwa UNC ma postać \nazwa_serwera\nazwa_udziału\ścieżkę\nazwę pliku.Do zapisywania plików na lokalnym dysku twardym, konto użytkownika używane przez SQL Server przyznano uprawnienia wymagane do odczytu lub zapisu do pliku na dysku zdalnego.

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

    Ostrzeżenie

    Aby uzyskać więcej informacji, zobacz Okno edytora zapytań aparatu bazy danych programu SQL Server Management Studio.

    Wykonać następujące CREATE DATABASE instrukcja.

    USE master;
    GO
    CREATE DATABASE pubs ON PRIMARY 
       (FILENAME = 
          'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\pubs.mdf')
       LOG ON (FILENAME = 
          'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\pubs_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.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 nowo dołączonego bazy danych.

  4. Opcjonalnie można ponownie dołączyć oryginał pubs bazy danych do wystąpienie SQL Server 2000 za pomocą sp_attach_db procedura składowana.W programie Query Analyzer wprowadź następujące polecenie:

    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