Dela via


Använd guiden Kopiera databas

gäller för:SQL Server

Guiden Kopiera databas flyttar eller kopierar enkelt databaser och vissa serverobjekt från en instans av SQL Server till en annan instans, utan serveravbrott. Med hjälp av den här guiden kan du utföra följande åtgärder:

  • Välj en käll- och målserver.
  • Välj en eller flera databaser att flytta eller kopiera.
  • Ange filplatsen för en eller flera databaser.
  • Kopiera inloggningar till målservern.
  • Kopiera stödobjekt, jobb, användardefinierade lagrade procedurer och felmeddelanden.
  • Schemalägg när databaserna ska flyttas eller kopieras.

Anmärkning

Överväger du att migrera till Azure SQL? Granska följande verktyg i stället för guiden Kopiera databas:

Begränsningar

  • Guiden Kopiera databas är inte tillgänglig i Express-utgåvan.

  • Guiden Kopiera databas kan inte användas för att kopiera eller flytta databaser som:

    • Är systemdatabaser (master,model,msdb,tempdb).
    • Är markerade för replikering.
    • Har markerats som otillgängliga, läser in, offline, återställer, misstänker eller i nödläge.
    • Lagra data eller loggfiler i Microsoft Azure Storage.
  • När du använder FileTableskan du inte använda guiden Kopiera databas på samma server eftersom guiden använder samma katalognamn.

  • Det går inte att flytta eller kopiera en databas till en tidigare version av SQL Server.

  • Om du väljer alternativet Flytta tar guiden bort källdatabasen automatiskt när databasen har flyttats. Guiden Kopiera databas tar inte bort en källdatabas om du väljer alternativet Kopiera. Dessutom kopieras markerade serverobjekt i stället för att flyttas till målet. databasen är det enda objekt som faktiskt flyttas.

  • Om du använder SQL Server Management Object-metoden för att flytta katalogen med fulltext måste du fylla i indexet igen efter flytten.

  • Metoden koppla från och koppla:

    1. Kopplar från databasen
    2. Flyttar eller kopierar databasen .mdf, .ndf, .ldf filer.
    3. Återansluter databasen på den nya platsen.

    För koppla från och koppla metod kan aktiva sessioner inte kopplas till databasen som flyttas eller kopieras för att undvika dataförlust eller inkonsekvens. För SQL Server Management Object-metoden tillåts aktiva sessioner eftersom databasen aldrig tas offline.

  • Om du överför SQL Server Agent-jobb som refererar till databaser som inte redan finns på målservern misslyckas hela åtgärden. Guiden försöker skapa ett SQL Server Agent-jobb innan databasen skapas. Som en lösning:

    1. Skapa en shell-databas på målservern med samma namn som den databas som ska kopieras eller flyttas. Se Skapa en databas.

    2. På sidan Konfigurera måldatabas väljer du Släpp valfri databas på målservern med samma namn och fortsätter sedan med databasöverföringen och skriver över befintliga databasfiler.

Varning

Metoden koppla från och koppla gör att ägarskapet för käll- och måldatabasen blir inställt på inloggningen som kör guiden Kopiera databas. Se ALTER AUTHORIZATION (Transact-SQL) för att ändra ägarskapet för en databas.

  • Kopieringsdatabasen misslyckas om den model systemdatabasen på målservern innehåller ett användarkonto som också finns i källdatabasen. Det här felet förväntas eftersom en ny databas automatiskt innehåller databasobjekt, inklusive användare, från model. Sedan kan inte kopieringsdatabasstegen skapa användaren med samma namn i måldatabasen. För att förhindra, se till att model-databasen på målservern och källdatabasen i guiden kopiera databas inte har några användare med samma namn.

Förutsättningar

  • Kontrollera att SQL Server-agenten har startats på målservern.
  • Kontrollera att data- och loggfilkatalogerna på källservern kan nås från målservern.
  • Under koppla från och koppla-metoden måste det finnas en SQL Server Agent Proxy för SQL Server Integration Services-undersystemet (SSIS) på målservern med en behörighet som kan komma åt filsystemet för både käll- och målservrarna. Mer information om proxyservrar finns i Skapa en SQL Server-agentproxy.

Viktig

Under koppla från och koppla-metoden misslyckas kopierings- eller flyttprocessen om ett Integration Services Proxy-konto inte används. I vissa situationer kommer källdatabasen inte att återanslutas till källservern och alla NTFS-säkerhetsbehörigheter tas bort från data- och loggfilerna. Om detta händer navigerar du till dina filer, tillämpar relevanta behörigheter på nytt och kopplar sedan databasen till din instans av SQL Server igen.

Rekommendationer

Behörigheter

Du måste vara medlem i sysadmin fast serverroll på både käll- och målservrarna.

Kopiera databas-guiden

  1. Starta guiden Kopiera databas på antingen käll- eller destinationsinstansen av SQL Server i SQL Server Management Studio från Object Explorer och expandera Databaser.
  2. Högerklicka sedan på en databas, peka på Uppgifteroch välj sedan Kopiera databas.
  3. Om välkomstsidan Välkommen till guiden Kopiera databas visas väljer du Nästa.

Välj en källserver

Används för att ange servern med databasen som ska flyttas eller kopieras och för att ange autentiseringsinformation. När du har valt autentiseringsmetoden och loggat in väljer du Nästa för att upprätta anslutningen till källservern. Den här anslutningen är öppen under hela sessionen.

  • Källserver

    Används för att identifiera namnet på den server där databaserna som du vill flytta eller kopiera finns. Ange manuellt, eller välj ellipsmenyn för att navigera till den önskade servern. Servern måste vara minst SQL Server 2005.

  • Använda Windows-autentisering

    Tillåter att en användare ansluter via ett Microsoft Windows-användarkonto.

  • Använda SQL Server-autentisering

    Tillåter att en användare ansluter genom att ange ett användarnamn och lösenord för SQL Server-autentisering.

    • Användarnamn

      Namnet på inloggningen. Det här alternativet är bara tillgängligt om du har valt att ansluta med SQL Server-autentisering.

    • Lösenord

      Lösenord. Det här alternativet är bara tillgängligt om du har valt att ansluta med SQL Server-autentisering.

Välj en målserver

Används för att ange den server där databasen ska flyttas eller kopieras till. Om du ställer in käll- och målservrarna på samma serverinstans skapar du en kopia av databasen. I det här fallet måste du byta namn på databasen vid ett senare steg i guiden. Källdatabasnamnet kan endast användas för den kopierade eller flyttade databasen om namnkonflikter inte finns på målservern. Om det finns namnkonflikter måste du lösa dem manuellt på målservern innan du kan använda källdatabasnamnet där.

  • målserver
    Används för att identifiera namnet på den server som databaserna du vill flytta eller kopiera till finns. Ange målservernamnet manuellt eller välj ellipsen för att navigera till önskad server. Servern måste vara minst SQL Server 2005.

    Not

    Du kan använda en klustrad destinationsserver; guiden Kopiera databas ser till att du bara väljer delade enheter på en klustrad destinationsserver.

  • Använda Windows-autentisering
    Tillåter att en användare ansluter via ett Microsoft Windows-användarkonto.

  • Använda SQL Server-autentisering
    Tillåter att en användare ansluter genom att ange ett användarnamn och lösenord för SQL Server-autentisering.

    • Användarnamn
      Används för att ange användarnamnet som ska anslutas till. Det här alternativet är bara tillgängligt om du har valt att ansluta med SQL Server-autentisering.

    • Lösenord
      Används för att ange lösenordet för inloggningen. Det här alternativet är bara tillgängligt om du har valt att ansluta med SQL Server-autentisering.

Välj överföringsmetod

Välj antingen metoden koppla från och koppla till eller metoden SQL Management Object.

  • Använd metoden koppla från och koppla till

    Koppla från databasen från källservern, kopiera databasfilerna (.mdf, .ndfoch .ldf) till målservern och bifoga databasen på målservern. Den här metoden är vanligtvis den snabbare metoden eftersom huvudarbetet läser källdisken och skriver måldisken. Ingen SQL Server-logik krävs för att skapa objekt i databasen eller skapa datalagringsstrukturer. Den här metoden kan dock vara långsammare om databasen innehåller en stor mängd allokerat men oanvänt utrymme. Till exempel kopierar en ny och praktiskt taget tom databas som har skapats som allokerar 100 MB hela 100 MB, även om endast 5 MB är fullt.

    Not

    Den här metoden gör databasen otillgänglig för användare under överföringen.

    Varning

    Om ett fel inträffar kopplar du källdatabasen igen. När en databas kopieras kopplas de ursprungliga databasfilerna alltid tillbaka till källservern. Använd den här rutan om du vill koppla ursprungliga filer till källdatabasen igen om en databasflytt inte kan slutföras.

  • Använd SQL Management Object-metoden
    Den här metoden läser definitionen av varje databasobjekt i källdatabasen och skapar varje objekt i måldatabasen. Sedan överförs data från källtabellerna till måltabellerna och återskapar index och metadata.

    Anteckning

    Databasanvändare kan fortsätta att komma åt databasen under överföringen.

Välj databas

Välj en eller flera databaser som du vill flytta eller kopiera från källservern till målservern. Se begränsningar och restriktioner.

  • Flytta
    Flytta databasen till målservern.

  • Kopiera
    Kopiera databasen till målservern.

  • Källa
    Visar de databaser som finns på källservern.

  • Status
    Visar olika uppgifter om källdatabasen.

  • Uppdatera
    Uppdatera listan över databaser.

Konfigurera måldatabas

Ändra databasnamnet om det är lämpligt och ange plats och namn på databasfilerna. Den här sidan visas en gång för varje databas som flyttas eller kopieras.

  • Källdatabas
    Namnet på källdatabasen. Textrutan kan inte redigeras.

  • måldatabasen
    Namnet på måldatabasen som ska skapas, ändra efter behov.

  • Måldatabasfiler:

    • Filnamn
      Namnet på måldatabasfilen som ska skapas, ändra efter behov.

    • storlek (MB)
      Storleken på måldatabasfilen i megabyte.

    • Målmapp
      Mappen på målservern som är värd för måldatabasfilen ändrar du efter behov.

    • status
      Status

  • Om måldatabasen redan finns:
    Bestäm vilken åtgärd som ska vidtas om måldatabasen redan finns.

    • Stoppa överföringen om det finns en databas eller fil med samma namn på målet.

    • Släpp alla databaser på målservern med samma namn och fortsätt sedan med databasöverföringen och skriv över befintliga databasfiler.

Välj serverobjekt

Den här sidan är endast tillgänglig när källan och målet är olika servrar.

  • Tillgängliga relaterade objekt
    Visar en lista över objekt som kan överföras till målservern. Om du vill inkludera ett objekt markerar du objektnamnet i rutan Tillgängliga relaterade objekt och väljer sedan knappen >> för att flytta objektet till rutan Markerade relaterade objekt.

  • Markerade relaterade objekt
    Visar en lista över objekt som ska överföras till målservern. Om du vill exkludera ett objekt markerar du objektnamnet i rutan Markerade relaterade objekt och väljer sedan knappen << för att flytta objektet till rutan Tillgängliga relaterade objekt. Som standard överförs alla objekt av varje vald typ. Om du vill välja enskilda objekt av valfri typ väljer du ellipsknappen bredvid valfri objekttyp i rutan Markerade relaterade objekt. Då öppnas en dialogruta där du kan välja enskilda objekt.

  • lista över serverobjekt

    • Inloggningar (markerad som standard.)
    • SQL Server Agent-jobb
    • Användardefinierade felmeddelanden
    • Slutpunkter
    • Fulltextkatalog
    • SSIS-paket
    • Lagrade procedurer från master databas

Not

Utökade lagrade procedurer och tillhörande DLL:er är inte berättigade till automatisk kopiering.

Plats för källdatabasfiler

Den här sidan är endast tillgänglig när källan och målet är olika servrar. Ange en filsystemresurs som innehåller databasfilerna på källservern.

  • Databas
    Visar namnet på varje databas som flyttas.

  • Mappens placering
    Mappplatsen för databasfilerna på källservern. Till exempel: C:\Program Files\Microsoft SQL Server\MSSQL110.MSSQLSERVER\MSSQL\DATA.

  • fildelning på källservern
    Filresursen som innehåller databasfilerna på källservern. Ange resursen manuellt eller välj ellipsen för att navigera till resursen. Till exempel: \\server_name\C$\Program Files\Microsoft SQL Server\MSSQL110.MSSQLSERVER\MSSQL\Data.

Konfigurera paketet

Guiden Kopiera databas skapar ett SSIS-paket för att överföra databasen.

  • Pakets placering
    Visar var SSIS-paketet kommer att skrivas.

  • Paketnamn
    Ett standardnamn för SSIS-paketet skapas och ändras efter behov.

  • loggningsalternativ
    Välj om loggningsinformationen ska lagras i Windows-händelseloggen eller i en textfil.

  • Felloggfilsökväg
    Det här alternativet är endast tillgängligt om loggningsalternativet för textfiler är valt. Ange en sökväg för loggfilens plats.

Schemalägg paketet

Ange när du vill att flytt- eller kopieringsåtgärden ska starta. Om du inte är systemadministratör måste du ange ett SQL Server Agent Proxy-konto som har åtkomst till delsystemet för körning av integrationstjänster (SSIS).

Viktig

Ett Integration Services-proxikonto måste användas med metoden koppla från och koppla.

  • Kör omedelbart
    SSIS-paketet körs när guiden har slutförts.

  • Schemalägg
    SSIS-paketet körs enligt ett schema.

    • ändra schema

      Öppnar dialogrutan Nytt jobbschema. Konfigurera som önskat. Välj OK när du är klar.

  • Integration Services Proxy-konto Välj ett tillgängligt proxykonto i listrutan. Om du vill schemalägga överföringen måste det finnas minst ett proxykonto tillgängligt för användaren, konfigurerat med behörighet till SSIS-paketkörningsundersystem.

Notera

Om du vill skapa ett proxykonto för SSIS-paketkörning i Object Explorerexpanderar du SQL Server Agent, expanderar Proxy, högerklickar på SSIS-paketkörningoch väljer sedan Ny proxy.

Slutför guiden

Visar en sammanfattning av de valda alternativen. Välj Bakåt för att ändra ett alternativ. Välj Slutför för att skapa SSIS-paketet. Sidan Utför åtgärden övervakar statusinformation om körningen av guiden Kopiera databas.

  • åtgärd

    Visar en lista över varje åtgärd som utförs.

  • status

    Anger om åtgärden som helhet lyckades eller misslyckades.

  • Meddelande

    Innehåller alla meddelanden som returneras från varje steg.

Exempel

Vanliga steg

Oavsett om du väljer Flytta eller Kopiera, Koppla från och anslut, eller SMO, är de fem följande stegen desamma. För korthet visas stegen här en gång och alla exempel börjar på steg 6.

  1. I Object Exploreransluter du till en instans av SQL Server Database Engine och expanderar sedan den instansen.

  2. Expandera Databaser, högerklicka på önskad databas, peka på Uppgifteroch välj sedan Kopiera databas...

  3. Om välkomstsidan Välkommen till guiden Kopiera databas visas väljer du Nästa.

  4. Välj en källserver sida: Ange servern med databasen som ska flyttas eller kopieras. Välj autentiseringsmetod. Om Använd SQL Server-autentisering har valts anger du dina autentiseringsuppgifter. Välj Nästa för att upprätta anslutningen till källservern. Den här anslutningen är öppen under hela sessionen.

  5. Välj en målserver sida: Ange den server där databasen ska flyttas eller kopieras till. Välj autentiseringsmetod. Om Använd SQL Server-autentisering har valts anger du dina autentiseringsuppgifter. Välj Nästa för att upprätta anslutningen till källservern. Den här anslutningen är öppen under hela sessionen.

Not

Du kan starta guiden Kopiera databas från valfri databas. Du kan använda guiden Kopiera databas från käll- eller målservern.

A. Flytta databasen med hjälp av metoden för att koppla från och koppla in till en instans på en annan fysisk server. Även ett inloggnings- och SQL Server Agent-jobb flyttas.

I följande exempel flyttas Sales-databasen, en Windows-inloggning med namnet contoso\Jennie och ett SQL Server Agent-jobb med namnet Jennie's Report från en 2008-instans av SQL Server på Server1 till en 2016-instans av SQL Server på Server2. Jennie's Report använder Sales-databasen. Sales finns inte redan på målservern Server2. Server1 omtilldelas till ett annat team efter databasflytten.

  1. Som anges i Begränsningarmåste en gränssnittsdatabas skapas på målservern när du överför ett SQL Server Agent-jobb som refererar till en databas som inte redan finns på målservern. Skapa en gränssnittsdatabas med namnet Sales på målservern.

  2. Tillbaka till guiden, Välj sidan Överföringsmetod: Granska och behåll standardvärdena. Välj Nästa.

  3. Välj databas sida: Markera rutan Flytta för den önskade databasen Sales. Välj Nästa.

  4. Konfigurera måldatabasens sida: -guiden har identifierat att Sales redan finns på målservern, som du skapade i steg 6och har lagt till _new till måldatabasens namn. Ta bort _new från textrutan Måldatabas. Om du vill kan du ändra Filnamnoch målmapp. Välj Släpp valfri databas på målservern med samma namn och fortsätt sedan med databasöverföringen och skriv över befintliga databasfiler. Välj Nästa.

  5. Välj serverobjekt sida: I panelen Markerade relaterade objekt: väljer du ellipsknappen för Objektnamn Inloggningar. Under Kopieringsalternativ välj Kopiera endast de valda inloggningarna:. Markera kryssrutan för Visa alla serverinloggningar. Markera kryssrutan Inloggning för contoso\Jennie. Välj OK. I panelen Tillgängliga relaterade objekt: väljer du SQL Server Agent-jobb och sedan knappen >. I panelen Valda relaterade objekt: väljer du ellipsknappen för SQL Server Agent-jobb. Under rubriken Kopieringsalternativ välj Kopiera endast de markerade uppgifterna. Markera kryssrutan för Jennie's Report. Välj OK. Välj Nästa.

  6. Plats för källdatabasfiler sida: Välj ellipsknappen för Filresurs på källservern och navigera till platsen för den angivna mappplatsen. För exempelvis mappplats D:\MSSQL13.MSSQLSERVER\MSSQL\DATA, använd \\Server1\D$\MSSQL13.MSSQLSERVER\MSSQL\DATA för filresurs på källservern. Välj Nästa.

  7. Konfigurera sidan Paket: I textrutan Paketnamn: anger du SalesFromServer1toServer2_Move. Markera rutan Spara överföringsloggar?. I rullgardinslistan loggningsalternativ väljer du Textfil. Observera sökvägen felloggfil; omarbeta som önskat. Välj Nästa.

    Obs

    Sökvägen till felloggfilen är platsen på målservern.

  8. Schemalägg sidan Paket: Välj relevant proxy i listrutan Integration Services Proxy-konto. Välj Nästa.

  9. Slutför guide-sidan: Granska sammanfattningen av de valda alternativen. Välj Bakåt för att ändra ett alternativ. Välj Slutför för att köra uppgiften. Under överföringen övervakar sidan för utförande statusinformation om körningen av -guiden.

  10. Utför åtgärd sidan: Om åtgärden lyckas, välj Stäng. Om åtgärden misslyckas bör du granska felloggen och eventuellt använda Tillbaka för ytterligare granskning. Annars väljer du Stäng.

  11. Steg efter flytt Överväg att köra följande T-SQL-instruktioner på den nya servern Server2.

    ALTER AUTHORIZATION ON DATABASE::Sales TO sa;
    GO
    ALTER DATABASE Sales 
    SET COMPATIBILITY_LEVEL = 130;
    GO
    
    USE [Sales]
    GO
    EXEC sp_updatestats;
    GO
    
  12. Rensa steg efter flytt Eftersom Server1 flyttas till ett annat team och åtgärden Flytta inte upprepas bör du överväga att utföra följande steg:

  • Ta bort SSIS-paket SalesFromServer1toServer2_MoveServer2.
  • Ta bort SQL Server Agent-jobbet SalesFromServer1toServer2_MoveServer2.
  • Ta bort SQL Server Agent-jobbet Jennie's ReportServer1.
  • Släpp inloggningen contoso\JennieServer1.

B. Kopiera databasen med hjälp av metoden 'koppla från och koppla' till samma instans och sätt upp ett återkommande schema.

I det här exemplet kopieras och skapas Sales-databasen som SalesCopy på samma instans. Därefter kommer SalesCopy, att återskapas varje vecka.

  1. Välj en-sida för överföringsmetod: Granska och underhålla standardvärdena. Välj Nästa.

  2. Välj databaser sida: Markera kryssrutan Kopiera för Sales-databasen. Välj Nästa.

  3. Konfigurera måldatabasens sida: Ändra måldatabasens namn till SalesCopy. Om du vill kan du ändra Filnamnoch målmapp. Välj Släpp valfri databas på målservern med samma namn och fortsätt sedan med databasöverföringen och skriv över befintliga databasfiler. Välj Nästa.

  4. Konfigurera sidan Paket: I textrutan Paketnamn: anger du SalesCopy Weekly Refresh. Kontrollera Spara överföringsloggar? rutan. Välj Nästa.

  5. Schemalägg paketsidan: Välj alternativknappen Schema: och välj sedan knappen Ändra schema.

    1. sidan Nytt jobbschema: I textrutan Namn anger du "Varje vecka på söndag".

    2. Välj OK.

  6. Välj relevant proxy i listrutan Integration Services Proxy-konto. Välj Nästa.

  7. Slutför guiden-sidan: Granska sammanfattningen av de valda alternativen. Välj Bakåt för att ändra ett alternativ. Välj Slutför för att köra uppgiften. När paketet skapas övervakar utförandeoperation-sidan statusinformation om utförandet av -Guiden.

  8. Utför operation sida: Om åtgärden lyckas, väljer du Stäng. Om operationen misslyckas, granska felloggen och kanske gå tillbaka för ytterligare granskning. Annars väljer du Stäng.

  9. Starta det nyligen skapade SQL Server Agent-jobbet manuellt SalesCopy weekly refresh. Granska jobbhistoriken och se till att SalesCopy nu finns på instansen.

Följ upp: När du har uppgraderat en databas

När du har använt guiden Kopiera databas för att uppgradera en databas från en tidigare version av SQL Server till SQL Server blir databasen tillgänglig omedelbart och uppgraderas automatiskt. Om databasen har fulltextindex importeras, återställs eller återskapas de av uppgraderingsprocessen, beroende på inställningen för serveregenskapen Full-Text Uppgraderingsalternativ. Om uppgraderingsalternativet är inställt på Importera eller Återskapaär fulltextindexen inte tillgängliga under uppgraderingen. Beroende på hur mycket data som indexeras kan det ta flera timmar att importera och det kan ta längre tid att återskapa.

När uppgraderingsalternativet är inställt på Importera, om en fulltextkatalog inte är tillgänglig återskapas de associerade fulltextindexen. Information om hur du visar eller ändrar inställningen för egenskapen Full-Text Uppgraderingsalternativ finns i Hantera och övervaka Full-Text Sök efter en serverinstans.

Efter uppgraderingen ligger databaskompatibilitetsnivån kvar på kompatibilitetsnivån före uppgraderingen, såvida inte den tidigare kompatibilitetsnivån inte stöds på den nya versionen. I det här fallet är den uppgraderade databaskompatibilitetsnivån inställd på den lägsta kompatibilitetsnivån som stöds.

Om du till exempel kopplar en databas som var kompatibilitetsnivå 90 innan du kopplar den till en instans av SQL Server 2019 (15.x) efter uppgraderingen är kompatibilitetsnivån inställd på 100, vilket är den lägsta kompatibilitetsnivån som stöds i SQL Server 2019 (15.x). Mer information finns i ALTER DATABASE Compatibility Level (Transact-SQL).

Överväganden efter kopiering eller flytt

Överväg om du vill utföra följande steg efter en Kopiera eller Flytta:

  • Ändra ägarskapet för databasen när metoden koppla från och återansluta används.
  • Ta bort serverobjekt på källservern efter en Flytt.
  • Släpp SSIS-paketet som skapades av guiden på målservern.
  • Ta bort SQL Server Agent-jobbet som skapades av guiden på målservern.