Dela via


Flytta en databas med hjälp av koppla från och fästa (Transact-SQL)

gäller för:SQL Server

Det här avsnittet beskriver hur du flyttar en frånkopplad databas till en annan plats och kopplar den till samma eller en annan serverinstans i SQL Server. Vi rekommenderar dock att du flyttar databaser med hjälp av den planerade omlokaliseringsproceduren ALTER DATABASE i stället för att koppla från och koppla samman. Mer information finns i Flytta användardatabaser.

Viktig

Vi rekommenderar att du inte kopplar eller återställer databaser från okända eller ej betrodda källor. Sådana databaser kan innehålla skadlig kod som kan köra oavsiktlig Transact-SQL kod eller orsaka fel genom att ändra schemat eller den fysiska databasstrukturen. Innan du använder en databas från en okänd eller obetrodd källa kör du DBCC CHECKDB- på databasen på en icke-produktionsserver och undersöker även koden, till exempel lagrade procedurer eller annan användardefinierad kod, i databasen.

Procedur

Flytta en databas med hjälp av koppla från och koppla till

  1. Koppla från databasen. Mer information finns i Koppla från en databas.

  2. Flytta den frånkopplade databasfilen eller filerna och loggfilen eller filerna till den nya platsen i fönstret Windows Explorer eller Kommandotolken i Windows.

    Du bör flytta loggfilerna även om du tänker skapa nya loggfiler. I vissa fall kräver en återanslutning av en databas att dess befintliga loggfiler används. Behåll därför alltid alla frånkopplade loggfiler tills databasen har kopplats framgångsrikt utan dem.

    Anteckning

    Om du försöker koppla databasen utan att ange loggfilen letar bifoga-åtgärden efter loggfilen på dess ursprungliga plats. Om det fortfarande finns en kopia av loggen på den ursprungliga platsen bifogas kopian. Om du vill undvika att använda den ursprungliga loggfilen anger du antingen sökvägen till den nya loggfilen eller tar bort den ursprungliga kopian av loggfilen (när du har kopierat den till den nya platsen).

  3. Bifoga de kopierade filerna. Mer information finns i Bifoga en databas.

Exempel

I följande exempel skapas en kopia av databasen AdventureWorks2022 med namnet MyAdventureWorks. De Transact-SQL-uttrycken körs i ett frågeredigerarefönster som är anslutet till den serverinstans som är kopplad till.

  1. Koppla från databasen AdventureWorks2022 genom att köra följande Transact-SQL-instruktioner:

    USE master;  
    GO  
    EXEC sp_detach_db @dbname = N'AdventureWorks2022';  
    GO  
    
  2. Med valfri metod kopierar du databasfilerna (AdventureWorks208R2_Data.mdf och AdventureWorks208R2_log) till: C:\MySQLServer\AdventureWorks208R2_Data.mdf respektive C:\MySQLServer\AdventureWorks208R2_Log.ldf.

    Viktig

    För en produktionsdatabas placerar du databasen och transaktionsloggen på separata diskar.

    Om du vill kopiera filer över nätverket till en disk på en fjärrdator använder du UNC-namnet (Universal Naming Convention) för fjärrplatsen. Ett UNC-namn tar formen \\Servernamn\Delningsnamn\Sökväg\Filnamn. Precis som när du skriver filer till den lokala hårddisken måste de behörigheter som krävs för att läsa eller skriva till en fil på fjärrdisken beviljas det användarkonto som används av instansen av SQL Server.

  3. Bifoga den flyttade databasen och eventuellt dess logg genom att köra följande Transact-SQL-instruktioner:

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

    I SQL Server Management Studio visas inte en nyligen ansluten databas direkt i Object Explorer. Om du vill visa databasen klickar du på View i Object Explorer, och sedan Uppdatera. När noden Databaser expanderas i Object Explorer visas nu den nyligen anslutna databasen i listan över databaser.

Se även

Databas Koppla från och ansluta (SQL Server)