Sdílet prostřednictvím


Přesunutí databáze pomocí odpojení a připojení (Transact-SQL)

platí pro:SQL Server

Toto téma popisuje, jak přesunout odpojenou databázi do jiného umístění a znovu ji připojit ke stejné nebo jiné instanci serveru v SQL Serveru. Doporučujeme ale přesunout databáze pomocí plánovaného postupu přemístění ALTER DATABASE místo odpojení a připojení. Další informace naleznete v tématu Přesun uživatelských databází.

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. Před použitím databáze z neznámého nebo nedůvěryhodného zdroje spusťte DBCC CHECKDB v databázi na neprodukčním serveru a také zkontrolujte kód, jako jsou uložené procedury nebo jiný uživatelem definovaný kód v databázi.

Postup

Přesunutí databáze pomocí odpojení a připojení

  1. Odpojte databázi. Další informace naleznete v tématu Odpojení databáze.

  2. V okně Průzkumníka Windows nebo příkazového řádku windows přesuňte odpojený soubor databáze nebo soubory a soubor protokolu nebo soubory do nového umístění.

    Soubory protokolu byste měli přesunout i v případě, že máte v úmyslu vytvořit nové soubory protokolu. V některých případech opětovné připojení databáze vyžaduje jeho existující soubory protokolu. Proto vždy uchovávejte všechny odpojené soubory protokolu, dokud nebude databáze úspěšně připojena bez nich.

    Poznámka

    Pokud se pokusíte připojit databázi bez zadání souboru protokolu, operace připojení vyhledá soubor protokolu v původním umístění. Pokud kopie protokolu stále existuje v původním umístění, je tato kopie připojena. Pokud se chcete vyhnout použití původního souboru protokolu, zadejte cestu nového souboru protokolu nebo odeberte původní kopii souboru protokolu (po zkopírování do nového umístění).

  3. Připojte zkopírované soubory. Další informace najdete v tématu Připojení databáze.

Příklad

Následující příklad vytvoří kopii databáze AdventureWorks2022 s názvem MyAdventureWorks. Příkazy Transact-SQL se spouští v okně Editoru dotazů, které je připojené k instanci serveru, ke které je připojena.

  1. Odpojte databázi AdventureWorks2022 spuštěním následujících příkazů Transact-SQL:

    USE master;  
    GO  
    EXEC sp_detach_db @dbname = N'AdventureWorks2022';  
    GO  
    
  2. Pomocí zvolené metody zkopírujte soubory databáze (AdventureWorks208R2_Data.mdf a AdventureWorks208R2_log) do složky C:\MySQLServer\AdventureWorks208R2_Data.mdf a C:\MySQLServer\AdventureWorks208R2_Log.ldf.

    Důležitý

    Pro produkční databázi umístěte databázi a transakční protokol na samostatné disky.

    Pokud chcete kopírovat soubory přes síť na disk ve vzdáleném počítači, použijte název UNC (Universal Nameming Convention) vzdáleného umístění. Název UNC má tvar \\Název serveru\Název_sdílené složky\Cesta\Název_souboru. Stejně jako při zápisu souborů na místní pevný disk musí být udělena příslušná oprávnění potřebná ke čtení nebo zápisu do souboru na vzdáleném disku pro uživatelský účet používaný instancí SQL Serveru.

  3. Připojte přesunutou databázi a volitelně její protokol spuštěním následujících příkazů Transact-SQL:

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

    V aplikaci SQL Server Management Studio není nově připojená databáze okamžitě viditelná v Průzkumníku objektů. Chcete-li zobrazit databázi, klepněte v Průzkumníku objektů na tlačítko Zobrazení, a potom Aktualizovat. Po rozbalení uzlu Databáze v Průzkumníku objektů se nově připojená databáze zobrazí v seznamu databází.

Viz také

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