none
AlwaysOn Database im Zusammenspiel mit SSIS und Replikation RRS feed

  • Frage

  • Hallo,

    kurze Designfrage:

    Datenbank Server im Backend mit 2012 R2 Enterprise mit Always On. Davor sollen je 2 Server für SSIS und 2 x Replikation.

    Verteilung auf ca. 300 abgesetzte Datenbanken mit SQL 2012 R2 Express (wenn möglich - im Test ok).

    Kann ich die Last auf die SSIS und Replikations Server verteilen oder müssen die externen DBs hart zugewiesen werden ? Also 150 DB auf den einen SSIS und die anderen auf den anderen Server ?) Die Verfügbarkeit soll hoch sein...

    Das Systemhaus meint, das ginge nicht....

    Danke.


    Viele Grüße Alexander Kromat MCSE, MCPS, MCSA MCSAM, MCNPS, MCITP, MCTS, Feuerwehrmann

    Samstag, 21. Februar 2015 11:01

Antworten

  • ...Am POS laufen Datenbankem, die per Replikation Stammdaten und Business-Logic Daten erhalten. Die Umsätze werden per SSIS abgeholt.

    Navision 2012R2 ist Basis. Und die Haupt-DB ist halt Always-On.

    Ich möchte die Plattform Hochvervügbar machen, wenn ein SSIS oder Replikations Server weg ist, sollte alles weiter laufen können.

    Je 2 Server sollen die Kommunikation nach extern übernehmen, aber eine Lastverteilung soll stattfinden.

    ...

    Hallo

    was genau ist denn mit AlwaysOn gemeint? Da gibt es ja 2 Möglichkeiten: Als Geclusterte Instanz, oder eine Verfügbarkeitsgruppe/Availability Group für einzelne Datenbanken.

    Da dort von der "HauptDB" die Rede ist, gehe ich von letzterem aus, würde aber gern sichergehen.

    Ganz am Anfang stand auch noch etwas von 150 Datenbanken jeweils hier und da. Um welche Datenbanken geht es da? Um die Navision-DB offenbar nicht, oder doch?

    Wenn ich es richtig verstehe, gibt es zu diesem Hochverfügbar gemachten Datenbankserver noch 4 weitere Server. 2 Server die (in diesen ersten Server?) Daten per SSIS exportieren/importieren, und 2 Server, die (in diesen Server?) Daten mittels Replikation replizieren.

    Ein "SSIS-Server" führt eigentlich ja nur Pakete aus, ist also am ehesten mit einem Applikationsserver vergleichbar. Load-Balancing für SSIS ist daher möglich, aber nicht out of the box sondern man muss es selber einrichten. Dazu gehört entsprechendes Paket-Design als auch SQL Agent Jobs.

    Replikation ist ein ganz anderes Thema. Dort kommt es zunächst auf die Replikationsform an, die für mich hier noch nicht klar ist. Wenn man noch die Wahl hat, würde es mittels Transaktionsreplikation auf der alle Seiten Schreiben dürfen prinzipiell funktionieren, erfordert aber auch entsprechende Applikationslogik, die damit umgehen kann.

    Das Thema Load Balancing und einer dafür abgestimmten Architektur ist wirklich ein weites Feld an Möglichkeiten, gespickt mit Einschränkungen im Detail.

    Hier mal ein paar weiterführende Links:

    Load-Balancing Packages on Remote Servers by Using SQL Server Agent

    und ein anderer Ansatz:

    The “Balanced Data Distributor” for SSIS

    zu Load-Balancing mittels Replikation:

    Peer-to-Peer Transactional Replication


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform, MCM, MVP
    www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com

    Donnerstag, 26. Februar 2015 13:52

Alle Antworten

  • Hallo Alexander,

    die Beschreibung ist zu ungenau, zudem mir persönlich auch nicht ganz verständlich, um dazu eine Aussage treffen zu können.

    Was sind "abgesetzte Datenbanken"? Was genau wird wie genau verteilt?

    Auch Replikation hat viele Formen, ganz abgesehen von möglicherweise unterschiedlichen Workloads je Replikat.

    Was heisst "hart zuweisen"?

    Von welcher Last ist hier eigentlich die Rede?

    Ein Diagramm der geplanten Architektur kann sicherlich einige Fragen beantworten. Zusätzlich ist eine Beschreibung samt einiger Kennzahlen der Workload(s) wichtig. Und nicht zuguterletzt spielt natürlich auch die eingesetzte Hardware eine Rolle.

    Ich hoffe die vielen Fragen sind nachvollziehbar, aber alles andere wäre mit einem Münzwurf vergleichbar.

    Möglicherweise geht das über ein Forum-Posting hinaus.


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform, MCM, MVP
    www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com

    Samstag, 21. Februar 2015 13:55
  • Hallo,

    es geht um eine LOB Anwendung. Am POS laufen Datenbankem, die per Replikation Stammdaten und Business-Logic Daten erhalten. Die Umsätze werden per SSIS abgeholt.

    Navision 2012R2 ist Basis. Und die Haupt-DB ist halt Always-On.

    Ich möchte die Plattform Hochvervügbar machen, wenn ein SSIS oder Replikations Server weg ist, sollte alles weiter laufen können.

    Je 2 Server sollen die Kommunikation nach extern übernehmen, aber eine Lastverteilung soll stattfinden.

    Wie Webservices werden wir über einen Loadmaster abbilden. Da gehts einfach.

    Ich hoffe, das macht die Sache besser verständlich.


    Viele Grüße Alexander Kromat MCSE, MCPS, MCSA MCSAM, MCNPS, MCITP, MCTS, Feuerwehrmann

    Sonntag, 22. Februar 2015 14:53
  • ...Am POS laufen Datenbankem, die per Replikation Stammdaten und Business-Logic Daten erhalten. Die Umsätze werden per SSIS abgeholt.

    Navision 2012R2 ist Basis. Und die Haupt-DB ist halt Always-On.

    Ich möchte die Plattform Hochvervügbar machen, wenn ein SSIS oder Replikations Server weg ist, sollte alles weiter laufen können.

    Je 2 Server sollen die Kommunikation nach extern übernehmen, aber eine Lastverteilung soll stattfinden.

    ...

    Hallo

    was genau ist denn mit AlwaysOn gemeint? Da gibt es ja 2 Möglichkeiten: Als Geclusterte Instanz, oder eine Verfügbarkeitsgruppe/Availability Group für einzelne Datenbanken.

    Da dort von der "HauptDB" die Rede ist, gehe ich von letzterem aus, würde aber gern sichergehen.

    Ganz am Anfang stand auch noch etwas von 150 Datenbanken jeweils hier und da. Um welche Datenbanken geht es da? Um die Navision-DB offenbar nicht, oder doch?

    Wenn ich es richtig verstehe, gibt es zu diesem Hochverfügbar gemachten Datenbankserver noch 4 weitere Server. 2 Server die (in diesen ersten Server?) Daten per SSIS exportieren/importieren, und 2 Server, die (in diesen Server?) Daten mittels Replikation replizieren.

    Ein "SSIS-Server" führt eigentlich ja nur Pakete aus, ist also am ehesten mit einem Applikationsserver vergleichbar. Load-Balancing für SSIS ist daher möglich, aber nicht out of the box sondern man muss es selber einrichten. Dazu gehört entsprechendes Paket-Design als auch SQL Agent Jobs.

    Replikation ist ein ganz anderes Thema. Dort kommt es zunächst auf die Replikationsform an, die für mich hier noch nicht klar ist. Wenn man noch die Wahl hat, würde es mittels Transaktionsreplikation auf der alle Seiten Schreiben dürfen prinzipiell funktionieren, erfordert aber auch entsprechende Applikationslogik, die damit umgehen kann.

    Das Thema Load Balancing und einer dafür abgestimmten Architektur ist wirklich ein weites Feld an Möglichkeiten, gespickt mit Einschränkungen im Detail.

    Hier mal ein paar weiterführende Links:

    Load-Balancing Packages on Remote Servers by Using SQL Server Agent

    und ein anderer Ansatz:

    The “Balanced Data Distributor” for SSIS

    zu Load-Balancing mittels Replikation:

    Peer-to-Peer Transactional Replication


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform, MCM, MVP
    www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com

    Donnerstag, 26. Februar 2015 13:52
  • Hallo,

    du hast die Sache schon richtig erfasst. Es ist SQL mit DAG, auf den POS kommen Teile der Navision DB per Transactional-Replikation und Bewegungsdaten per SSIS wieder zurück.

    Und ich habe verstanden, das mein Lösungsansatz nicht funktioniert sondern es eher eine Programm-Logic Sache ist statt mit einen Loadbalancer nach automatischer Verteilung zu suchen.

    Danke für die Ausführungen und die Links.


    Viele Grüße Alexander Kromat MCSE, MCPS, MCSA MCSAM, MCNPS, MCITP, MCTS, Feuerwehrmann

    Donnerstag, 26. Februar 2015 15:02
  • Hallo

    wunderbar. Es freut mich, dass ich etwas Licht ins Dunkel bringen konnte.

    Also prinzipiell funktioniert das. Ich habe das bei Kunden auch schon eingerichtet. Aber man muss es eben wirklich "selber machen". Das heisst angefangen mit dem Design der Gesamtlösung bis zu den entsprechend Konfigurierten-Appservern, die mit 2 Servern umgehen können. (multiple Connection Strings sind die Devise)

    Es gibt auch Softwarelösungen wie zB den NetScaler von Citrix, die man sich ansehen kann. Bedingung ist aber natürlich, dass das backend jeweils gleichartig ist, das der jeweils verwendete Server egal ist.

    http://www.citrix.de/products/netscaler-application-delivery-controller/tech-info.html


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform, MCM, MVP
    www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com

    Donnerstag, 26. Februar 2015 15:24