Udostępnij przez


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

Dotyczy:SQL Server

Pliki danych i pliki dziennika transakcji bazy danych można odłączyć, a następnie ponownie dołączyć do tej samej lub innej instancji SQL Server. Odłączanie i dołączanie bazy danych jest przydatne, jeśli chcesz zmienić bazę danych na inne wystąpienie programu SQL Server na tym samym komputerze lub przenieść bazę danych.

Permissions

Uprawnienia dostępu do plików są ustawiane podczas kilku operacji bazy danych, w tym odłączania lub dołączania bazy danych.

Ważne

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 na niej na serwerze nieprodukcyjnym polecenie DBCC CHECKDB (Transact-SQL), a także sprawdź kod w bazie danych, taki jak procedury składowane lub inny kod zdefiniowany przez użytkownika.

Odłączanie bazy danych

Odłączenie bazy danych usuwa ją z wystąpienia programu SQL Server, ale pozostawia bazę danych nienaruszoną w plikach danych i plikach dziennika transakcji. Te pliki mogą następnie służyć do dołączania bazy danych do dowolnego wystąpienia programu SQL Server, w tym serwera, z którego baza danych została odłączona.

Nie można odłączyć bazy danych, jeśli którakolwiek z następujących wartości jest prawdziwa:

  • Baza danych jest replikowana i publikowana. W przypadku replikacji baza danych musi zostać cofnięto publikowanie. Aby można było go odłączyć, należy wyłączyć publikowanie, uruchamiając sp_replicationdboption.

    Uwaga / Notatka

    Jeśli nie możesz użyć sp_replicationdboption, możesz usunąć replikację, uruchamiając sp_removedbreplication.

  • W bazie danych istnieje migawka z bazy danych.

    Zanim odłączysz bazę danych, musisz usunąć wszystkie jej migawki. Aby uzyskać więcej informacji, zobacz Drop a Database Snapshot (Transact-SQL).

    Uwaga / Notatka

    Migawki bazy danych nie można odłączyć ani dołączyć.

  • Baza danych jest częścią zawsze włączonej grupy dostępności.

    Nie można odłączyć bazy danych, dopóki nie zostanie ona usunięta z grupy dostępności. Aby uzyskać więcej informacji, zobacz Usuwanie podstawowej bazy danych z grupy dostępności Always On.

  • Baza danych jest dublowana w sesji dublowania bazy danych.

    Nie można odłączyć bazy danych, chyba że sesja zostanie zakończona. Więcej informacji można znaleźć w artykule Usuwanie mirroringu bazy danych (SQL Server).

  • Baza danych jest podejrzana. Podejrzanej bazy danych nie można odłączyć; zanim będzie można go odłączyć, należy umieścić go w trybie awaryjnym. Aby uzyskać więcej informacji na temat sposobu umieszczania bazy danych w trybie awaryjnym, zobacz ALTER DATABASE (Transact-SQL).

  • Baza danych jest bazą systemową.

Tworzenie kopii zapasowej, przywracanie i odłączanie

Odłączenie bazy danych tylko do odczytu prowadzi do utraty informacji o bazach różnicowych kopii zapasowych. Aby uzyskać więcej informacji, zobacz kopie zapasowe różnicowe (SQL Server).

Reagowanie na błędy odłączania

Błędy generowane podczas odłączania bazy danych mogą uniemożliwić czyste zamknięcie bazy danych i ponowne skompilowanie dziennika transakcji. Jeśli zostanie wyświetlony komunikat o błędzie, wykonaj następujące akcje naprawcze:

  1. Ponownie dołącz wszystkie pliki skojarzone z bazą danych, a nie tylko plik podstawowy.

  2. Rozwiąż problem, który spowodował komunikat o błędzie.

  3. Ponownie odłącz bazę danych.

Dołączanie bazy danych

Możesz dołączyć skopiowaną lub odłączioną bazę danych programu SQL Server. Po dołączeniu bazy danych programu SQL Server 2005 (9.x) zawierającej pliki wykazu pełnotekstowego do wystąpienia serwera programu SQL Server pliki wykazu są dołączane z poprzedniej lokalizacji wraz z innymi plikami bazy danych, tak samo jak w programie SQL Server 2005 (9.x). Aby uzyskać więcej informacji, zobacz Upgrade Full-Text Search.

Po dołączeniu bazy danych wszystkie pliki danych (.mdf i .ndf pliki) muszą być dostępne. Jeśli jakikolwiek plik danych ma inną ścieżkę od momentu utworzenia lub ostatniego dołączenia bazy danych, musisz określić bieżącą ścieżkę pliku.

Uwaga / Notatka

Jeśli dołączany plik danych podstawowych jest tylko do odczytu, aparat bazy danych zakłada, że baza danych jest tylko do odczytu.

Gdy zaszyfrowana baza danych jest najpierw dołączona do wystąpienia programu SQL Server, właściciel bazy danych musi otworzyć klucz główny bazy danych (DMK), wykonując następującą instrukcję: OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'. Zalecamy włączenie automatycznego odszyfrowywania zestawu DMK przez wykonanie następującej instrukcji: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY. Aby uzyskać więcej informacji, zobacz CREATE MASTER KEY (Transact-SQL) i ALTER MASTER KEY (Transact-SQL).

Wymóg dołączenia plików dziennika częściowo zależy od tego, czy baza danych jest do odczytu i zapisu, czy tylko do odczytu, w następujący sposób:

  • W przypadku bazy danych odczytu i zapisu zwykle można dołączyć plik dziennika w nowej lokalizacji. Jednak w niektórych przypadkach ponowne dołączenie bazy danych wymaga istniejących plików dziennika. Dlatego ważne jest, aby zawsze przechowywać wszystkie odłączone pliki dziennika do momentu pomyślnego dołączenia bazy danych bez nich.

    Jeśli baza danych odczytu i zapisu ma jeden plik dziennika i nie określisz nowej lokalizacji dla pliku dziennika, operacja dołączania będzie wyglądać w starej lokalizacji pliku. Jeśli stary plik dziennika zostanie znaleziony, jest używany niezależnie od tego, czy baza danych została całkowicie zamknięta. Jeśli jednak stary plik dziennika nie zostanie znaleziony, a baza danych została zamknięta poprawnie i nie ma aktywnego łańcucha dzienników, operacja dołączania próbuje utworzyć nowy plik dziennika dla bazy danych.

  • Jeśli dołączany plik danych podstawowych jest tylko do odczytu, aparat bazy danych zakłada, że baza danych jest tylko do odczytu. W przypadku bazy danych tylko do odczytu plik dziennika lub pliki muszą być dostępne w lokalizacji określonej w pliku podstawowym bazy danych. Nie można skompilować nowego pliku dziennika, ponieważ program SQL Server nie może zaktualizować lokalizacji dziennika przechowywanej w pliku podstawowym.

Zmiany metadanych dotyczące dołączania bazy danych

Po odłączeniu i ponownym dołączeniu bazy danych tylko do odczytu, informacje o aktualnej bazie różnicowej zostają utracone. Baza różnicowa to najnowsza pełna kopia zapasowa wszystkich danych w bazie danych lub w podzestawie plików lub grup plików bazy danych. Bez informacji master o podstawowej kopii zapasowej baza danych staje się niezsynchronizowana z bazą danych tylko do odczytu, więc wykonywane później różnicowe kopie zapasowe mogą zapewnić nieoczekiwane wyniki. W związku z tym, jeśli używasz różnicowych kopii zapasowych z bazą danych tylko do odczytu, należy ustanowić nową bazę różnicową, wykonując pełną kopię zapasową po ponownym dołączeniu bazy danych. Aby uzyskać informacje na temat różnicowych kopii zapasowych, zobacz Różnicowe kopie zapasowe (SQL Server).

Podczas dołączania następuje uruchamianie bazy danych. Ogólnie rzecz biorąc, dołączanie bazy danych umieszcza ją w tym samym stanie, w których znajdowała się, gdy została odłączona lub skopiowana. Jednak operacje dołączania i odłączania wyłączają łańcuch własności między bazami danych. Aby uzyskać informacje o tym, jak włączyć łańcuchowanie własności między bazami danych, zobacz opcję konfiguracji serwera.

Ważne

Domyślnie i dla bezpieczeństwa opcje is_broker_enabled, is_honor_broker_priority_on oraz is_trustworthy_on są ustawiane na wyłączone za każdym razem, gdy baza danych jest podłączana. Aby uzyskać informacje o sposobie ustawiania tych opcji, zobacz ALTER DATABASE (Transact-SQL). Aby uzyskać więcej informacji na temat metadanych, zobacz Zarządzanie metadanymi podczas udostępniania bazy danych na innym serwerze.

Tworzenie kopii zapasowej, przywracanie i dołączanie

Podobnie jak w przypadku każdej bazy danych, która jest w pełni lub częściowo w trybie offline, nie można dołączyć bazy danych z przywracaniem plików. Jeśli zatrzymasz sekwencję przywracania, możesz dołączyć bazę danych. Następnie możesz ponownie uruchomić sekwencję przywracania.

Dołączanie bazy danych do innego wystąpienia serwera

Ważne

Nie można dołączyć bazy danych utworzonej przez najnowszą wersję programu SQL Server we wcześniejszych wersjach. To uniemożliwia użycie bazy danych ze starszą wersją silnika bazy danych. Dotyczy to jednak stanu metadanych i nie ma wpływu na poziom zgodności bazy danych. Aby uzyskać więcej informacji, zobacz ALTER DATABASE (Transact-SQL) poziom zgodności.

Aby zapewnić użytkownikom i aplikacjom spójne środowisko, podczas dołączania bazy danych do innego wystąpienia serwera może być konieczne ponowne utworzenie niektórych lub wszystkich metadanych bazy danych w innym wystąpieniu serwera. Te metadane obejmują takie elementy jak identyfikatory logowania i zadania. Aby uzyskać więcej informacji, zobacz Zarządzanie metadanymi podczas udostępniania bazy danych na innym serwerze.

Zadanie Article
Odłączanie bazy danych - sp_detach_db (Transact-SQL)
- Odłączanie bazy danych
Dołączanie bazy danych - TWORZENIE BAZY DANYCH
- Dołączanie bazy danych
- sp_attach_db (Transact-SQL)
- sp_attach_single_file_db (Transact-SQL)
Uaktualnianie bazy danych przy użyciu operacji odłączania i dołączania - Uaktualnianie bazy danych przy użyciu odłączania i dołączania (Transact-SQL)
Przenoszenie bazy danych przy użyciu operacji odłączania i dołączania - Przenoszenie bazy danych przy użyciu odłączania i dołączania (Transact-SQL)
Usuń migawkę bazy danych - Usuwanie migawki bazy danych (Transact-SQL)