Archívum

Archive for 2012. szeptember

SQL Azure Data Sync

2012. szeptember 26. szerda Hozzászólás

Az SQL Azure Data Sync segítségével a saját on-premise SQL Szerverünk és az SQL Azure között szinkronizálhatjuk az adatainkat. Sőt akár több SQL Azure példány között is történhet szinkronizáció. Ez a technológia a Microsoft Sync Frameworkon alapul. A szinkronizáció kétirányú is lehet. Nézzük meg, hogy hogyan lehet egy szinkronizációs mechanizmust létrehozni! Akár SQL Server Express változatával is szinkronizálhatunk.

Ezt a funkciót a „régi” Silverlightos portálon mutatom be, ugyanis ez a funkció az új HTML5-ös portálon a könyv írásának pillanatában még nem érhető el.

1. Lépjünk be az Azure Management Portálra! A feladat elvégzéshez már rendelkeznünk kell egy SQL Azure-os adatbázissal. (A korábbi részében ennek létrehozását részletesen bemutattuk.)

2. Kattintsunk a jobb oldali navigációs sávon a Data Sync menüpontra!

3. A jobb oldalon megjelenő elfőzetések között válasszuk ki azt, amelyikhez kötni szeretnénk. (amihez az SQL Azure adatbázisunk tartozik), majd kattintsunk a Provision gombra!

4. Megjelennek a szerződési feltételek. Olvassuk el, majd fogadjuk el őket!

5. A megjelenő ablakban válasszuk ki a számunkra megfelelő régiót. Fontos, hogy a Sync régiójának meg kell egyeznie az adatbázis régiójával. Tehát ha az adatbázisunkat North Europe-ban hoztuk létre, akkor a Sync Regió beállításnak ezzel meg kell egyeznie. Ha ezzel megvagyunk, kattintsunk a Finish gombra!

6. Létrehoztunk egy Sync group-ot a kiválasztott régióban! Itt kell kiválasztanunk, hogy on-premise SQL Server és SQL Azure között szeretnénk szinkronizálni vagy SQL Azure adatbázisok között. Kattintsunk a Sync between On-Premise and SQL Azure Databases menüpontra!

image

7. A megjelenő ablakban adjuk meg a Sync Group nevét! Ennek a névnek egyedinek kell lennie! Mi most a SyncDemo nevet adjuk neki.

image

8. A jobb oldalon megjelenő Configuration vezérlőnél beállíthatjuk, hogy a szinkronizáció milyen időközönként történjen meg. Ezt mi most 10 percre állítjuk. A legkisebb beállítható szinkronizációs idő 5 perc, a legnagyobb a maximum 1 hónap lehet. Itt állíthatjuk be azt is, hogy konfliktus esetén a kliens (Helyi SQL Sever) vagy a HUB (SQL Azure) nyerjen. Ez a beállítás projektfüggő, de ennél a példánál mi a Hub-ot részesítjük előnyben.

image

9. Ha beállítottuk a nekünk megfelelő beállításokat, kattintsunk a következő lépés gombra! Második lépésként meg kell adnunk a helyi SQL Server beállításait, amihez szinkronizálni szeretnénk. Kattintsunk a Click to add a SQL Server database menüpontra!

image

10. Megjelenik az Add Database to Sync Group ablak. Az ablak alsó részében van a Sync Direction beállítás. Itt állíthatjuk be a szinkronizáció irányát. Megadhatjuk, hogy csak a Hubra szinkronizáljunk (Sync to the Hub), megadhatjuk, hogy csak a Hubról szinkronizáljunk a kliens felé (Sync fron the Hub) vagy pedig azt, hogy a szinkronizáció kétirányú legyen (Bi-directional). Mi most a kétirányú szinkronizációt fogjuk választani. Konfliktus esetén a Configuration vezérlőnél megadott szabályok érvényesülnek. A Database elemen belül válasszuk ki az Add a new SQL Server database to the sync group menüpontot! Ez akkor kell, ha ezelőtt még nem adtunk hozzá ilyen csoportot a Sync Grouphoz. Ellenkező esetben akár ki is választhatnánk a felajánlott listából (Select from the existing sync member databases). Ha kiválasztottuk a nekünk megfelelő menüpontot, kattintsunk a Next/Finish gombra!

image

11. A következő ablakban meg kell határoznunk, hogy van-e már Client Sync Agentünk vagy sem. Amennyiben először használjuk ezt a Sync Groupot, nem lesz. Kattintsunk az Install a new Agent –re, majd kattintsunk a Next gombra!

image

Ez az Agent egy kis alkalmazás, ami a szinkronizációt végzi a helyi SQL Server és az Azure között. Ez az alkalmazás http protokollon keresztül kommunikál a felhővel. Így nem szükséges semmilyen tűzfa beállítást módosítani a számára.

Ha a böngészőből elérjük ezt az oldalt, akkor az Agentnek is működnie kell.

12. A megjelenő ablakban első lépésként töltsük le az SQL Azure Data Sync Agent-et! (Jelenleg Preview változat érhető el!) Ezt az alábbi címről is elérhetjük http://go.microsoft.com/fwlink/?LinkID=226849.

13. Miután letöltöttük, telepítsük az alkalmazást! Az alkalmazás telepítése egyszerű, mindössze egy fontos kérdést tesz fel, mégpedig azt, hogy mi legyen annak a felhasználónak a neve és jelszava, akinek a nevében a szinkronizációs szolgáltatás működni fog! Ennek a felhasználónak el kell tudni érni az SQL Servert is!

image

14. Ha sikerült a telepítés, indítsuk el a Microsoft SQL Azure Data Sync Agent –et! Ehhez rendszergazdai jogosultságok kellenek!

image

15. Az alkalmazás elindulását követően kattintsunk a Submit Agent Key menüpontra! A megjelenő ablakban egy Agent Key-t vár. Ezt az Agent Key-t a Windows Azure Management portálon találjuk.

16. Térjünk vissza a portálra, és az Install a New Agent ablakban a Step 2 -nél határozzuk meg az Agent nevét! Ez általában a gépünk hosztneve szokott lenni, de lehet más is. Majd kattintsunk a Generate Agent Key menüpontra! Ha sikerült legenerálnia, másoljuk ki a kulcsot, és illesszük be a Microsoft SQL Azure Data Sync Agent-be, majd kattintsunk az OK gombra!

image

image

17. Ha ezzel megvagyunk, kattintsunk a Register menüpontra! Ekkor felugrik az SQL Server Configuration ablak. Itt adhatjuk meg az SQL Serverünk elérhetőségét. A Servernél az SQL Szerver címét és szükség esetén példányát kell megadnunk. Ez jelen esetben a .\SQLEXPRESS, azaz a lokális gép SQLEXPRESS példánya. A Database-nél azt az adatbázist kell megadnunk, amit szinkronizálni szeretnénk. Ebben a példában ez a Northwind. Ha Windows Authentication-t választunk, nem kell hitelesítési információkat megadni. SQL Authentikációnál az adott SQL Serverhez és/vagy adatbázishoz tartozó hitelesítési adatokat kell megadnunk.

image

18. Kattintsunk a Test Connection menüpontra! Ha sikerül kapcsolódnia, akkor kattintsunk a Save gombra! Ekkor a felhasználói felületen megjelenik az az adatbázis, amit előzőleg hozzáadtunk.

image

19. Térjünk vissza a Management portalra, és az Install a New Agent ablakban kattintsunk a Next gombra!

20. Az Add Database to Sync Group ablakban kattintsunk a Get Database List gombra! Ekkor letölti az összes adatbázis fejlécet, amit a kliensben hozzáadtunk. Jelen esetben csak a Northwindes adatbázis fog megjelenni a lenyíló listában.

21. Válasszuk ki a számunkra szükséges adatbázist! (Jelen esetben azt az egyet, amit előzőleg hozzáadtunk.)

image

22. Ha ezzel megvagyunk, akkor kattintsunk a Finish gombra!

23. Meghatároztuk a kliens gépünk beállításait. Most már csak a cél SQL Azure szerver beállításait kell megadnunk. Kattintsunk a Click to add a Windows Azure SQL databases as the Sync Hub gombra!

image

24. A megjelenő ablakban meg kell határoznunk az SQL Azure szerverünk elérhetőségi adatait. Ezt követően kattintsunk az Add gombra!

image

25. A varázsló ekkor ismét a konfliktuskezelést kérdezi meg tőlünk. Ugyanazt, amit korábban már meghatároztunk. Ha nem akarunk ezen változtatni, kattintsunk a tovább szimbólumra!

26. Elérkeztünk az egyik legérdekesebb részhez, a Dataset kezeléshez. A megjelenő ablakban kattintsunk az Edit Dataset gombra!

27. Felugrik a Define Dataset for Syncronization ablak. Itt határozhatjuk meg, hogy mely táblákat szeretnénk szinkronizálni. Mi most válasszuk ki a Customers táblát! Azt is meghatározhatjuk, hogy melyik oszlopot szinkronizáljuk. Majd kattintsunk az OK gombra!

image

28. Amint visszatértünk a fő oldalra, láthatjuk az összegzést. Majd kattintsunk a Deploy gombra!

image

Most már minden lépést elvégeztünk. Ha most változtatunk valamit a helyi SQL Serveren, akkor az a következő frissítéstől már az SQL Azure-ban is látszani fog. Abban az esetben, ha az SQL Azure adatbázisban történik változás, a lokális szerver is megkapja az új adatokat a következő frissítéskor. Ne feledjük, most a frissítés kétirányú (bi-directional)! Ha pedig ütközés van, a beállításaink szerint a HUB azaz az SQL Azure adatbázis fog nyerni.

Kategóriák:SQL Azure Címkék: ,

SQL Azure adatbázis elérése kliens alkalmazásból

2012. szeptember 25. kedd 1 hozzászólás

Ahhoz, hogy az SQL Azure adatbázisban tárolt adatainkat elérjük egy kliens alkalmazásból, az alkalmazás üzleti logikáján semmit sem kell módosítanunk. Tulajdonképpen csak a „csatlakozási karakterláncot” (Connection String) kell változtatnunk. Egy helyesen megírt .NET alkalmazásnál ráadásul a connection string általában egy app.config (web.config) xml fájlban van letárolva. Így az alkalmazásunkat nem kell újrafordítanunk ahhoz, hogy az adatbázis most már az SQL Azure-ba fusson helyi SQL szerver példány helyett. Az adatok feldolgozásához ugyanazokat az ADO.NET-es objektumokat használhatjuk, mint eddig (SqlCommand, SqlDataReader, SqlConnection stb). Sőt, ha Linq To SQL-t vagy Entity Frameworkot használunk, ott sincs szükség extra munkára, szintén csak a connection string-et kell átírnunk.

Nézzünk erre egy egyszerű példát! Most egy egyszerű konzol alkalmazással érünk el egy adatbázist.

using System;

using System.Data.SqlClient;

namespace SqlAzureDemo

{

    class Program

    {

        static void Main(string[] args)

        {

            try

            {

                using (SqlConnection conn = new SqlConnection())

                {

                    conn.ConnectionString = "ConnectionString";

                    using (SqlCommand cmd = new SqlCommand())

                    {

                      cmd.Connection = conn;

                      cmd.CommandText = "SELECT CustomerID FROM Customers";

                      conn.Open();

                      using (SqlDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection))

                      {

                          while (dr.Read())

                          {

                              //Csináljon valamit.

                              Console.WriteLine(dr[0]);

                          }

                          dr.Close();

                      }

                    }

                }

            }

            catch (SqlException ex)

            {

                Console.WriteLine(ex.Message);

                //Valami baj történt

            }

        }

    }

}

A példában az egyszerűség és az átláthatóság kedvéért a Connecton string-et beégetjük a forráskódba. Ezt egy éles alkalmazásnál célszerű egy külső konfigurációs fájlban elhelyezni (App.config, web.config stb.).

Ha a helyi SQL Server Express példányát szeretnénk elérni, akkor a Connection String az alábbiak szerint nézne ki:

@"Server=.\SQLEXPRESS;Database=Northwind;Trusted_Connection=Yes";

Látható, hogy ez klasszikus connection string, ahol megadjuk az adatbázis szerver elérhetőségét, az adatbázis nevét, valamint a hitelesítő adatokat, ami ebben az esetben megegyezik a Windows rendszerbe bejelentkezett felhasználóéval.

SQL Azure esetén nem lehet Trusted_Connection-t használni, csakis kizárólag felhasználónév jelszó párossal tudjuk hitelesíteni magunkat. Ha a fentebbi connection string-et lecseréljük az alábbira, akkor már nem a helyi sql szerverből fogja lekérdezni az adatokat, hanem az SQL Azure adatbázisunkból. Ebben az esetben a connection string az alábbiak szerint módosul:

"Server=e7m4zvqafx.database.windows.net;Database=Northwind;User ID=TuroczyX;Password=myPassword1";

Figyeljük meg, hogy ebben az esetben megadtuk az SQL Azure szerverünk teljes elérési útvonalát,, ami jelenleg az e7m4zvqafx.database.windows.net! A Database ugyanaz, mint a helyi példány esetén. Itt határozzuk meg, hogy az adott adatbázis szerveren melyik adatbázist szeretnénk elérni, jelen esetben a Northwind-et. Az authentikáció ebben az esetben csak felhasználónév és jelszó birtokában történhet. Windows authentikációra nincs lehetőség. Ez ugyanúgy történik, mintha a helyi SQL serverbe authentikálnánk. Tehát amit látnunk kell, hogy csak az adatbázis címét, valamint a hitelesítési adatainkat kell módosítani.

Korábban a connection string valamivel összetettebb volt. Például a Server neve előtt egy tcp: prefixum volt, valamint a felhasználónevet is csak úgy adhattuk meg, hogy kiegészítjük a szerver nevével az alábbi módon: TuroczyX@e7m4zvqafx. Mára ez egyszerűsödött, de nézzük meg ugyanezt a példát a régebbi connection string megadásával!

"Server=tcp:e7m4zvqafx.database.windows.net;Database=Northwind;User ID=TuroczyX@e7m4zvqafx;Password=myPassword1";

Mind a kétféle megadási módszert alkalmazhatjuk, az SQL Azure elfogadja.

Ha Entity Frameworkot használunk, akkor a connection string az alábbiak szerint módosul:

metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=S
ystem.Data.SqlClient;provider connection string="data source=e7m4zvqafx.database.windows.net;initial catalog=Northwind;user id=TuroczyX;password=myPassword1;"

Mint láthatjuk, csak a szerver címe különleges, minden más megegyezik a korábbi connection stringgel.

Figyeljünk arra, hogy ebben az esetben az adatbázisunkhoz tartozó connection string egy XML fájlban lesz letárolva! Mivel csak SQL Authentikációt támogat az SQL Azure, ezért ebben a fájlban szabadon olvasható módon benne lesz a felhasználónevünk-jelszavunk. Ezt természetesen titkosíthatjuk. Az alábbi oldalon további információkat találhat erről: http://msdn.microsoft.com/en-us/library/89211k9b(v=vs.80).aspx.

Kategóriák:SQL Azure Címkék: ,

SQL Azure Migration Wizard

2012. szeptember 24. hétfő Hozzászólás

A SQL Azure Migration Wizard (SQLAzureMW) segítségével egyszerűen tudunk migrálni SQL Server 2005/2008/2012-ből SQL Azure-ba. Az SQLAzureMW analizálja az adatbázisunkat, és ha valamilyen kompatibilitási problémát talál, akkor szól, illetve ha tudja, akkor javítja. Így az SQL Serverünkből az adatbázist könnyedén átemelhetjük az SQL Azure környezetbe. A migrációra a következő lehetőségeink vannak: migrálhatunk SQL Server –ből SQL Azure-ba, SQL Azure-ból helyi SQL Server-re, illetve SQL Azure és SQL Azure között is történhet a migrálás.

Az SQL Azure Migration Wizardot a http://sqlazuremw.codeplex.com –ról tölthetjük le. Az oldalon nemcsak a termék, hanem annak a forráskódja is letölthető.

Az SQL Azure Migration Wizard jelenleg két változatban érhető el. A v3.X-es változathoz SQL Server 2008 R2 SP1, míg a v4.X-es változathoz SQL Server 2012 kell.

1. Indítsuk el az alkalmazást (SQLAzureMW.exe)!

2. A megjelenő ablakban most válasszuk ki az Analyze / Migrate menüpontból az SQL Database-t, majd kattintsunk a Next gombra!

image

3. A megjelenő Connect to Server ablakban adjuk meg a helyi/hálózati SQL Serverünk elérhethőségét! Ez ebben az esetben a .\SQLEXPRESS, valamint határozzuk meg, hogy melyik adatbázist szeretnénk migrálni!

image

Ha ezzel megvagyunk, kattintsunk a Next gombra!

4. A megjelenő ablakban kiválaszthatjuk, hogy mely objektumokat szeretnénk migrálni. Ezek a beállítások most jók számunkra. További beállítási lehetőségeink vannak az Advanced menüpont alatt. Itt állíthatjuk be például azt is, hogy csak a sémát, csak az adatot, vagy a tábla sémát és az adatot együtt szeretnénk migrálni. Kattintsunk a Next gombra!

5. Egy Scirpt Wizard Summary fogad minket. Összegzi, hogy mit és hogyan szeretnénk migrálni. Ha ez megfelelő számunkra, kattintsunk a Next gombra!

6. Ezt követően elindul az átalakítás. Ez az adatbázis méretétől függően néhány másodperctől kezdve akár több percig is eltarthat. Ha sikeres volt az átalakítás, kattintsunk a Next gombra! (Az eredményt kimenthetjük *.rtf-be illetve *.sql-be is.)

image

7. Majd felugrik a Connect to Server ablak. Itt viszont most az SQL Azure-hoz kell kapcsolódnunk. Adjuk meg az SQL Azure kapcsolódási beállításait, a szerver nevét, hozzáférési adatait, az adatbázis nevét, majd kattintsunk a Connect gombra!

image

8. Ha mindennel megvagyunk, kattintsunk a Next gombra. Megjelenik egy figyelmeztető ablak, ahol a Yes –re kattintva elindul a szkript az SQL Azure-os adatbázisunkon. A folyamat az adatbázis méretétől függően néhány percig is eltarthat. Ha sikerült, és minden rendben zajlott, akkor az alábbi képernyő fogad:

image

9. Ha most megnézzük az adatbázisunkat, láthatjuk, hogy minden lehetséges adatot átmigráltunk az SQL Azure adatbázisba.

Észrevehetjük, hogy meglévő adatbázisainkat néhány egyszerű lépés segítségével átmozgathatjuk az SQL Azure-os adatbázisba. De ne feledjük, nemcsak SQL Serverből lehet migrálni, lehetőségünk van SQL Azure-ból SQL Server-re, sőt akár SQL Azure és SQL Azure között is.

Ezeket a lépéseket SQL Server Management Studióval is megtehetjük, csak nem segít annyit nekünk, mint az SQL Azure Migration Wizard.

SSMS esetében szkriptet kell generálnunk az adatbázisunkból (meg kell adnunk, hogy SQL Azure kompatibilis szktipet készítsen), majd az átalakított szkriptet az SQL Azure adatbázis szerverén le kell futtatnunk.

Természetesen nemcsak SQL Server és SQL Azure között migrálhatunk. Léteznek különböző eszközök, amelyek elősegítik a migrálását akár nem Microsoft-os adatbázisokból is. Ilyen példaul az SSMA for MySQL, amely a MySQL adatbázis migrálását teszi lehetővé SQL Azure-ba, vagy az SSMA for Access, amely az Access adatbázisokat migrálja az SQL Azure adatbázisunkba. Ezek Microsoft által támogatott eszközök!

Kategóriák:SQL Azure Címkék: ,

SQL Azure Management Portál

2012. szeptember 21. péntek 1 hozzászólás

Az SQL Azure adatbázisunkat nemcsak SQL Server Management Studio segítségével kezelhetjük, hanem akár egy webes portál segítségével is.

1. A Management Portálon navigáljunk el az előfizetésünkhöz tartozó adatbázishoz, majd kattintsunk a Manage gombra! (A webes menedzsment felületet közvetlen módon is elérhetjük. Ennek a címe a https://*.database.windows.net, ahol a * az adatbázisunk nevét jelöli. Tehát ebben az esetben a teljes cím a https://e7m4zvqafx.database.windows.net).

2. Amikor elnavigálunk az adott címre, egy Silverlightos alkalmazás fog elindulni. Itt meg kell adnunk a felhasználó nevünket, valamint jelszavunkat. (Opcionálisan az adatbázis nevét). Majd kattintsunk a Log On gombra!

image

Ne feledjük engedélyezni azt, hogy az adatbázist azure szolgáltatások is elérhessék!

3. Egy Metro UI-os webes adatbázis menedzser fogad. Ez az SQL Server Management Studio kistestvére, amit bármikor, bárhonnan elérhetünk (Tűzfalszabályoknak megfelelően). Fontosabb funkciókat erről a felületről is el tudunk érni.

4. Nézzük meg, mire jó ez a felület! Ha a kapcsolódásnál nem határoztunk meg adatbázist, és rendszer szintű felhasználók vagyunk, akkor a bal felső sarokban kiválaszthatjuk, hogy melyik adatbázissal szeretnénk dolgozni. Most válasszunk ki egy adatbázist, legyen a Northwind!

image

Látható az is, hogy egy keresés mező is rendelkezésünkre áll, hogy gyorsabban megtaláljuk a szükséges adatbázisunkat. Ez főleg nagy adatbázis számnál jöhet jól.

5. Amint kiválasztottuk az adatbázist, egy összegző nézet jelenik meg.

image

Itt láthatunk minden fontosabb információt az adatbázisunkról. Mikor készítettük, mi a Collation beállítása, hány aktív kapcsolat van vagy mekkora az adatbázis maximális és felhasznált mérete.

6. A felső menüsorban a legfontosabb funkciókat találjuk. Új lekérdezéseket írhatunk, betölthetünk sql szkripteket, vagy akár új adatbázist is készíthetünk.

image

7. A New Query gombra kattintva betöltődik egy szkript szerkesztő. Ide írhatjuk saját lekérdezéseinket, természetesen ez a felület is rendelkezik kódkiemeléssel.

image

8. Lekérdezéseink Query Plan-jét is megtekinthetjük (Actual plan).

Nemcsak lekérdezéseket fogalmazhatunk meg az SQL Azure Management felületén, hanem akár új adatbázist is készíthetünk, és táblákat is menedzselhetünk, sőt akár Data-Tier alkalmazásokat is feltölthetünk.

image

1. Kattintsunk a bal alsó sarokban az Administration menüpontra, majd a megjelenő oldalon a Create gombra!

2. A megjelenő ablakban meg kell adnunk az adatbázisunk nevét, méretét és collation beállítását. Ha ezt megtettük, kattintsunk a Submit gombra!

image

3. Néhány másodperc alatt elkészül az adatbázisunk. Itt nemcsak elkészíthetjük, de akár a táblákat is megszerkeszthetjük. Kattintsunk a bal alsó sarokban a Design menüpontra!

image

4. Itt táblát, nézetet, valamint tárolt eljárást is létrehozhatunk. Mi most egy egyszerű táblát fogunk létrehozni, kattintsunk a New table menüpontra!

5. A megjelenő ablakban adjuk meg a tábla nevét, ami most Administrators lesz! Három mező lesz benne: egy ID, ami elsődleges kulcs, az Is Identity kapcsolója true, valamint egy Name mező, illetve egy City mező amelyek nvarchar típusúak. (Méretük lényegtelen.)

image

6. Ha megvagyunk, kattintsunk a Save gombra!

7. A táblánkat létrehoztuk, de ez a tábla még üres. Ha módosítani vagy új adatot szeretnénk hozzáadni, kattintsunk a Data menüpontra! Az Add row gomb megnyomásával új rekordokat adhatunk a táblánkhoz. Adjunk néhány rekordot a táblánkhoz. A mentés csak akkor következik be, ha a Save gombra kattintottunk. Nem ment automatikusan a rendszer.

image

Láthatjuk, hogy a fontosabb műveleteket elérhetjük webről is. Nem kell hozzá kliensalkalmazást telepíteni. Használata könnyű és gyors. Ez egy jó és szép eszköz, de összetettebb feladatokra az SQL Server Management Studio ajánlott.

Kategóriák:SQL Azure Címkék: ,

SQL Azure tábla létrehozása, lekérdezése

2012. szeptember 20. csütörtök Hozzászólás

Láthattuk, hogyan készítsünk adatbázist, hogyan hozzunk létre felhasználó fiókot, de még nem hoztunk létre egy táblát sem. Jelöljük ki a DevTest adatbázist az Object Explorer-ben, majd kattintsunk jobb egérgombbal, és válasszuk ki a New Query menüpontot! (Nem használhatjuk a USE parancsot!) A megjelenő szerkesztő felületre írjuk a következőt:

CREATE TABLE Developers(ID INT, Name VARCHAR(20))

INSERT INTO Developers VALUES(1, ‘Attila’)

Ezzel a szkripttel egy baj van: mégpedig az, hogy nem fog működni. Látszólag minden rendben van, de mégsem. A táblát ugyan létrehozzuk, de a szkript az insert-nél „elhasal” az alábbi hibával:

Msg 40054, Level 16, State 1, Line 2

Tables without a clustered index are not supported in this version of SQL Server. Please create a clustered index and try again.

Ez azért van, mert mindenképp szükségünk van egy clustered index-re. Érdemes kihasználnunk, hogy az SQL Azure (akárcsak az Sql Server) alapértelmezetten létrehoz egy clustered indexet az elsődleges kulcsra. Módosítsuk a szkriptünket az alábbiak szerint:

CREATE TABLE Developers(ID INT PRIMARY KEY, Name VARCHAR(20))

INSERT INTO Developers VALUES(1, ‘Attila’)

Ebben az esetben a táblánk szintén elkészül, és az insert is le fog futni.

A Select, Insert, Update műveletekben nagy változás nincs. A lekérdezések és az adatmódosítások a már megszokott módon történnek.

SELECT * FROM Developers;

image

Kategóriák:SQL Azure Címkék: ,

SQL Azure – Hozzáférések kezelése

2012. szeptember 19. szerda Hozzászólás

Hozzáférési jogosultságokat is megadhatunk az SQL Azure adatbázisunk számára. A már korábban megismert CREATE LOGIN, ALTER LOGIN és a DROP LOGIN parancsok használatával menedzselhetjük az adatbázis szerverünk hozzáférését. Szintén fontos megjegyezni, hogy ehhez a master adatbázishoz kell csatlakoznunk.

A CREATE LOGIN paranccsal hozhatunk létre egy új szerver szintű hozzáférést. Az alábbiakban egy Attila nevű felhasználót hozunk létre, akinek a jelszava a Password1 lesz.

CREATE LOGIN Attila WITH password=’Password1′;

Ezzel egy szerver szintű felhasználót hoztunk létre. Ha viszont adatbázis szintű felhasználót szeretnénk létrehozni, akkor a CREATE USER parancs lesz a segítségünkre. Minden logint a master adatbázisba kell létrehoznunk, de ahhoz, hogy csatlakozni tudjunk egy meghatározott adatbázishoz, ezt adatbázis szinten kell megtennünk. Figyeljünk arra, hogy a DevTest adatbázison futtassuk le az alábbi parancsot!

CREATE USER DevUser FROM LOGIN Attila

Ezt követően a DevTest adatbázishoz (és csakis ahhoz) csatlakozhat az Attila nevű felhasználó.

Meghatározhatjuk, hogy az adott felhasználó fiók milyen elemekhez férhet hozzá. Ehhez az sp_addrolemember tárolt eljárás lesz a segítségünkre. Ebben az esetben a DevUser-t hozzáadjuk a db_datareader szerepkörhöz.

exec sp_addrolemember ‘db_datareader’, ‘DevUser’;

Az ALTER LOGIN paranccsal módosíthatunk egy már meglévő logint, melyet a master adatbázison kell lefuttatnunk. Az alábbiakban az Attila nevű felhasználó jelszavát cseréljük le.

ALTER LOGIN Attila

WITH PASSWORD = ‘newPassword1’
OLD_PASSWORD = ‘Password1’;

Ha egy logint törölni szeretnénk, akkor a DROP LOGIN paranccsal tehetjük meg. Ezt a parancsot is a master-en kell futtatnunk. Ha szerver szinten törlünk, akkor az asszociált adatbázis szintű felhasználói fiókok is törlődnek.

DROP LOGIN Attila

Ha meg akarjuk nézni, hogy milyen loginjaink vannak, a sys.sql_logins segítségével lekérdezhetjük a rendszerben lévő összes logint. Ezt a parancsot is a master-en kell futtatnunk.

SELECT * FROM sys.sql_logins

Az eredmény:

image

Kategóriák:SQL Azure Címkék: ,

SQL Azure adatbázis létrehozás és menedzselése

2012. szeptember 18. kedd Hozzászólás

Ha sikerült kapcsolódunk a master adatbázishoz, lehetőségünk nyílik új adatbázist létrehozni, vagy a már meglévőket módosítani vagy épp törölni. Az alábbiakban megnézzük, hogy a leggyakrabban használt műveleteket hogy érjük el Management Studio-ból.

Figyeljünk arra, hogy valóban a master adatbázishoz csatlakoztunk-r!

Az Object Explorer-ben kattintsunk a Databases-en belül a System Databases-re, majd jobb egérgombbal a master-re, és a helyi menüből válasszuk ki a New Query parancsot! A megjelenő Query Window-ba írhatjuk a szkriptjeinket.

Adatbázist Management Studio-ból is létrehozhatunk, nem fontos ehhez a Management Portálra látogatnunk. Csakúgy, mint a helyi SQL Serverek esetén, itt is a CREATE DATABASE parancs lesz a segítségünkre. Itt meg kell adnunk az adatbázisunk méretét és változatát (edition) is. Például ha egy 1 gigabájtos Web Edition-ös adatbázist szeretnénk létrehozni, akkor az alábbi szkriptet kell leírnunk:

CREATE DATABASE DevTest (MAXSIZE=1GB, EDITION=’web’);

Abban az esetben, ha nem megfelelő mérettel szeretnénk lefuttatni a szkriptet, hibát kapnánk. Például: Ha 1 gigabájt helyett 2 gigabájtot írnánk, ami a Web Edition-ben nem található, az alábbi hibaüzenetet kapnánk:

The edition ‘web’ does not support the database max size ‘2 GB’.

Ha pedig az edition-t rontjuk el, akkor az alábbi hibaüzenetet fogjuk kapni:

Invalid value given for parameter EDITION. Specify a valid parameter value.

Viszont ha nem adunk meg paramétereket, akkor alapértelmezetten egy Web Edition-ös 1 gigabájtos adatbázist hozunk létre.

CREATE DATABASE DevTest

Ha módosítani szeretnénk az adatbázisunk méretét és/vagy típusát, akkor azt az ALTER DATABASE paranccsal tehetjük meg. Az alábbi példában a már korábban létrehozott DevTest adatbázis méretét módosítjuk 1 gigabájtról 5 gigabájtra.

ALTER DATABASE DevTest

MODIFY (MAXSIZE=5GB, EDITION=’web’)

Abban az esetben, ha tovább már nincs szükségünk egy adatbázisra, akkor a DROP DATABASE paranccsal törölhetjük az adatbázisunkat. Az alábbi példában a DevTest adatbázist töröljük (dbmanagerek törölhetik az adatbázist).

DROP DATABASE DevTest;

Ha meg szeretnénk nézni a rendelkezésre álló adatbázisainkat, akkor a master sys.databases nézetét kell lekérdeznünk.

SELECT * FROM sys.databases;

image

Mint láthatjuk, az adatbázis menedzsmentben nem sok újdonság van az on-primeses megoldásokhoz képest. Néhány aprósággal érdemes tisztában lenni, de aki már otthonosan mozog az SQL Server világában, annak az SQL Azure használata nem jelent új kihívásokat.

Kategóriák:SQL Azure Címkék: ,

SQL Azure adatbázis elérése SQL Server Management Studio-ból

2012. szeptember 17. hétfő Hozzászólás

Kész az adatbázisunk, így hát itt az ideje elérni és használatba venni. Ehhez a már megszokott eszközöket is alkalmazhatjuk, például elérhetjük az SQL Azure adatbázis szerverünket az SQL Server Management Studio 2008 R2 –vel is.

Indítsuk el az SQL Server Management Studio 2008 R2-t alkalmazást!
(Amennyiben nincs telepítve, legegyszerűbben a Web Platform Installer-rel telepíthetjük http://www.microsoft.com/web/downloads/platform.aspx).

1. Az alkalmazás indulásakor felugrik a Connect to Server ablak. Ebben az ablakban a Server name-hez meg kell adnunk az SQL Azure szerverünk címét. Ez a cím mindig a szerver neve <servername>.database.windows.net címen érhető el. A <servername> a szerverünk egyedi nevét jelöli, ami ebben a példában az e7m4zvqafx.

2. Az Authentication-t állítsuk át SQL Server Authentication-re, majd adjuk meg a felhasználónevünket és jelszavunkat. A Windows Authentikáció nem támogatott!

image

FONTOS! Mindig figyeljünk oda a tűzfalszabályokra! Abban az esetben, ha helytelenül vannak beállítva, az SQL Azure szerverünket nem tudjuk elérni! Ebben az esetben a 40615 hibaüzenetet fogunk kapni.

image

3. Ha készen vagyunk, kattintsunk a Connect gombra! Ha sikerült a kapcsolódás, akkor az Object Explorerben a meglévő adatbázisunk fogad.

image

Innentől kezdve az Object Explorerből úgy kezeljük az adatainkat, mint amit az SQL Server-nél megszoktunk. Arra viszont figyeljünk, hogy ilyenkor az SQL Server Management Studiónk kisebb funkcionalitással bír! Például, ha táblát szeretnénk létrehozni, azt jelenleg csak szkriptből tehetjük meg. Nincsenek csillogó varázslóink, mint az on-primese SQL Server-nél.

Kategóriák:SQL Azure Címkék: ,

SQL Azure – Adatbázis skálázása

2012. szeptember 14. péntek Hozzászólás

Használat közben bármikor előfordulhat, hogy a meglévő adatbázisunk mérete már nem elégséges és szeretnénk módosítani annak méretét. Természetesen erre is van lehetőségünk.

1. A bal oldalon található navigációs sávon kattintsunk az SQL DATABASES menüpontra!

2. Ahhoz, hogy az adatbázisunk méretét változtassuk, kattintsunk az általunk kiválasztott adatbázis nevére!

image

3. A megjelenő oldalon a kiválasztott adatbázis Dashboardját láthatjuk, ahol a felhasznált tárterületet, valamint az ehhez kapcsolódó részletes adatokat vehetjük szemügyre.

4. Ezen az oldalon kattintsunk a Scale menüpontra!

5. Itt állítsuk be, hogy mi legyen az új mérete az adatbázisnak!

image

6. Ha kiválasztottuk a megfelelő méretet, kattintsunk a Save gombra! A folyamat néhány másodpercet vesz igénybe. Ha most visszatérünk a Dashboard-ra, láthatjuk az adatbázis kihasználtságánál, hogy nem 1 gigabájtnyi, hanem 10 gigabájtnyi tárterület áll a rendelkezésünkre.

image

Az adatbázisok mérete nemcsak felfelé, hanem akár lefelé is módosítható!

Kategóriák:SQL Azure Címkék: ,

SQL Azure –Tűzfalszabályok

2012. szeptember 13. csütörtök 1 hozzászólás

Az elkészített adatbázist jelenleg még nem tudnánk elérni. Ahhoz, hogy az elkészített adatbázist használjuk, meg kell mondanunk, hogy az SQL Azure szerverünket milyen IP cím tartományból érhetjük majd el. Megadhatunk egy IP címet vagy akár IP cím tartományt is. Nézzük meg, hogyan!

1. A baloldalon található navigációs sávon kattintsunk az SQL DATABASES menüpontra!

2. Az SQL Databases ablakban megjelennek az adatbázisaink. A Server oszlop alatt láthatjuk, hogy az adott adatbázis melyik szerverhez tartozik.

3. Ahhoz, hogy tűzfalszabályt határozzunk meg, kattintsunk az általunk kiválasztott szerver linkjére!

image

4. A megjelenő oldalon válasszuk ki a CONFIGURE menüpontot!

5. Az oldalon meg kell adnunk a tűzfalszabály nevét, ez a név tetszőleges lehet. Jelen esetben a DevOffice nevet adtuk meg a szabályunk számára. Ezenkívül kell egy IP tartományt is megadnunk, amelyből az adatbázist elérhetjük. Ez lehet egy IP cím tartomány, de lehet akár csak egy IP cím is. Ebben az esetben a start ip address megegyezik az end ip address értékével. Ha azt akarjuk, hogy a világ bármely pontjáról elérhető legyen az adatbázisunk, akkor a start ip address-nek 1.1.1.1 –es, míg az end ip address-nek a 255.255.255.255 ip címet kell megadnunk. Természetesen több szabályt is létre tudunk hozni.

image

6. Ha megadtuk a szabályainkat, kattintsunk a Save gombra az oldal alján!

image

Az, hogy megadtunk egy IP cím tartományt, ahonnan elérhetjük az adatbázist, még nem jelenti azt, hogy az Azure alkalmazásokból is el tudjuk érni. Ahhoz, hogy az azure alkalmazás is elérje ezt az adatbázist, az Allow services menüpontnak engedélyezve kell lennie. Ezt az adatbázis létrehozásnál is megadhatjuk.

image

A tűzfalszabályokat a későbbiek folyamán bármikor módosíthatjuk vagy törölhetjük.

Nemcsak a Management Portálról tudjuk a tűzfalszabályainkat módosítani, lehetőségünk van akár PowerShellből is új szabályokat meghatározni vagy a meglévőket szerkeszteni, törölni. Ehhez le kell töltenünk a Windows Azure PowerShell Cmdlets szkriptet a http://wappowershell.codeplex.com oldalról.

Kategóriák:SQL Azure Címkék: ,