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.
- Är systemdatabaser (
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:
- Kopplar från databasen
- Flyttar eller kopierar databasen
.mdf
,.ndf
,.ldf
filer. - Å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:
Skapa en shell-databas på målservern med samma namn som den databas som ska kopieras eller flyttas. Se Skapa en databas.
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ånmodel
. Sedan kan inte kopieringsdatabasstegen skapa användaren med samma namn i måldatabasen. För att förhindra, se till attmodel
-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
- För att säkerställa optimala prestanda för en uppgraderad databas kör du sp_updatestats (Transact-SQL) (uppdateringsstatistik) mot den uppgraderade databasen.
- När du flyttar eller kopierar en databas till en annan serverinstans, för att tillhandahålla en konsekvent upplevelse för användare och program, kan du behöva återskapa vissa eller alla metadata för databasen, till exempel inloggningar och jobb, på den andra serverinstansen. Mer information finns i Hantera metadata när du gör en databas tillgänglig på en annan serverinstans (SQL Server).
Behörigheter
Du måste vara medlem i sysadmin fast serverroll på både käll- och målservrarna.
Kopiera databas-guiden
- 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.
- Högerklicka sedan på en databas, peka på Uppgifteroch välj sedan Kopiera databas.
- 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
,.ndf
och.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.
I Object Exploreransluter du till en instans av SQL Server Database Engine och expanderar sedan den instansen.
Expandera Databaser, högerklicka på önskad databas, peka på Uppgifteroch välj sedan Kopiera databas...
Om välkomstsidan Välkommen till guiden Kopiera databas visas väljer du Nästa.
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.
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.
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.Tillbaka till guiden, Välj sidan Överföringsmetod: Granska och behåll standardvärdena. Välj Nästa.
Välj databas sida: Markera rutan Flytta för den önskade databasen
Sales
. Välj Nästa.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.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örJennie's Report
. Välj OK. Välj Nästa.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.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.
Schemalägg sidan Paket: Välj relevant proxy i listrutan Integration Services Proxy-konto. Välj Nästa.
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.
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.
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
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_Move
påServer2
. - Ta bort SQL Server Agent-jobbet
SalesFromServer1toServer2_Move
påServer2
. - Ta bort SQL Server Agent-jobbet
Jennie's Report
påServer1
. - Släpp inloggningen
contoso\Jennie
påServer1
.
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.
Välj en-sida för överföringsmetod: Granska och underhålla standardvärdena. Välj Nästa.
Välj databaser sida: Markera kryssrutan Kopiera för
Sales
-databasen. Välj Nästa.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.Konfigurera sidan Paket: I textrutan Paketnamn: anger du
SalesCopy Weekly Refresh
. Kontrollera Spara överföringsloggar? rutan. Välj Nästa.Schemalägg paketsidan: Välj alternativknappen Schema: och välj sedan knappen Ändra schema.
sidan Nytt jobbschema: I textrutan Namn anger du "Varje vecka på söndag".
Välj OK.
Välj relevant proxy i listrutan Integration Services Proxy-konto. Välj Nästa.
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.
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.
Starta det nyligen skapade SQL Server Agent-jobbet manuellt
SalesCopy weekly refresh
. Granska jobbhistoriken och se till attSalesCopy
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.