Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)

Σε αυτό το άρθρο θα αναλύσουμε τον τρόπο που μπορούμε να κάνουμε online migration ενός SQL Server Instance από on-premise σε Azure Managed Instance. Για να μπορεί να γίνει online, με near zero downtime θα χρησιμοποιήσουμε το Azure Database Migration Service σε hybrid mode.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)

Η διαδικασία γίνεται με χρήση εγκαταστημένου client worker service σε Windows Server 2012 και μετέπειτα εκδόσεις σε συνεργασία με το Database Migration Service στο Azure.

Το παράδειγμα

Είναι μια σύνθετη διαδικασία οπότε θα πρέπει να ακολουθήσουμε πολύ αυστηρά τα βήματα.

Για αρχή η διαδικασία απαιτεί να έχουμε φτιάξει το Azure SQL Managed Instance. Το πως γίνεται αυτό μπορούμε να δούμε αναλυτικά σε αυτό το άρθρο.

Για να ξεκινήσουμε το στήσιμο της διαδικασίας του migration, θα ψάξουμε στο search το Azure Database Migration Services.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
1

Επιλέγουμε Add.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
2

Βάζουμε το Resource Group που είναι το Managed Instance που θα κάνουμε migrate, ένα όνομα στο service και επιλέγουμε Hybrid Service mode.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
3

Σε αυτό το σημείο θα πρέπει να φτιάξουμε ένα Azure App το οποίο θα είναι υπεύθυνο για την επικοινωνία μεταξύ του client worker και του Database Migration Service.

Οπότε πάμε στο Tenant του Azure Active Directory που έχουμε, App registrations και New registration.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
4

Ορίζουμε ένα όνομα και αφήνουμε τα υπόλοιπα ως έχει.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
5

Τώρα θα πρέπει να γυρίσουμε στο Azure Database Migration Service που φτιάξαμε στην αρχή και να δώσουμε τον ρόλο του Contributor ώστε να έχει την πρόσβαση που απαιτήτε. Οπότε επιλέγουμε Access Control, Add role assignment, ορίζουμε τον ρόλο και ψάχνουμε το όνομα της εφαρμογής που ορίσαμε.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
6

Την ίδια διαδικασία θα πρέπει να την κάνουμε για την εφαρμογή και κάτω από το Subscription που έχουμε.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
7

Ξαναγυρνάμε στο Azure Database Migration Service και επιλέγουμε την καρτέλα Hybrid και Installer download. Από εκεί θα κατευάσουμε τον client worker που θα κάνουμε εγκατάσταση.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
8

Αφού κατέβει και το κάνουμε unzip θα πρέπει να βάλουμε τις παραμέτρους που μας ζητάει στο dmsSettings.json.

  • Το ApplicationId το βρίσκουμε από Azure Active Directory, App registrations στο Application (client) ID.
  • Το CertificateThumbprint το αφήνουμε για τώρα με την default τιμή καθώς θα το φτιάξουμε εμείς στο επόμενο βήμα, τότε θα γυρίσουμε και θα το συμπληρώσουμε.
  • resourceId, subscriptionId, resourcegroup και serviceName θα το βρούμε πηγαίνοντας στο Azure Database Migration Service, Properties.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
9

Στη συνέχεια θα πρέπει να φτιάξουμε το Certificate, ανοίγουμε command prompt, κάνουμε cd στον φάκελο του DMSHybrid και τρέχουμε την παρακάτω εντολή:

DMSWorkerBootstrap.exe -a GenerateCert

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
10

Με το που το τρέξουμε επιτυχώς θα δημιουργηθεί στον φάκελο ένα αρχείο με το όνομα DMS Hybrid App Key.cer. Το certificate αυτό θα πρέπει να το κάνουμε upload στην εφαρμογή. Για να γίνει αυτό πάμε πάλι Azure Active Directory, App registrations, επιλέγουμε την εφαρμογή μας, Certificates & Secrets και Upload certificate.

Απο εκεί θα κρατήσουμε το Thumbprint.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
11

Προσθέτουμε το Thumbprint στο πεδίο CertificateThumbprint του dmsSettings.json

{
  "Authentication": {
    "isCertificateAuthentication": true,
    "ApplicationId": "d9c257c2-4323-4395-af23-4475c8f65e68",
    "CertificateThumbprint": "B89967539FF2BAF04255F29228AFA63EFB20F49F"
  },
  "DMSService": {
    "resourceId": "/subscriptions/aa15be35-988b-4f4e-b7fe-476eb0cb81b2/resourcegroups/RG_DPGR_I/providers/Microsoft.DataMigration/services/dms",
    "subscriptionId": "aa15be35-988b-4f4e-b7fe-476eb0cb81b2",
    "resourceGroup": "RG_DPGR_I",
    "serviceName": "hybriddms"
  }
}

Αργότερα θα χρειαστούμε και ένα secret οπότε ας το φτιάξουμε από τώρα επιλέγοντας New client secret. Κρατάμε την τιμή που έχει στο Value καθώς μετά από λίγο κρύβεται.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
12

Πλέον είμαστε έτοιμοι να προχωρήσουμε στην εγκατάσταση του client worker.

Για να γίνει αυτό κάνουμε cd στον φάκελο DMSHybrid και εκτελούμε το παρακάτω:

DMSWorkerBootstrap.exe -a Install -IAcceptDMSLicenseTerms -d
Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
13

Σε περίπτωση που μας εμφανίσει κάποιο error όπως το παρακάτω μπορεί να σημαίνει ότι κάποια άλλη εφαρμογή χρησιμοποιεί την πόρτα.

Σε αυτή την περίπτωση βλέπουμε στο log είναι αυτός ο λόγος.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
14

Αν όντως ισχύει ανοίγουμε ένα command prompt με run as administrator και τρέχουμε την παρακάτω εντολή ώστε να δούμε ποια εφαρμογή χρησιμοποιεί την πόρτα και να την κλείσουμε (στην δική μου περίπτωση ήτανε το onedrive):

netstat -a -b

Αν έχουμε κάνει αυτή τη διόρθωση θα πρέπει να το κάνουμε uninstall και ξανά install με την εντολή που εκτελέσαμε πριν.

DMSWorkerBootstrap.exe -a uninstall -ReuseCert

Αφού έχει ολοκληρωθεί η εγκατάσταση του hybrid client worker θα δούμε στο Azure Database Migration Service του, στην καρτέλα Hybrid το Worker Name.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
15

Συνεχίζουμαι επιλέγοντας Overview και New Migration Project.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
16

Εκεί ορίζουμε ένα όνομα για το Project, ότι πρόκειται για SQL Server, ότι το target είναι Azure Managed Instance και ότι θα κάνουμε χρήση του Online data migration.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
17

Στη συνέχεια θα πρέπει να συμπληρώσουμε τα στοιχεία για την σύνδεση στο on-premise source. Hostname, Authentication και έναν sysadmin χρήστη. Επίσης επιλέγουμε Encrypt connection, Trust server certificate.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
18

Στο επόμενο βήμα θα πρέπει να συμπληρώσουμε τις πληροφορίες για το target στο Azure Managed Instance.

  • Το ApplicationID (αν δεν το θυμόμαστε το βρίσκουμε στο Azure Database Migration Service, Properties)
  • Ως Key το Value του secret που δημιουργήσαμε στο Application και κρατήσαμε στην εικόνα 12.
  • Το Azure Managed Instance που θα έχουμε ως target.
  • Το sql username / password από sysadmin χρήστη στο target, μπορούμε να χρησιμοποιήσουμε τον admin χρήστη που φτιάξαμε κατά την δημιουργία του Managed Instance.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
19

Διαλέγουμε τις βάσεις που θα κάνουμε migrate.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
20

Σε αυτό το σημείο θα χρειαστούμε έναν φάκελο στο on-premise source τον οπόιο θα κάνουμε Share σαν network path ώστε να έχει πρόβαση ο Hybrid client worker.

Σε αυτό το path θα αποθηκεύουμε τα backups που θα χρειαστούν για το migration.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
21

Στο επόμενο βήμα συμπληρώνουμε το network path για τα backups από το προηγούμενο βήμα, στο επόμενο πεδίο συμπληρώνουμε τα credentials ενός χρήστη που έχει πρόβαση στο network path αυτό ή ενός local admin.

Στο τέλος θα μας ζητήσει να διαλέξουμε το Storage Account που θα θέλουμε να αποθηκευτούν τα backups, μπορούμε να χρησιμοποιήσουμε κάποιο που έχουμε ήδη ή να φτιάξουμε καινούργιο.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
22

Στο τέλος πριν ξεκινήσουμε το migration θα πρέπει να έχουμε πάρει τα backup των βάσεων δεδομένων στο network path.

Τα backup θα πρέπει να είναι με το option with checksum.

backup database mig_db to disk='C:\backups\full_mig.bak' with checksum
backup log  mig_db to disk='C:\backups\log.trn' with checksum

Αφού βεβαιωθούμε ότι τα backups είναι ΟΚ, προχωράμε στο Start Migration.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
23

Θα δούμε ότι έχει ξεκινήσει η διαδικασία. Αν επιλέξουμε την κάθε βάση θα δούμε αναλυτικά σε ποιό βήμα βρίσκεται.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
24

Αφού δούμε ότι έχουν γίνει Restored όλα τα backup files μπορούμε όποια στιγμή θέλουμε να ξεκινήσουμε την διαδικασία Start Cutover ώστε να μεταφέρουμε και την πληροφορία από τα τελευταία δευτερόλεπτα από τον on-premise server στη βάση μας στο Azure Managed Instance.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
25

Με το που επιλέξουμε Start Cutover, αυτό θα είναι το μόνο σημείο που θα πρέπει η εφαρμογή που συνδέεται στη βάση μας να είναι offline.

Αφού κατέβει η εφαρμογή παίρνουμε το τελευταίο tail log backup το οποίο είναι ένα transaction log backup το οποίο δεν επιτρέπει να υπάρχει πρόβαση στη βάση. Αυτό το κάνουμε ώστε να είμαστε σίγουροι ότι έχουμε πάρει backup όλα τα δεδομένα.

backup log mig_db to disk='C:\backups\log_final.trn' with checksum,norecovery

Όταν ολοκληρωθεί και αυτό το backup και βεβαιωθούμε ότι έχει γίνει και αυτό Restored. Μπορούμε να πατήσουμε το Apply.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
26

Κάπου εδώ τελειώνει η διαδικασία και άμα συνδεθούμε στο Managed Instance θα δούμε να έχει μεταφερθεί η βάση δεδομένων που είχαμε επιλέξει να κάνουμε migrate.

Πώς κάνουμε online migration ένα instance από on-premise σε Azure Managed Instance στο Cloud (Azure Database Migration Service)
27

Πηγές:

Μοιράσου το

Αφήστε μία απάντηση