Att kopiera eller flytta databaser är en av de vanligaste uppgifterna för dataproffs som regelbundet arbetar med att distribuera skript eller nya lösningar i olika miljöer. Med SQL Server har vi flera sätt på vilka vi kan åstadkomma detta inbyggt utan att använda verktyg från tredje part.
Inbyggda lösningar inom SQL Server
Här är några sätt på vilka vi kan utföra denna uppgift inbyggt i SQL Server:
- Inom SQL Server utför vi normalt fullständiga säkerhetskopieringar av databasen på källdatabasen, kopierar den till målservern och återställer sedan. Detta kan visa sig vara en utmanande uppgift för nybörjare eller för proffs som inte är i DBA-rollen. Om du inte har en korrekt skriptlösning kan du stöta på problem och kämpa för att åstadkomma detta samtidigt som du hanterar enorma databaser.
- Ett annat alternativ är ta bort\attach-metoden. Denna metod används populärt men återigen måste du vara försiktig när du hanterar stora databaser eller med databaser som innehåller ett antal data eller loggfiler. Dessutom skulle källdatabasen gå offline när den här metoden användes. Om du inte är en erfaren databasadministratör kan du fortfarande få problem när du hanterar stora databaser.
Det finns andra alternativ som kan användas som att använda kopieringsdatabasguiden eller import/exportdataguiden för dataimport/export. Du måste också se till att inloggningarna och behörigheterna från källservern migreras korrekt till målservern, annars kan programanvändare få problem med att ansluta korrekt till databasen.
Använda dbForge Studio för SQL Server för att kopiera eller flytta databaser från en instans till en annan eller från en server till en annan
När det gäller programvara från tredje part har Devarts dbForge Studio för SQL Server en cool funktion inbyggd i produkten för att utföra kopiering eller flyttning av databaser i några enkla steg. Vi kommer att granska processen med en demo i den här artikeln.
Testversionen varar i en månad och ger dig tillräckligt med tid för att testa de andra funktionerna som är inbäddade i produkten. Enterprise testversion 5.5 används för denna demo.
När du väl har kört dbForge Studio får du den här skärmen för att uppdatera databasanslutningsdetaljerna. Med detta kommer du att kunna ansluta till din SQL Server-instans.
För att utföra ytterligare anslutningar till andra SQL-instanser, klicka på ikonen som öppnar fönstret för en ny databasanslutning.
Nedan kan du se att jag redan har gjort en anslutning till en befintlig SQL-instans.
När du har anslutit till dina SQL Server-instanser kan du se de databaser du planerar att kopiera eller flytta över instanserna. I den här demon kommer vi att kopiera databasen test från SQL-instansen:Boulcott till Boulcott\INST2.
För att kopiera testet databas till INST2, gå till Databassynkronisering på huvudfliken och klicka på Kopiera databas .
Fönstret Kopiera databas öppnas. Där kan du ange information om käll- och målservrarna. I den här demon kopierar vi databasen över instanser som finns på samma maskin. Du kan använda verktyget dbForge för att kopiera databaser över olika servrar också. Ange serverinformationen som visas, se till att anslutningen är framgångsrik och klicka sedan på Nästa .
När det är klart visas listan över tillgängliga databaser på källservern. Välj den databas du planerar att kopiera över. I vårt exempel är det testet databas. Välj Kopiera kryssrutan och klicka på Nästa . Här har jag bara valt en databas som ska kopieras. Men verktyget är inte begränsat till en databas åt gången eftersom vi kan välja flera databaser att kopiera eller flytta samtidigt.
Välj alternativ för måldatabasplatsen
Som du kan se kan data- och loggfilplatserna för måldatabasen ändras till de du planerade att använda. Värdena genereras automatiskt men kan enkelt ändras. Namnet på måldatabasen kan också ändras.
Klicka på Nästa . Fönstret för överföringsinställningar visas. Du måste se till att SQL Server Agent-kontot har tillräckliga privilegier för att utföra kopieringsoperationen. Granska det här avsnittet noggrant eftersom det kan leda till problem om SQL Server Agent-kontot inte har de nödvändiga behörigheterna. I mitt fall, eftersom instanserna finns inom samma server, finns det inget krav på en delad mappkatalog. En delad mappkatalog med tillräckliga behörigheter för SQL Agent-kontot krävs dock om du måste kopiera databasen över SQL-instanser på olika servrar. När du är klar med recensionen klickar du på Nästa .
På fliken Kopiera inloggningar kan du välja rätt alternativ baserat på dina krav. Som standard Kopiera alla inloggningar som används av valda databaser är aktiverad. Gör rätt val i ditt fall, granska och klicka på Nästa .
Utför kopieringsprocessen med dbForge Studio
Skärmdumpen nedan visar var du kan starta exekveringsprocessen för kopieringsuppgiften. Vi har möjlighet att välja vilka typer av felhantering som är möjliga under exekveringsprocessen. Som standard be en användare om en åtgärd är vald. I den här demon har jag även aktiverat alternativet att skriva en rapport till en loggfil vilket skulle vara praktiskt för att hantera alla slags fel. Felloggen är ganska utförlig och ger dig anledningen till eventuella processfel i detaljer. När du är klar klickar du på Kör alternativ som startar exekveringsprocessen.
Du kan se förloppet för körningsuppgiften.
Slutförd kopiering
När processen är klar, kommer du att se detta meddelande som bekräftar att kopieringsprocessen har slutförts.
Genom att klicka på Visa loggfil alternativet kan du se detaljerna om processexekveringen och status för de slutförda uppgifterna. Du kan utföra fler kopieringsoperationer genom att klicka på Kopiera mer alternativ.
Kontrollera SQL-målinstans
Nästa steg skulle vara att ansluta till din mål-SQL-instans och verifiera att databasen kopieras över. På mål-SQL-instansen finns testet databas som kopierades framgångsrikt med dbForge Studio för SQL Server.
Flytta databaser från källan till SQL-målinstansen
Tidigare kunde vi framgångsrikt kopiera en databas från källservern till målservern. Vi kan också använda det här verktyget och den tidigare demon om du behöver flytta databaser istället.
I fönstret Välj databaser väljer du Flytta alternativ.
Detta skulle i princip migrera databaserna från källservern till målservern. Gå bara igenom stegen som beskrivits tidigare. Jag hade avsiktligt stoppat SQL Server Agent på målservern och mötte den här felskärmen.
När du klickar på Nej , det tar dig till alternativet att visa loggfilerna.
Knappen Visa loggfil... tar dig till den detaljerade loggfilen där orsaken till felet kan identifieras.
Här kan du se exakt orsaken till den misslyckade operationen. Du kommer också att se att ett SQL Agent-jobb skapas på målservern under körningen och kan ses.
Det här jobbet existerar bara under körningsprocessen och tas bort när processen är klar. Anslut till både Target- och Source SQL-instanserna för att bekräfta att databaserna verkligen har flyttats över. Skärmbilden nedan bekräftar att databaserna 1 och 2 lyckades flyttas från källservern till målservern.
Kopiera databaser från SQL-källinstansen till mål-en och åsidosätt
Hittills har vi kopierat och flyttat databaser från källservern till destinationsservern. Utför sedan ytterligare ett steg för att kopiera och åsidosätta WideWorldImporters-databaserna.
Denna process liknar de tidigare stegen för att kopiera eller flytta databaser med endast ett ytterligare steg för att välja åsidosättandet alternativ.
Följ bara resten av stegen som liknar det som gjordes tidigare och processen skulle lyckas när den är klar. För att sammanfatta, använd Kopiera databasen i verktyget dbForge Studio kan du utföra följande funktioner:
- Kopiera databaser från källservern till målservern
- Flytta databaser från källservern till målservern
- Kopiera och åsidosätt databaser från källservern till målservern
- Flytta och åsidosätta databaser från källservern till målservern
Slutsats
- Med denna demo har du sett hur lätt en databas kan kopieras från en SQL-instans till en annan med mycket lite användarinmatning med hjälp av dbForge Studio
- En annan fördel med det här verktyget är att flera databaser kan kopieras eller flyttas över olika instanser samtidigt
- Väldigt lite teknisk expertis krävs för att utföra dessa uppgifter eftersom verktyget är användarvänligt och GUI-baserat
- Det här verktyget kan vara ganska praktiskt, särskilt om du rullar ut distributioner snabbt över olika servermiljöer och om tiden är en begränsning
Användbart verktyg:
dbForge Studio för SQL Server – kraftfull IDE för SQL Server-hantering, administration, utveckling, datarapportering och analys.