Kopiering eller flytning af databaser er en af de mest almindelige opgaver for dataprofessionelle, der regelmæssigt beskæftiger sig med implementering af scripts eller nye løsninger på tværs af forskellige miljøer. Med SQL Server har vi flere måder, hvorpå vi kan opnå dette indbygget uden at bruge tredjepartsværktøjer.
Native løsninger i SQL Server
Her er nogle få måder, hvorpå vi kan udføre denne opgave indbygget i SQL Server:
- Inden for SQL Server udfører vi normalt fuld databasesikkerhedskopiering på kildedatabasen, kopierer den over til målserveren og gendanner derefter. Dette kan vise sig at være en udfordrende opgave for nybegyndere eller for professionelle, der ikke er i DBA-rollen. Medmindre du har en ordentlig scripting-løsning, kan du løbe ind i problemer og kæmpe for at opnå dette, mens du beskæftiger dig med enorme databaser.
- En anden mulighed er frakoble\vedhæft-metoden. Denne metode er populært brugt, men igen skal du være forsigtig, mens du beskæftiger dig med store databaser eller med databaser, der indeholder en række data eller logfiler. Kildedatabasen ville også gå offline, mens denne tilgang blev brugt. Medmindre du er en erfaren databaseadministrator, kan du stadig ende med at få problemer, mens du håndterer store databaser.
Der er andre muligheder, der kan bruges, såsom at bruge guiden til kopiering af databasen eller guiden til import/eksport af data med henblik på dataimport/eksport. Du skal også sikre dig, at login og tilladelser fra kildeserveren migreres korrekt til målserveren, ellers kan applikationsbrugere have problemer med at oprette forbindelse korrekt til databasen.
Brug af dbForge Studio til SQL Server til at kopiere eller flytte databaser fra én instans til en anden eller fra én server til en anden
Når det kommer til tredjepartssoftware, har Devarts dbForge Studio til SQL Server en cool funktion indbygget i produktet til at udføre kopiering eller flytning af databaser i nogle få enkle trin. Vi vil gennemgå processen med en demo i denne artikel.
Prøveversionen varer i en måned og giver dig tilstrækkelig tid til at teste de andre funktioner, der er indlejret i produktet. Enterprise prøveversion 5.5 bruges til denne demo.
Når du har kørt dbForge Studio, får du denne skærm til at opdatere databaseforbindelsesdetaljerne. Med dette vil du være i stand til at oprette forbindelse til din SQL Server-instans.
For at udføre yderligere forbindelser til andre SQL-instanser skal du klikke på ikonet, som åbner vinduet for en ny databaseforbindelse.
Nedenfor kan du se, at jeg allerede har oprettet en forbindelse til en eksisterende SQL-instans.
Når du har oprettet forbindelse til dine SQL Server-forekomster, kan du se de databaser, du planlægger at kopiere eller flytte på tværs af forekomsterne. I denne demo vil vi kopiere databasen test fra SQL-forekomsten:Boulcott til Boulcott\INST2.
For at kopiere testen database til INST2, skal du gå til Database Sync mulighed på hovedfanen, og klik på Kopiér database .
Vinduet Kopier database åbnes. Der kan du indtaste detaljerne for kilde- og målservere. I denne demo kopierer vi databasen på tværs af instanser, der er på den samme maskine. Du kan også bruge dbForge-værktøjet til at kopiere databaser på tværs af forskellige servere. Indtast serveroplysningerne som vist, sørg for, at forbindelsen er vellykket, og klik derefter på Næste .
Når det er gjort, vises listen over tilgængelige databaser på kildeserveren. Vælg den database, du planlægger at kopiere henover. I vores eksempel er det testen database. Vælg Kopiér afkrydsningsfeltet, og klik på Næste . Her har jeg kun valgt én database, der skal kopieres. Men værktøjet er ikke begrænset til én database ad gangen, da vi kan vælge flere databaser til at kopiere eller flytte på samme tid.
Vælg muligheder for måldatabaseplacering
Som du kan se, kan data- og logfilplaceringerne for måldatabasen ændres til dem, du planlagde at bruge. Værdierne bliver automatisk genereret, men kan nemt ændres. Navnet på måldatabasen kan også ændres.
Klik på Næste . Vinduet Overførselsindstillinger vises. Du skal sikre dig, at SQL Server Agent-kontoen har tilstrækkelige rettigheder til at udføre kopieringshandlingen. Gennemgå dette afsnit omhyggeligt, da det kan føre til problemer, hvis SQL Server Agent-kontoen ikke har de nødvendige tilladelser. I mit tilfælde, da forekomsterne er inden for den samme server, er der intet krav om en delt mappemappe. Der kræves dog en delt mappemappe med tilstrækkelige tilladelser til SQL Agent-kontoen, hvis du skal kopiere databasen på tværs af SQL-instanser på forskellige servere. Når du er færdig med anmeldelsen, skal du klikke på Næste .
På fanen Kopier logins kan du vælge den korrekte mulighed baseret på dine krav. Som standard Kopiér alle logins brugt af udvalgte databaser er aktiveret. Træf det rigtige valg i dit tilfælde, gennemgå og klik på Næste .
Udfør kopieringsprocessen med dbForge Studio
Skærmbilledet nedenfor viser, hvor du kan starte udførelsesprocessen for kopiopgaven. Vi har mulighed for at vælge, hvilke typer af fejlhåndtering der er mulig under udførelsesprocessen. Som standard beder du en bruger om en handling er valgt. I denne demo har jeg også aktiveret muligheden for at skrive en rapport til en logfil som ville være praktisk til at håndtere enhver form for fejl. Fejlloggen er ret omfattende og giver dig grunden til enhver procesfejl i detaljer. Når du er færdig, skal du klikke på Udfør mulighed, som vil starte udførelsesprocessen.
Du kan se forløbet af udførelsesopgaven.
Kopiér fuldførelse af proces
Når processen er fuldført, vil du se denne meddelelse, der bekræfter, at kopieringsprocessen er fuldført.
Ved at klikke på Vis logfil mulighed, kan du se detaljerne om procesudførelsen og status for de udførte opgaver. Du kan udføre flere kopieringshandlinger ved at klikke på Kopiér mere mulighed.
Tjek SQL-målforekomst
Det næste trin ville være at oprette forbindelse til din mål-SQL-instans og validere, at databasen er kopieret på tværs. På SQL-målforekomsten er der testen database, der blev kopieret med succes ved hjælp af dbForge Studio til SQL Server.
Flyt databaser fra kilde til SQL-målforekomst
Tidligere var vi i stand til at kopiere en database fra kildeserveren til målserveren. Vi kunne også bruge dette værktøj og den tidligere demo, hvis du i stedet skal flytte databaser.
I vinduet Vælg databaser skal du vælge Flyt mulighed.
Dette ville grundlæggende migrere databaserne fra kildeserveren til målserveren. Bare gå gennem trinene beskrevet tidligere. Jeg havde med vilje stoppet SQL Server Agenten på målserveren og stod over for denne fejlskærm.
Når du klikker på Nej , vil det tage dig til muligheden for at se logfilerne.
Knappen Vis logfil... fører dig til den detaljerede logfil, hvor den faktiske fejlårsag kan identificeres.
Her kan du se præcis årsagen til den mislykkede operation. Du vil også se, at et SQL Agent-job bliver oprettet på Target-serveren under udførelsen og kan ses.
Dette job eksisterer kun i løbet af udførelsesprocessen og bliver slettet, når processen er fuldført. Opret forbindelse til både Target- og Source SQL-forekomsterne for at bekræfte, at databaserne faktisk er flyttet på tværs. Nedenstående skærmbillede bekræfter, at databaserne 1 og 2 blev flyttet fra kildeserveren til målserveren.
Kopiér databaser fra kilde-SQL-forekomsten til målet, og tilsidesæt
Indtil videre har vi kopieret og flyttet databaser fra kildeserveren til destinationsserveren. Udfør derefter et ekstra trin for at kopiere og tilsidesætte WideWorldImporters-databaserne.
Denne proces ligner de foregående trin til kopiering eller flytning af databaser med kun ét ekstra trin til at vælge tilsidesættelse mulighed.
Bare følg resten af trinene svarende til det, der blev gjort tidligere, og processen vil lykkes, når den er fuldført. For at opsummere, brug Kopiér databasen mulighed i dbForge Studio-værktøjet, kan du udføre følgende funktioner:
- Kopiér databaser fra kildeserveren til målserveren
- Flyt databaser fra kildeserveren til målserveren
- Kopiér og tilsidesæt databaser fra kildeserveren til målserveren
- Flyt og tilsidesæt databaser fra kildeserveren til målserveren
Konklusion
- Med denne demo har du set, hvor let en database kan kopieres fra én SQL-instans til en anden med meget lidt brugerinput ved hjælp af dbForge Studio
- En anden fordel ved dette værktøj er, at flere databaser kan kopieres eller flyttes på tværs af forskellige instanser på én gang
- Der kræves meget lidt teknisk ekspertise for at udføre disse opgaver, da værktøjet er brugervenligt og GUI-baseret
- Dette værktøj kan være ret praktisk, især hvis du udruller implementeringer hurtigt på tværs af forskellige servermiljøer, og hvis tiden er en begrænsning
Nyttigt værktøj:
dbForge Studio til SQL Server – kraftfuld IDE til SQL Server-administration, administration, udvikling, datarapportering og analyse.