Sdílet prostřednictvím


Odpojení a připojení databáze (SQL Server)

platí pro:SQL Server

Soubory protokolů dat a transakcí databáze je možné odpojit a pak je znovu připojit ke stejné nebo jiné instanci SQL Serveru. Odpojení a připojení databáze je užitečné, pokud chcete databázi změnit na jinou instanci SQL Serveru na stejném počítači nebo přesunout databázi.

Povolení

Oprávnění k přístupu k souborům se nastavují během několika databázových operací, včetně odpojení nebo připojení databáze.

Důležité

Doporučujeme nepřiložit nebo obnovit databáze z neznámých nebo nedůvěryhodných zdrojů. Takové databáze můžou obsahovat škodlivý kód, který by mohl spouštět nezamýšlené Transact-SQL kód nebo způsobit chyby úpravou schématu nebo fyzické struktury databáze. Než použijete databázi z neznámého nebo nedůvěryhodného zdroje, spusťte na databázi na neprodukčním serveru databázi dbCC CHECKDB (Transact-SQL) a také zkontrolujte kód, jako jsou uložené procedury nebo jiný uživatelem definovaný kód v databázi.

Odpojení databáze

Odpojení databáze ji odebere z instance SQL Serveru, ale ponechá databázi nedotčenou ve svých datových souborech a souborech transakčních protokolů. Tyto soubory lze pak použít k připojení databáze k jakékoli instanci SQL Serveru, včetně serveru, ze kterého byla databáze odpojena.

Databázi nemůžete odpojit, pokud platí některá z následujících možností:

  • Databáze se replikuje a publikuje. Pokud se replikuje, musí být databáze nepublikovaná. Než ho budete moct odpojit, musíte publikování zakázat spuštěním sp_replicationdboption.

    Poznámka:

    Pokud nemůžete použít sp_replicationdboption, můžete replikaci odstranit spuštěním sp_removedbreplication.

  • Na databázi existuje snímek databáze.

    Než můžete databázi odpojit, musíte odstranit všechny její snímky. Další informace najdete v tématu Smazání snímku databáze (Transact-SQL).

    Poznámka:

    Snímek databáze nelze oddělit ani připojit.

  • Databáze je součástí skupiny dostupnosti AlwaysOn.

    Databázi nejde odpojit, dokud ji neodeberete ze skupiny dostupnosti. Další informace najdete v tématu Odebrání primární databáze ze skupiny dostupnosti AlwaysOn.

  • Databáze se zrcadlí v relaci zrcadlení databáze.

    Databázi nelze odpojit, dokud není relace ukončena. Pro více informací viz Odstranění zrcadlení databáze (SQL Server).

  • Databáze je podezřelá. Podezřelá databáze se nedá odpojit. než ho budete moct odpojit, musíte ho umístit do nouzového režimu. Další informace o tom, jak umístit databázi do režimu tísňového volání, naleznete v tématu ALTER DATABASE (Transact-SQL).

  • Databáze je systémová databáze.

Zálohování, obnovení a odpojení

Odpojení databáze jen pro čtení ztratí informace o rozdílových základech rozdílových záloh. Další informace naleznete v tématu rozdílové zálohování (SQL Server).

Reakce na chyby odpojení

Chyby vygenerované při odpojení databáze mohou zabránit tomu, aby se databáze zavřela čistě a transakční protokol se znovu sestavil. Pokud se zobrazí chybová zpráva, proveďte následující opravné akce:

  1. Znovu připojte všechny soubory přidružené k databázi, nejen primární soubor.

  2. Vyřešte problém, který způsobil chybovou zprávu.

  3. Odpojte databázi znovu.

Připojení databáze

Můžete připojit zkopírovanou nebo odpojenou databázi SQL Serveru. Když připojíte databázi SYSTÉMU SQL Server 2005 (9.x), která obsahuje soubory fulltextového katalogu k instanci serveru SQL Server, soubory katalogu jsou připojeny z předchozího umístění spolu s ostatními databázovými soubory, stejně jako v SYSTÉMU SQL Server 2005 (9.x). Další informace naleznete v tématu Upgrade Full-Text Vyhledávání.

Při připojování databáze musí být k dispozici všechny datové soubory (.mdf a .ndf soubory). Pokud má některý datový soubor jinou cestu než při prvním vytvoření nebo posledním připojení databáze, musíte zadat aktuální cestu k souboru.

Poznámka:

Pokud je připojený primární datový soubor jen pro čtení, databázový stroj předpokládá, že databáze je jen pro čtení.

Při prvním připojení šifrované databáze k instanci SQL Serveru musí vlastník databáze otevřít hlavní klíč databáze (DMK) spuštěním následujícího příkazu: OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password' Doporučujeme povolit automatické dešifrování dmK spuštěním následujícího příkazu: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY. Další informace naleznete v tématu CREATE MASTER KEY (Transact-SQL) a ALTER MASTER KEY (Transact-SQL).

Požadavek na připojení souborů protokolu částečně závisí na tom, jestli je databáze pro čtení a zápis nebo jen pro čtení, a to následujícím způsobem:

  • Pro databázi pro čtení i zápis můžete obvykle připojit soubor protokolu v novém umístění. V některých případech ale opětovné připojení databáze vyžaduje jeho existující soubory protokolu. Proto je důležité vždy ponechat všechny odpojené soubory protokolu, dokud databáze nebude úspěšně připojena bez nich.

    Pokud databáze pro čtení i zápis obsahuje jeden soubor protokolu a nezadáte pro soubor protokolu nové umístění, operace připojení bude vypadat ve starém umístění souboru. Pokud se najde starý soubor protokolu, použije se bez ohledu na to, zda byla databáze vypnuta čistě. Pokud se ale starý soubor protokolu nenajde a databáze byla čistě vypnutá a nemá žádný aktivní řetěz protokolů, operace připojení se pokusí vytvořit nový soubor protokolu pro databázi.

  • Pokud je připojený primární datový soubor jen pro čtení, databázový stroj předpokládá, že databáze je jen pro čtení. Pro databázi jen pro čtení musí být soubor protokolu nebo soubory dostupné v umístění určeném v primárním souboru databáze. Nový soubor protokolu nejde sestavit, protože SQL Server nemůže aktualizovat umístění protokolu uloženého v primárním souboru.

Změny metadat při připojování databáze

Při odpojení databáze jen pro čtení a následné opětovné připojení se informace o zálohování aktuální rozdílové základny ztratí. Rozdílová základna je nejnovější úplné zálohování všech dat v databázi nebo v podmnožině souborů nebo skupin souborů databáze. Bez informací master o základním zálohování se databáze stane nesynchronizovanou s databází určenou jen pro čtení, takže rozdílové zálohy, které byly následně pořízeny, můžou poskytovat neočekávané výsledky. Proto pokud používáte rozdílové zálohy s databází jen pro čtení, měli byste vytvořit novou rozdílovou základnu tak, že po opětovném připojení databáze vytvoříte úplnou zálohu. Informace o rozdílových zálohách najdete v tématu Rozdílové zálohy (SQL Server).

Při připojení dojde k spuštění databáze. Připojení databáze ji obvykle umístí do stejného stavu, ve kterém byla při odpojení nebo zkopírování. Operace připojení a odpojení však obě deaktivují řetězení vlastnictví napříč databázemi. Informace o tom, jak povolit řetězení vlastnictví mezi databázemi, najdete v odstavci Možnost konfigurace serveru.

Důležité

Ve výchozím nastavení a pro zabezpečení jsou možnosti is_broker_enabled, is_honor_broker_priority_on a is_trustworthy_on vždy vypnuté při připojení databáze. Informace o tom, jak tyto možnosti nastavit, naleznete v tématu ALTER DATABASE (Transact-SQL). Další informace o metadatech naleznete v tématu Správa metadat při zpřístupnění databáze na jiném serveru.

Zálohování, obnovení a připojení

Stejně jako všechny databáze, které jsou plně nebo částečně offline, není možné připojit databázi s obnovovacími soubory. Pokud zastavíte sekvenci obnovení, můžete databázi připojit. Potom můžete restartovat sekvenci obnovení.

Připojení databáze k jiné instanci serveru

Důležité

V dřívějších verzích nelze připojit databázi vytvořenou novější verzí SQL Serveru. To brání fyzickému použití databáze se starší verzí databázového stroje. Týká se to ale stavu metadat a nemá vliv na úroveň kompatibility databáze. Další informace naleznete v tématu ALTER DATABASE (Transact-SQL) úroveň kompatibility.

Pokud chcete uživatelům a aplikacím poskytnout konzistentní prostředí, budete muset při připojení databáze k jiné instanci serveru znovu vytvořit některá nebo všechna metadata pro databázi v jiné instanci serveru. Tato metadata zahrnují například přihlášení a úlohy. Další informace naleznete v tématu Správa metadat při zpřístupnění databáze na jiném serveru.

Task Article
Odpojení databáze - sp_detach_db (Transact-SQL)
- Odpojit databázi
Připojení databáze - CREATE DATABASE
- Připojení databáze
- sp_attach_db (Transact-SQL)
- sp_attach_single_file_db (Transact-SQL)
Aktualizace databáze pomocí operací odpojení a připojení - Aktualizace databáze pomocí odpojení a připojení (Transact-SQL)
Přesun databáze pomocí operací odpojení a připojení - Přesunutí databáze pomocí odpojení a připojení (Transact-SQL)
Odstranění snímku databáze - Odstranění snímku databáze (Transact-SQL)