Kako migrirati bazu na Azure SQL Database

Windows Azure SQL Database je PaaS (Platform as a Service) servis na cloudu. Za razliku od SQL Server servisa na VM, ovdje nemate server koji administrirate nego platformu na kojoj možete postaviti vašu bazu podataka. Nema nikakve fizičke administracije servera, a servis sam radi backup. Korisnik može uraditi restore svoje baze na bilo koji trenutak u zadnjih sedam dana (za Premium edition, taj period je 35 dana). Pošto se baza ne nalazi na klasičnom Windows okruženju, nije moguće uraditi klasični restore baze nego je potrebno migrirati podatke, a za to možete koristiti ove alate:

Pošto ovo nije klasična SQL Server baza podataka, postoji šansa da vaša baza nije kompatibilna sa ovim servisom. Zato je potrebno, prije početka migracije podataka provjeriti kompatibilnost baze, a provjerite i listu opcija koje nisu podržane u verziji SQL Database V12 i limite resursa kojima možete raspolagati na ovom servisu. Za provjeru kompatibilnosti se preporučuju sljedeći alati:

  • SQL Server Data Tools for Visual Studio (“SSDT”)
  • SqlPackage
  • Deploy Database to Windows Azure SQL Database wizard in SQL Server Management Studio
  • The Export Data Tier application wizard in SQL Server Management Studio
  • The Microsoft SQL Server 2016 Upgrade Advisor Preview
  • SQL Azure Migration Wizard (“SAMW”)

Ukoliko ste pronašli neke nekompatibilnosti na bazi, potrebno ih je usaglasiti sa opcijama koje su podržane na SQL Database da bi se moglo početi sa migracijom. Probleme sa kompatibilnošću možete riješiti koristeći već poznate alate na koje ste navikli:

  • SQL Server Data Tools for Visual Studio (“SSDT”)
  • SQL Server Management Studio (“SSMS”)
  • SQL Azure Migration Wizard (“SAMW”)

 

Kad su svi problemi sa kompatibilnošću riješeni, migraciju možete uraditi na jedan od sljedećih načina:

 

Deploy Database to Windows Azure SQL Database

Opcija Deploy Database to Windows Azure SQL Database je uključena u SQL Server Management studio od verzije SQL Server 2012. Desnim klikom na željenu bazu, doći ćete do opcije Deploy Database to Windows Azure SQL Database:

Deploy_1

Klikom na ovu opciju pokreće se wizard na kojem se morate prijaviti na SQL Azure bazu, pritiskom na dugme Connect...

Deploy_2

Wizard prvo provjerava da li je baza kompatibilna i spremna za migraciju, a potom i migrira bazu.

Deploy_3

Ako je sve prošlo bez problema i sve stavke su zelene, baza je migrirana i spremna za upotrebu.

Export a Data-tier Application

Ova opcija takođe validira bazu prije migracije, a nalazi se u istom meniju kao i prethodna. Desnim klikom na bazu možete pronaći ovu opciju:

DataTier_1

Razlika u odnosu na prethodnu opciju je što se ovdje kreira .bacpac file u kojem su smješteni podaci, a koji je potrebno smjestiti negdje na cloud servisu. Za to je potrebno napraviti Azure Storage Account i pripremiti Container u koji će se ovaj file smjestiti. Pokretanjem ove opcije, morate definisati vaš Srorage Account i Container u koji će se file smjestiti:

DataTier_2

Potrebno je unijeti podatke za pristup na Storage Account:

DataTier_3

Pokreće se validacija export podataka koji se smještaju u Container na cloudu:

DataTier_4

Kad su podaci smješteni na Storage accountu, možete ih importovati koristeći opciju Import a Data-tier Application. Kroz Management Studio, prijavite se na Azure SQL Database. U folderu Databases, desnim klikom na prazan prostor dobićete ovu opciju.

DataTier_Import_1

Pokreće se wizard u kojem treba izabrati Storage account iz kojeg se importuje .bacpac file:

DataTier_Import_2

Potom se izabere ime baze i Edition koji vama odgovara:

DataTier_Import_3

Wizard završava import podataka i bza je spremna za korištenje.

DataTier_Import_4

Generate Scripts…

Ova opcija postoji u svim verzijama i vjerovatno ste je koristili za kopiranje strukture baze ili objekata. Kopiranje strukture baze se pokreće klikom na opciju Generate scripts…

Generate_1

Dobijenu skriptu izvršite na Azure SQL Database bazi i kreirate potrebne objekte i strukturu. Podatke zatim možete prebaciti na neki od funkcionalnosti koje postoje u SQL Serveru:

  • SQL Server Integration Services
  • BCP
  • SQLBulkCopy api
  • Generate Script wizard

SQL Database Migration Wizard (CodePlex)

Ovo je Open Source besplatni alat koji možete skinuti na ovom linku. I ovaj alat validira bazu prije migracije pa tek onda migrira. Za početak migracije je potrebno označiti opciju Database u sekciji Analyze / Migrate i pokrenuti wizard.

SQLAzureMW

Transactional replication

U nekim slučajevima niste u mogućnosti da ugasite bazu na period koji je potreban da bi se završila migracija jer vaš sistem ne smije stati. U tom slučaju možete koristiti standardnu Transactional Replication na način da se Azure SQL Database proglasi za Subscriber i započne replikacija. Kad su svi podaci replicirani, baza se prebaci na novu.

Sretno s migracijom…