Skip to main content

Migracja bazy SQL do Azure - Migration database SQL to Azure

· 3 min read
Piotr Rogala
MVP Azure & owner JustCloud.pl

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!