sql >> Database >  >> Database Tools >> SSMS

Migratie van SQL-database met SSMS

Het migreren van MSSQL tussen servers kan een uitdaging zijn zonder de juiste richtlijnen om u op het goede spoor te houden. In dit artikel zal ik de verschillende manieren schetsen om Microsoft SQL Server-databases tussen servers of instanties te migreren. Of u nu een enkele database, veel databases, aanmeldingen of opgeslagen procedures en weergaven moet verplaatsen, wij staan ​​voor u klaar!

Er zijn veel omstandigheden waarin u een database moet verplaatsen of databases moet herstellen. De meest voorkomende redenen zijn:

  • Verhuizen naar een geheel nieuwe server.
  • Verhuizen naar een ander exemplaar van SQL.
  • Een ontwikkelserver maken of live gaan naar een productieserver.
  • Databases herstellen vanaf een back-up.

Er zijn twee manieren om SQL-databases te verplaatsen. Handmatig met Microsoft SQL Server Management Studio (SSMS) of met de opdrachtregel. De methode die u kiest, hangt af van wat u moet bereiken. Als u een enkele database of slechts een paar verplaatst, is het handmatig back-uppen en herstellen van de databases met SSMS de gemakkelijkste aanpak. Als u veel databases verplaatst (denk aan meer dan 10), dan zal het gebruik van de opdrachtregelmethode het proces versnellen. De opdrachtregelmethode vereist meer voorbereidend werk vooraf, maar als u tientallen databases overdraagt, is het de moeite waard de tijd te besteden aan het configureren van het script in plaats van elke database afzonderlijk te migreren. Als u niet zeker weet welke methode u moet gebruiken, probeer dan eerst de handmatige aanpak terwijl u vertrouwd raakt met het proces. Ik raad aan om helemaal door te lezen voor een beter begrip van de methodologie.

Nuttige referenties voor terminologie

SSMS – Een acroniem voor Microsoft S QL S erver M anagement S tudio.

Bronserver – De server of instantie waarvan u de databases van . verplaatst of uit .

Bestemmingsserver – De server of instantie waarnaar u de databases verplaatst naar .

De handmatige methode

Het verplaatsen van SQL-databases met de handmatige methode kan heel eenvoudig zijn. Het is het geprefereerde proces voor het overbrengen van een paar of kleinere databases. Om dit deel van de handleiding te volgen, moet u MSSQL en Microsoft SQL Server Management Studio (SSMS) hebben geïnstalleerd.

Back-ups maken van databases op de bronserver

1. Begin door in te loggen op de bronserver (de server waarvan u databases verplaatst of waarvandaan). U wilt Microsoft SQL Server Management Studio openen door Start> Microsoft SQL Server>  Microsoft SQL Server Management Studio te selecteren .

2. Log in op de SQL-server met Windows-verificatie of SQL-verificatie.

3. Vouw de server uit (in ons geval SQL01 ), vouw Databases uit , selecteer de eerste database die u wilt verplaatsen (hieronder afgebeeld).

4. Klik met de rechtermuisknop op uw database en selecteer Taken klik vervolgens op Back-up maken .

5. Vanaf hier bent u nu bij de Back-updatabase scherm. U kunt een back-uptype kiezen, zoals Volledig of Differentieel , zorg ervoor dat de juiste database is geselecteerd en stel de bestemming in voor de SQL-back-up. Voor ons voorbeeld kunnen we de Back-up Type als Vol .

6. Onder Back-up Type , vink het vakje aan voor "Alleen kopiëren .” Als u DPM of een andere vorm van serverback-up gebruikt, maakt u een back-up zonder de Copy-Only vlag zal een breuk veroorzaken in de back-up log keten.

7. U ziet een locatie onder Bestemming voor het pad van de nieuwe back-up. Meestal Verwijderen dit item en vervolgens Toevoegen een nieuwe om een ​​map te selecteren die SQL lees-/schrijftoegang heeft. Een nieuwe Back-upbestemming toevoegen toont een pad dat lijkt op het volgende:

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\

Dit C:\-pad is waar uw opgeslagen databaseback-up zich bevindt. Noteer deze locatie voor latere referentie, aangezien dit het standaardpad naar opgeslagen back-ups is en de juiste lees-/schrijftoegang moet hebben voor SQL-services.

Opmerking:Gevorderde gebruikers vinden het misschien prettig om de bestemming te laten zoals deze is, op voorwaarde dat de machtigingen in de uitvoermap correct zijn.

8. Voeg vervolgens een bestandsnaam toe aan het einde van dit pad, zoals AdventureWorks2012-081418 .bak – Zorg ervoor dat u de bestandsnaam afsluit met de extensie .bak en selecteer OK

10. Nadat u op OK . heeft gedrukt op de Back-upbestemming selecteren prompt, bent u klaar om een ​​back-up van de database te maken! Het enige dat u nu hoeft te doen, is op OK . drukken , en de database begint een back-up te maken. U ziet een voortgangsbalk in de linkerbenedenhoek en wanneer de back-up is voltooid, verschijnt er een venster met de tekst 'De back-up van database 'AdventureWorks2012' is voltooid. '

Navigeer naar het eerder vermelde doelpad (in dit geval C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\ ) ziet u uw nieuw gemaakte bestand (in dit geval AdventureWorks2012-081418.bak ) - Gefeliciteerd! Dit bestand is de volledige export van uw database en is klaar om te worden geïmporteerd naar de nieuwe server. Als u meer databases heeft, herhaalt u de bovenstaande stappen voor elke database die u verplaatst. Na het kopiëren van alle databaseprocessen naar de volgende stap van het herstellen van databases naar de doelserver.

Databases herstellen naar de doelserver

U zou nu een .bak-bestand van al uw databases op de bronserver moeten hebben. Deze databasebestanden moeten naar de doelserver worden overgebracht. Er zijn talloze manieren om uw gegevens naar de doelserver te verplaatsen; u kunt USB, Robocopy of FTP gebruiken. Nadat u een database hebt gekopieerd, kunt u deze opslaan op uw doelserver. We hebben deze bijvoorbeeld op de C-schijf opgeslagen in een map met de naam C:\dbbackups .

1. Open Microsoft SQL Server Management Studio.

2. Log in op de SQL-server met Windows-verificatie of SQL-verificatie.

3. Vouw de server uit en klik met de rechtermuisknop op Databases en selecteer Database herstellen.

4. De database herstellen scherm lijkt erg op de Back-up database scherm.Onder Bron wilt u Apparaat . selecteren in plaats van Database . Apparaat selecteren stelt u in staat om rechtstreeks vanuit een bestand te herstellen. Nadat u Apparaat . heeft gekozen , klik op het bladerpictogram […]

5. Selecteer Toevoegen en navigeer vervolgens naar de map waarin uw .bak-bestanden zich bevinden. (In dit geval C:\dbbackups ).

6. Selecteer de eerste database .bak die u wilt herstellen en klik op OK.

7. Klik op OK en nu bent u klaar om de database te importeren. Laten we, voordat we gaan importeren, kijken naar het gedeelte Opties aan de linkerkant. Onder Opties, u zult andere configuraties zien voor het herstellen van databases, zoals De bestaande database overschrijven , Behoud de replicatie-instellingen en Toegang tot de herstelde database beperken . In dit geval vervangen we geen bestaande database, dus ik laat al deze opties uitgeschakeld. Als u een bestaande database wilt vervangen (de geback-upte database heeft bijvoorbeeld nieuwere gegevens dan op de doelserver of u vervangt een ontwikkelings- of productiedatabase), selecteer dan gewoon De bestaande database overschrijven .

Opmerking:Gevorderde gebruikers vinden het misschien prettig om de bestemming te laten zoals deze is, op voorwaarde dat de machtigingen in de uitvoermap correct zijn.

8. Klikken op OK begint het herstelproces zoals aangegeven door het pop-upvenster met de tekst 'Database 'AdventureWorks2012' succesvol hersteld.' U heeft uw database gemigreerd van de bron- naar de doelserver.

Herhaal dit proces voor elke database die u migreert. U kunt vervolgens padverwijzingen in uw scripts/toepassing bijwerken om naar de nieuwe server te verwijzen, om te controleren of de migratie is geslaagd.

Migreren van Microsoft SQL Server-aanmeldingen

Als u na het importeren van uw databases geen verbinding kunt maken met uw SQL-aanmelding, krijgt u mogelijk de foutmelding 'Aanmelding mislukt voor gebruiker 'voorbeeld'. (Microsoft SQL Server, fout:18456). ' Omdat de database zich in het Traditionele login- en gebruikersmodel bevindt , aanmeldingen worden afzonderlijk opgeslagen op de bronserver en referenties zijn niet opgenomen in de database zelf. Vanaf dit punt kan de doelserver worden geconfigureerd om het Contained Database User Model . te gebruiken die de aanmeldingen in uw database en buiten de bronserver houdt. Tot die tijd zullen we moeten bewegen en communiceren met de gebruikers als onderdeel van het traditionele model. Ga hieronder verder om door te gaan met de migratie van uw SQL-gebruikers.

Het maken van een back-up en het herstellen van de databases heeft uw SQL-aanmeldingsrelatie met de databases verplaatst (uw aanmeldingen zijn nog steeds gekoppeld aan de juiste databases met de juiste machtigingen), maar de daadwerkelijke aanmeldingen zelf zijn niet overgebracht naar de nieuwe server. U kunt dit verifiëren door SSMS (SQL Server Management Studio) te openen op de doelserver en navigeer naar Server> Beveiliging> Inloggen s. U zult merken dat eventuele aangepaste SQL-aanmeldingen die u op de vorige server hebt gemaakt niet hierheen zijn overgebracht, maar als u naar Server> Databases> Uw database gaat (in dit geval AdventureWorks2012)> Beveiliging> Gebruikers je ziet de juiste login gekoppeld aan de database.

Als u een of twee SQL-gebruikers heeft, kunt u de koppeling van de gebruiker aan de database verwijderen in Servers> Databases> AdventureWorks2012> Beveiliging> Gebruikers , maak de gebruiker opnieuw aan in Server> Beveiliging> Aanmeldingen en wijs het toe aan de juiste database.

Als u veel aanmeldingen heeft, moet u een aanvullend proces volgen dat hieronder wordt beschreven. Om alle SQL-gebruikers te migreren, opent u een Nieuwe Query venster op de bronserver en voer het volgende script uit:

SQL-aanmeldingsscript

+

Dit script maakt twee opgeslagen procedures in de brondatabase die helpen bij het migreren van deze aanmeldingen. Open een Nieuw Query-venster en voer het volgende uit:
EXEC sp_help_revlogin

Deze query voert een script uit dat nieuwe aanmeldingen voor de doelserver maakt. Kopieer de uitvoer van deze query en bewaar deze voor later. U moet dit op de doelserver uitvoeren.

Nadat u de uitvoer van deze query hebt gekopieerd, logt u in op SSMS op de doelserver en opent u een venster Nieuwe query. Plak de inhoud van het vorige script (het zou een reeks regels moeten hebben die lijken op -- Login:BUILTIN\Administrators
CREATE LOGIN [BUILTIN\Administrators] VANUIT WINDOWS MET DEFAULT_DATABASE =[master]) en druk op Uitvoeren.

U hebt nu met succes alle SQL-aanmeldingen geïmporteerd en kunt nu controleren of de databases zijn gemigreerd naar de doelserver met uw eerdere inloggegevens.

Migratie van weergaven en opgeslagen procedures

Weergaven en opgeslagen procedures worden met de database gemigreerd als u de typische SQL Tape-back-ups gebruikt. Volg de onderstaande instructies als u weergaven en opgeslagen procedures onafhankelijk wilt migreren.

  1. Open Microsoft SQL Management Studio op de bronserver.
  2. Log in op uw SQL-server.
  3. Breid de server uit en ook Databases .
  4. Klik met de rechtermuisknop op de naam van uw database en ga naar Taken> Scripts genereren .
  5. Klik op Volgende .
  6. We zullen De volledige database en alle database-objecten scripten om Specifieke database-objecten te selecteren en controleer alleen Views en Opgeslagen procedures.
  7. Klik op Volgende en let op de optie Opslaan naar bestand. Let op het vermelde bestandspad. In mijn geval is dat C:\Users\Administrator\Documents\script.sql - Het pad van opgeslagen weergaven en opgeslagen procedures.
  8. Klik op Volgende>> Volgende>>Voltooien, en selecteer C:\Users\Administrator\Documents\script.sql en kopieer het naar de doelserver.
  9. Ga naar de doelserver, open SSMS en log in op de SQL-server.
  10. Ga naar Bestand> Openen> Bestand of gebruik de sneltoets CTRL+O om het SQL-script te openen. Selecteer het bestand C:\Users\Administrator\Documents\script.sql om het te openen.
  11. U zult het script zien dat is gegenereerd door de bronserver en alle weergaven en opgeslagen procedures bevat. Klik op Uitvoeren of gebruik de sneltoets F5 en voer het script uit.
Opmerking:Helaas is er geen ingebouwde manier om dit met de opdrachtregel te doen. Er zijn tools van derden en zelfs een tool van Microsoft genaamd mssql-scripter voor geavanceerdere scripting.

U hebt nu de weergaven en opgeslagen procedures naar uw doelserver gemigreerd! Herhaal dit proces voor elke database die u migreert. Een beetje begeleiding gaat een lange weg in databasebeheer. Elke SQL-server heeft zijn eigen configuraties en obstakels, maar we hopen dat dit artikel u een sterke basis heeft gegeven voor uw Microsoft SQL Server-migratie.

Op zoek naar een platformonafhankelijke SQL-service met hoge beschikbaarheid die gemakkelijk schaalbaar is en kan meegroeien met uw bedrijf? Bekijk ons ​​SQL as a Service-product dat wordt aangeboden op Liquid Web. Praat met een van onze geweldige hostingadviseurs om de perfecte oplossing voor u te vinden!


  1. Waarom krijg ik NULL-waarden bij Left Join?

  2. import/export zeer grote mysql-database in phpmyadmin

  3. phpMyAdmin-fout:tabel bestaat niet in engine

  4. Hoe kan ik de inhoud van alle tabellen in mijn database in phpMyAdmin verwijderen zonder de database te laten vallen?