SQL Practice Blog – SQL Server, BizTalk und .NET Erfahrungen

Archive for the ‘SQL Azure’ Category

SQL Azure synchronisieren mit dem Sync Framework

with one comment

Microsoft stellt seit einiger Zeit das SQL Azure Data Sync Tool for SQL Server zur Verfügung. Dieses Tool erlaubtes mit einer einfachen grafischen Oberfläche oder per Visual Studio Template eine SQL Azure Datenbank mit dem SQL Server bzw. SQL Server CE zu synchronisieren. Dies ermöglicht z.B. den zeitweiligen Offlinebetrieb einer Anwendung. Sollte die Anwendung wieder über einen Internetzugang verfügen, so kann sie sich mit der SQL Azure Datenbank synchronisieren.

Ich möchte an dieser Stelle die Synchronisation einer SQL Server Datenbank mit SQL Azure über einen SQL Server Agent Job realisieren. Die Implementierung einer Lösung mit dem Visual Studio Template und der SQL Server CE werde ich zu einem späteren Zeitpunkt demonstrieren.

Was wird benötigt?

Man benötigt für die Synchronisation zwischen SQL Azure und dem SQL Server folgendes:
SQL Server 2008 R2
Sync Framework 2.0 SDK (x86)
Sync Framework Power Pack for SQL Azure November CTP
Chinook Datenbank
– einen gültigen SQL Azure Account

Wie funktioniert es?

Nachdem alles installiert ist, startet man über Start –> Programme –> Micstartrosoft Sync Framework –> SQL Azure Data Sync Tool for SQL Server. Hier öffnet sich ein grafisches Tool in dem man seine SQL Azure Verbindungsdaten eintragen muss. Wichtig ist hierbei, das mein beim Datenbanknamen keine bereits in SQL Azure existierende Datenbank eintragen darf, sondern einen neuen Namen einer noch nicht existierenden Datenbank wählen muss.

Als nächsten Schritt wählt man die Datenbank im SQL Server aus. Dazu tragen wir als lokalen Servernamen localhost und als Datenbank-namen Chinnok ein.

Danach wählt man die Tabellen und die Reihenfolge aus, in der sie mit SQL Azure synchronisiert werden sollen. Hier kann man nun auch einstellen, welche Instanz im Falle eines Konflikts gewinnen soll. Zur Auswahl steht SQL Azure Wins oder Local Server Wins.

sql_agent

Danach kann der Assistent beendet werden, woraufhin ein SQL Server Agent Job im SQL Server angelegt wird. Dieser kann in einem Zeitplan oder Manuell ausgeführt werden. Alternativ kann er auch durch Trigger initiiert werden, welcher auf Änderungen in den Tabellen reagiert.

Ändert man nun Daten auf einen der beiden Seiten oder sogar auf beiden Seiten, so muss man zum synchronisieren den SQL Server Agent Job ausführen.

Was gibt es zu beachten?

Installiert man das Sync Framework SDK 2.0 als x64 Version, so erhält man eine COM Failure Meldung. Hier hilft nur das Sync Framework SDK 2.0 x64 zu deinstallieren und das x86 Paket zu installieren.

Wer mehr über das Sync Framework erfahren möchte, findet hier eine gute Buchrezession von mir.

Advertisements

Written by Robert Meyer

Januar 25, 2010 at 21:56

Überblick über Interessante SQL Azure Tools

with one comment

Da ich mich momentan sehr stark mit SQL Azure befasse, möchte ich euch einige Tools die das Arbeiten mit SQL Azure angenehmer machen, nicht vorenthalten.

SQL Azure Explorer
Ist ein Add-in für Visual Studio, welches einen Explorer für eure SQL Azure Datenbanken zur Verfügung stellt. Hier könnt ihr Objekte anlegen, bearbeiten und löschen.

sqlazureexplorer

Download: CodePlex

SQL Azure Migration Wizard
Dieses Tool ermöglicht eine Migration der lokalen SQL Server 2005/2008 Datenbank nach SQL Azure. Mit dem Wizard kann man SQL Objekte auswählen, aus denen dann spezielle SQL Skripte für SQL Azure erstellt und ausgeführt werden.

SQLAzureMigWiz7

Download: CodePlex

SQL Azure Manager
Der SQL Azure Manager von Juliën Hanssens ist ein einfach Online Werkzeug mit dem man seine SQL Azure Datenbanken verwalten kann. Es gleicht vom Design her dem SQL Management Studio, kommt aber von der Funktionalität nicht an dieses heran. Dennoch ein sehr feines Tool.

sql_azure_manager

Download: hanssens.org

SQL Management Studio 2008 R2
Das muss ich wohl nicht näher erklären, denn damit hat wohl jeder schon einmal gearbeitet. Zu erwähnen ist hierbei, das erst ab der Version SQL Management Studio 2008 R2 SQL Azure unterstützt wird. In der Vorgängerversion kann man lediglich Queries ausführen, jedoch nicht den Object Explorer nutzen.

Download: Microsoft

Written by Robert Meyer

Januar 6, 2010 at 10:16

Veröffentlicht in SQL Azure

Tagged with , , ,

SQL Azure: Firewall konfigurieren

leave a comment »

Wer SQL Azure zum ersten mal einsetzt, wird bemerken das er von seinem Rechner aus nicht auf den SQL Azure Server connecten kann. Was ist der Grund? SQL Azure hat eine Firewall integriert welche Standardmäßig alles blockt was nicht aus der Windows Azure Welt kommt.

Wie funktioniert die SQL Azure Firewall?azure_firewall

Auf den SQL Azure Server verbindet man sich mit zwei Arten von Verbindungen.

Die erste Möglichkeit ist die Verbindung zu SQL Azure über eine Windows Azure Anwendung, quasi eine Verbindung innerhalb der Cloud.

Die andere Möglichkeit wäre eine Verbindung von außerhalb, also über das Internet.
Damit nun nicht jeder darauf zugreifen kann, ist dem SQL Azure Server eine SQL Azure Firewall vorgeschalten. Diese Firewall prüft die Adresse des Consumers, vergleicht diese mit der hinterlegten Liste von erlaubten Adressen und erlaubt bzw. verbietet daraufhin den Zugang zu dem SQL Azure Server.

Unter Adressen, versteht man hier die IPv4 Adresse welche man von seinem ISP zugewiesen bekommen hat. Wie man schon erkennen kann, führt dies bei dynamischer IP Vergabe zu einer Menge Arbeit für IT Pros. Tools wie DynDNS werden von der Firewall noch nicht unterstützt.

Die Ausnahme bildet hier die Windows Azure Anwendung, diese darf auf den SQL Azure Server zugreifen wenn die IP Range 0.0.0.0 – 0.0.0.0 in der Firewall eingerichtet ist. Entfernt man die Range 0.0.0.0 – 0.0.0.0, so können Windows Azure Anwendungen nicht mehr auf den SQL Azure Server zugreifen.

Wie konfiguriert man die SQL Azure Firewall?

Hier gibt es im wesentlichen zwei Wege. Der erste Weg führt über das SQL Azure Portal und ist denkbar einfach über eine Liste möglich, deshalb werde ich hier nicht weiter darauf eingehen. Die zweite Möglichkeit funktioniert via T-SQL Script, was das ganze dynamischer und flexibler wirken lässt.

Hier gibt es drei Objekte denen man Beachtung schenken sollte:

sys.firewall_rules: Ist eine Systemsicht die in der master Datenbank zu finden ist und alle gesetzten Firewalleinstellungen auflistet.

sp_set_firewall_rule: Eine Stored Procedure mit welcher Firewall Rules gesetzt werden können.

sp_delete_firewall_rule: Eine Stored Procedure mit welcher Firewall Rules gelöscht werden können.

Beispielscript:

— view firewall settings
SELECT
    id, name, start_ip_address,
    end_ip_address, create_date,
    modify_date
FROM sys.firewall_rules
GO

— create or update firewall setting for IP 192.168.0.1
EXEC sp_set_firewall_rule N’Test‘, ‚192.168.0.1‘, ‚192.168.0.1’
GO

— Remove example firewall setting
EXEC sp_delete_firewall_rule N’Test‘
GO

Written by Robert Meyer

Januar 4, 2010 at 14:04

Veröffentlicht in SQL Azure

Tagged with , , , ,

SQL Azure: AdventureWorks Sample verfügbar

with one comment

Da ich mich gerade vertieft mit Windows Azure und im speziellen mit SQL Azure arbeite, freut mich folgende News ganz besonders. Bisher war es leider so das man sich selbst DB-Szenarien zusammenbauen musste um mit SQL Azure zu arbeiten. Die normale AdventureWorks von Microsoft wurde leider nicht unterstützt, da einige Features die AdventureWorks nutzt leider nicht unter SQL Azure zur Verfügung stehen.

Nun ist es endlich soweit und es gibt eine AdventureWorks Datenbank welche auch für SQL Azure funktioniert. Zu finden ist das ganz auf CodePlex. Es steht die normale AdventureWorks wie auch die Light (LT) und die Datawarehouse Datenbank (DW) für SQL Azure zur Verfügung.

Alternativ kann ich für SQL Azure zum Testen noch die Chinook Datenbank empfehlen, welche ebenfalls auf CodePlex zu finden ist und wesentlich übersichtlicher als die AdventureWorks daherkommt.

Anbei eine kurze Übersicht über Chinook:

ChinookDatabaseSchema1_1

Written by Robert Meyer

Dezember 16, 2009 at 10:38

Veröffentlicht in SQL Azure

Tagged with , , ,