Skip to main content

Migracja bazy SQL do Azure - Migration database SQL to Azure

┬Ě 3 min read
Piotr Rogala

Migracja bazy SQL do chmury Azure jest prostym procesem, aby go dokona─ç bez wi─Ökszych problem├│w nale┼╝y zrozumie─ç jak to dzia┼éa. CODEPLEX udost─Öpnia programik to migracji bazy SQL bezpo┼Ťrednio z serwera bazodanowego w chmur─Ö. Brzmi prosto prawda? Pomimo tego warto wspomnie─ç o pewnych wymaganiach jakie stawiane s─ů przez Azure. Po pierwsze: omawiamy kwestie w kt├│rej korzystamy z Cloud Services - gdzie baza SQL stoi na zdefiniowanej przez nas instancji - wybieramy w jakim rejonie ┼Ťwiata znajduje si─Ö serwer oraz moc instancji. Po drugie: aby tego dokona─ç musimy sobie zda─ç spraw─Ö, ┼╝e mamy ograniczony dost─Öp do ustawie┼ä bazy. Cloud Services cechuje si─Ö tym, ┼╝e korzystamy interfejsu Azure-owego do zarz─ůdzania baz─ů lub ┼é─ůczymy si─Ö z serwerem przez Management Studio gdzie otrzymujemy okrojone mo┼╝liwo┼Ťci o kt├│rych wspomn─Ö w dalszej cz─Ö┼Ťci. G┼é├│wnym problem jest to ┼╝e nie mo┼╝emy w prosty spos├│b u┼╝y─ç funkcji przywr├│cenia bazy SQL z pliku .bak poniewa┼╝ nie mamy takiej opcji. Jedyna mo┼╝liwo┼Ť─ç to deploy bazy z pliku .bacpac. Dlatego aby dokona─ç migracji bazy z ┼Ťrodowiska produkcyjnego potrzebujemy narz─Ödzia SQL Database Migration Wizard: sqlazuremw.codeplex.com. Zanim jeszcze rozpoczniemy prac─Ö z programem nale┼╝y zdefiniowa─ç dost─Öp z jakiego adresu IP b─Ödziemy dokonywa─ç migracji, wygl─ůda to tak:

capture_012_06082013_161238.jpg

Powy┼╝sza ilustracja obrazuje jak wygl─ůda zdefiniowany scope IP dost─Öpowy dla naszej instancji SQL. Po dokonaniu tej czynno┼Ťci przechodzimy do narz─Ödzia CODEPLEX-a (warto go uruchomi─ç jako administrator):

capture_001_06082013_105051.jpg

Po uruchomieniu wybieramy Migrate Database, przechodz─ůc dalej wybieramy po┼é─ůczenia si─Ö z nasz─ů baz─ů lokaln─ů, kt├│r─ů chcemy migrowa─ç. W kolejnych krokach wybieramy baz─Ö z z serwera SQL i generujemy dla niej skrypt, kt├│ry b─Ödzie interpretowany w chmurze Azure w celu jej importu. Klikamy dalej aby generowa─ç kod.

capture_015_07082013_101605.jpg

Wygenerowany kod mo┼╝emy zapisa─ç, ale nie jest to wymagane. Warto przejrze─ç powy┼╝sze okienko czy nie pojawi┼éy si─Ö b┼é─Ödy podczas generowania skryptu. Po weryfikacji proponuj─Ö r├│wnie┼╝ zajrze─ç na dysk C: do katalogu SQLAzureMW. Znajdziemy w nim pliki wygenerowane, kt├│re b─Öd─ů eksportowane do naszej chmury w nast─Öpnych krokach.

capture_014_06082013_162200.jpg

Wr├│─çmy zatem do migracji, po┼é─ůczmy si─Ö z nasz─ů baz─ů w Azure. Aby zalogowa─ç si─Ö do bazy podajesz utworzone wcze┼Ťniej dane, a nazw─Ö serwera znajdziesz a panelu Azure.

capture_010_06082013_161123.jpg

W nast─Öpnych krokach zaznaczasz baz─Ö do kt├│rej chcesz importowa─ç baz─Ö, mo┼╝esz r├│wnie┼╝ poziomu wizard-a utworzy─ç now─ů baz─Ö w Azure. W zale┼╝no┼Ťci od wielko┼Ťci bazy i przepustowo┼Ťci Twojego ┼é─ůcza b─Ödzie trwa─ç migracja bazy. W moim przypadku baza mia┼éo ko┼éo 3gb i trwa┼éo oko┼éo 2h. Na marginesie nie wiem czemu w Result Summary mam podany czas 11 minut, ale mo┼╝e to zwi─ůzane jest z tym ┼╝e czas podany dotyczy┼é danego procesu kopiowania. Najwa┼╝niejsze jest aby migrator przeni├│s┼é wszystkie elementy bez error-├│w.

capture_009_06082013_111552.jpg

Na koniec proponuj─Ö pod┼é─ůczy─ç si─Ö do bazy przez Management Studio i zweryfikowa─ç wielko┼Ť─ç bazy po migracji. Mo┼╝esz to zrobi─ç nast─Öpuj─ůcym poleceniem:

SELECT (SUM(reserved_page_count) * 8192) / 1024 / 1024 AS DbSizeInMB
FROM sys.dm_db_partition_stats

capture_019_07082013_101934.png

Na czerwono zaznaczy┼éem wielko┼Ť─ç mojej bazy i teraz mog─Ö by─ç pewny ┼╝e baza przeniesiona nie ma ┼╝adnych ubytk├│w i zosta┼éa poprawnie przemigrowana. Wy┼╝ej zaznaczy┼éem Task dotycz─ůcy bazy, mo┼╝na zauwa┼╝y─ç ┼╝e mamy ograniczenia zwi─ůzane z modyfikacjami bazy, nie wspomn─Ö o tym ┼╝e w przypadku SQL Services nie mamy nawet funkcji "Properties" dla bazy. Dlatego zanim przemigrujesz baz─Ö zastan├│w si─Ö czego b─Ödziesz potrzebowa─ç. Zawsze pozostaje mo┼╝liwo┼Ť─ç zakupienia serwera z z SQL, kt├│ry daje nam wszystkie mo┼╝liwo┼Ťci konfiguracji. W razie pyta┼ä zapraszam! Mo┼╝esz pisa─ç do mnie w komentarzach i na priv, pozdrawiam!