News zu Microsoft SQL Server

Dbvisit Standby MP v11 – Getestet für SQL Server!

Der Bericht wurde nach­träg­lich um eine Stel­lung­nah­me von ASPICON ergänzt. » Hier findest du den Nachtrag.

Schon seit vielen Jahren nutzen wir bei ASPICON Dbvisit Standby Produkte, um bei unseren Oracle Kunden hoch­ver­füg­ba­re Datenbank-In­fra­struk­tu­ren auf­zu­bau­en und zu betreiben. Nun bietet Dbvisit mit dem Produkt “Standby Mul­ti­Plat­form 11.x” auch ein Angebot für SQL Server In­stal­la­tio­nen und er­mög­licht durch den Mul­ti­Plat­form Ansatz den par­al­le­len Einsatz für Oracle und SQL Server.

Nachdem wir in unserem letzten Beitrag “Dbvisit Standby Mul­ti­plat­form v11 – we are excited” bereits einen ersten, globalen Blick auf das neue Produkt geworfen haben, wollen wir hier etwas tiefer in den Bereich Standby for SQL Server ein­stei­gen. Wir haben dazu die Software im Bereich SQL Server intern getestet und können schon jetzt sagen: 

Es lohnt sich!

Dbvisit Standby MP Logo, Certified SQL Server

Inhaltsverzeichnis 

Einstieg

Zum Einstieg geben wir einen kurzen Überblick zu der Funk­ti­ons­wei­se der “Dbvisit Standby MP”, unserer Test­um­ge­bung sowie den not­wen­di­gen Vor­be­rei­tungs­schrit­ten. Danach schauen wir uns den Einsatz bei SQL Server Da­ten­ban­ken unter Windows und Linux genauer an.

Auf die In­stal­la­ti­on der SQL Server Da­ten­bank­soft­ware gehen wir in diesem Artikel nicht näher ein. Statt­des­sen kon­zen­trie­ren wir uns hier ganz auf die Kon­fi­gu­ra­ti­on von Dbvisit Standby MP.

Funk­ti­ons­wei­se

Im Bereich des SQL Servers basiert der tech­no­lo­gi­sche Ansatz von Dbvisit auf dem Backup und Restore von Tran­sac­tion­log Backups. Im Prinzip funk­tio­niert es wie die schon lange vor­han­de­ne Lösung des Microsoft SQL Server, das Log Shipping.

Im Gegensatz zum Log Shipping gelingt hier er­freu­li­cher­wei­se die Ein­rich­tung deutlich einfacher und schneller. Doch der wohl ent­schei­den­de Vorteil liegt im Handling von Dbvisit Standby MP. Während bei Log Shipping das hin und her switchen durchaus ein wenig her­aus­for­dernd ist, kann man mit Hilfe von Dbvisit Standby MP sowohl einen geplanten Swit­cho­ver, einen au­to­ma­ti­schen Failover sowie auch ein Switch­back machen, wenn die Datenbank wieder auf der ehemals primären Seite betrieben werden soll. Der ganze Prozess kann dazu bequem mit nur wenigen Klicks über eine Web­ober­flä­che ein­ge­rich­tet werden.

Test­um­ge­bung

Für unsere Test­um­ge­bung haben wir folgende Hosts bereitgestellt:

  • 3 x Windows Server 2019 Standard
    • 1 x Host für Control Center
    • 2 x Hosts mit in­stal­lier­tem SQL Server 2019

  • 2 x Oracle En­ter­pri­se Linux 8 (= analog RHEL 8)
    • 2 x Hosts mit in­stal­lier­tem SQL Server 2019 auf Linux

Vor­be­rei­tung

Als Vor­aus­set­zung sind zum einen die oben erwähnten Maschinen vor­zu­be­rei­ten und zum anderen die ent­spre­chen­de Da­ten­bank­soft­ware zu installieren.

Auf den Windows Hosts muss zudem die Firewall angepasst werden. Dabei sind ent­spre­chen­de Ein­gangs­re­geln für folgende Ports zu konfigurieren:

  • Dbvisit Control Center
    • 4433/TCP
    • 5533/TCP

  • SQL Server Host
    • 1433/TCP
    • 5533/TCP
    • 7890/TCP

Die Software haben wir als Test­stel­lung von der Dbvisit Website bezogen (Ziel­platt­form und Version von Standby angegeben)

WICHTIG: Damit alles funk­tio­niert, ist auf Windows Systemen darauf zu achten, dass ent­spre­chen­de Dienst­be­nut­zer in der “Local Security Policy” unter “Local Policies” → “User Rights As­sign­ment” für das Recht “Log on as a service” kon­fi­gu­riert werden.

In­stal­la­ti­on

Control Center unter Windows

Nachdem die Software geladen wurde, kann der Installer für das Control Center auf dem ent­spre­chen­den Host einfach gestartet werden. Der Installer ist aus unserer Sicht recht selbst­er­klä­rend. Hier muss nur darauf geachtet werden, dass eine ent­spre­chen­de Pass­phra­se gesetzt und sich diese an einem sicheren Ort notiert wird. Diese wird im nächsten Schritt ebenfalls für die Agent In­stal­la­tio­nen benötigt.

Agents unter Windows

Die In­stal­la­ti­on der Agents unter Windows gestaltet sich ähnlich einfach wie die In­stal­la­ti­on des Control Centers. Der In­stal­la­ti­ons­wi­zard führt Schritt für Schritt durch den Prozess. Zu beachten sind die Angaben beim FQDN des Control Centers und beim Agent Host (hier kann auch eine IP Adresse angegeben werden). Wie bereits erwähnt, wird an dieser Stelle noch einmal die Pass­phra­se benötigt, welche bereits im Control Center gesetzt wurde.

Nach Abschluss der In­stal­la­ti­on startet der Windows Dienst. Dieser ist in der “services.msc” sichtbar.

Agents unter Linux

Nun schauen wir uns die In­stal­la­ti­on der Agents unter Linux an. Auf den Linux Systemen ist, anders als bei der In­stal­la­ti­on der Agents unter Windows, vor der In­stal­la­ti­on ein Ordner vorzubereiten:

Danach kann der Installer über die Shell aus­ge­führt werden:

Im Anschluss daran müssen, wie auch unter Windows, ein paar Angaben zum Host und zum Control Center gemacht werden.

Nach Abschluss der be­schrie­be­nen Schritte sollte auch dieser Host im Control Center angezeigt werden.

SQL Server Da­ten­ban­ken unter Windows

An dieser Stelle schauen wir uns zuerst die Kon­fi­gu­ra­ti­on und das Verhalten von SQL Server Da­ten­ban­ken unter Windows an.

Zum Testen haben wir hierfür zunächst einige leere Da­ten­ban­ken angelegt. Um über­prü­fen zu können, ob etwaige Än­de­run­gen auch or­dent­lich auf die zweite Seite über­spielt werden, haben wir für die Re­pli­zie­rung zu­sätz­lich noch eine Datenbank mit ver­än­der­ba­ren Inhalten hin­zu­ge­fügt. Diese Datenbank haben wir mit dem Open­So­ur­ce Tool HammerDB erstellt.

Wichtig ist, dass alle Da­ten­ban­ken im voll­stän­di­gen Wie­der­her­stel­lungs­mo­dell betrieben werden. Wenn der Dbvisit Agent korrekt in­stal­liert wurde und alle Firewall-Regeln richtig ein­ge­stellt sind, wird dieser umgehend im Control Center angezeigt.

Neue Datenbank aufnehmen

Um eine neue Datenbank für die Ver­füg­bar­keit zu kon­fi­gu­rie­ren, können im Dashboard unter “New Con­fi­gu­ra­ti­on” eine oder mehrere Da­ten­ban­ken von einer Instanz aus­ge­wählt werden.

Ist die Ziel­in­stanz aus­ge­wählt und werden alle Vor­aus­set­zun­gen erfüllt, kann die Ver­füg­bar­keit initiiert werden.

Nachdem die Kon­fi­gu­ra­ti­on angelegt wurde, ist diese im Dashboard sichtbar. Hier kann jetzt das Disaster Recovery initiiert werden.

Im sich danach öffnenden Dialog können noch einmal alle Parameter für die Syn­chro­ni­sie­rung überprüft werden.

Ins­be­son­de­re die Pfade für die Back­up­da­tei­en auf beiden Hosts, sowie die Ab­la­ge­or­te der Da­ten­bank­da­tei­en auf der Ziel­in­stanz können hier noch einmal angepasst werden. Wenn alles korrekt ein­ge­stellt ist, kann der Vorgang über den Button “Start” ein­ge­lei­tet werden.

An­schlie­ßend wird von den Dbvisit Agents ein voll­stän­di­ges Backup der Datenbank auf der Quell­in­stanz erstellt und danach auf der Ziel­in­stanz wie­der­her­ge­stellt. Die Wie­der­her­stel­lung belässt die Datenbank im RECOVERY Modus, so dass an­schlie­ßend Trans­ak­ti­ons­log Backups ein­ge­spielt werden. Je nachdem was für ein Intervall ein­ge­stellt wurde, werden ab jetzt re­gel­mä­ßig Trans­ak­ti­ons­log Backups auf der Quell­da­ten­bank erstellt und in der Ziel­da­ten­bank ein­ge­spielt. Der vor­ein­ge­stell­te Stan­dard­wert beträgt 300 Sekunden, also 5 Minuten. Er kann aber in­di­vi­du­ell angepasst werden.

Je nachdem wie groß nun die Datenbank ist, kann dieser Vorgang einige Minuten be­an­spru­chen. Danach ist die Datenbank auf der Ziel­in­stanz - wie hier zu sehen – im Restoring Modus. Das ist der finale Stand. Über die Zeit­an­ga­be (in unserem Beispiel “18 seconds”) kann man erkennen, wie lang die letzte Syn­chro­ni­sie­rung her ist. Das sollte nicht länger als die kon­fi­gu­rier­ten 300 Sekunden, bzw. die in­di­vi­du­ell gewählte In­ter­vall­zeit sein.

(Graceful) Swit­cho­ver

Ein Swit­cho­ver kann hier ver­gleichs­wei­se einfach über das Dashboard initiiert werden. 

Über den “Actions” Button der je­wei­li­gen Datenbank können ver­schie­de­ne Aktionen aus­ge­wählt werden, so auch ein “Graceful Switchover”.

Mit dem Drücken des “Start” Buttons wird nun der Swit­cho­ver Vorgang in­itia­li­siert. Nach Abschluss des Vorgangs ist die Datenbank auf der ehe­ma­li­gen Standby-Instanz als Primary aktiv und die Datenbank auf der ehe­ma­li­gen primären Instanz läuft jetzt als Standby im Recovery Modus. Das Ein­spie­len der re­gel­mä­ßi­gen Trans­ak­ti­ons­log Backups erfolgt nun in ge­gen­ge­setz­ter Richtung, also auf der neuen Standby Instanz.

Hier sehen wir im Grunde auch den größten Vorteil von Dbvisit Standby:

Im Gegensatz zum nativen Log Shipping vom Microsoft SQL Server, wird mit Dbvisit Standby direkt die Richtung der Syn­chro­ni­sie­rung umgekehrt, sodass eine Ver­füg­bar­keit weiterhin ge­währ­leis­tet wird. Mit der nativen Log Shipping Lösung ist hier einiges an Hand­ar­beit nötig, um diesen Zustand wiederherzustellen.

Failover

Beim au­to­ma­ti­sier­ten Failover scheiden sich immer wieder die Geister. Während einige im Feh­ler­fall keine Zeit verlieren wollen, möchte eine Vielzahl der Ad­mi­nis­tra­to­ren einen solchen Vorgang lieber kon­trol­liert durch­füh­ren bzw. in­di­vi­du­ell ent­schei­den. Von daher folgt Dbvisit hier eher dem mehr­heit­li­chen Ansatz, dass der Failover in der Stan­dard­ein­stel­lung nicht au­to­ma­tisch durch­ge­führt wird. Das kann aber auf Wunsch ent­spre­chend ein­ge­stellt werden. Zuständig für den Failover ist die “Observer” Kom­po­nen­te von Dbvisit. Diese überwacht die Er­reich­bar­keit der Da­ten­ban­ken und leitet ge­ge­be­nen­falls den Failover ein. Wenn kein au­to­ma­ti­scher Failover ein­ge­stellt ist, kann der “Observer” ent­spre­chen­de Be­nach­rich­ti­gun­gen versenden. Zur Verfügung stehen hier Slack- und E‑Mail No­ti­fi­ca­ti­ons sowie die Aus­füh­rung eines Custom Scripts.

Die Parameter des “Observer” können einzeln ein­ge­stellt werden. Bei­spiels­wei­se kann man so das Check Intervall oder die maximale Anzahl von Versuchen, bevor eine Aktion ein­ge­lei­tet wird, festlegen.

Aus unserer Sicht ist es generell eine sinnvolle Ein­stel­lung, den Failover nicht au­to­ma­tisch geschehen zu lassen, falls keine ent­spre­chen­de Load­ba­lan­cer-Kon­fi­gu­ra­ti­on für die Ap­pli­ka­ti­on im­ple­men­tiert ist.

SQL Server Da­ten­ban­ken unter Linux

Die Kon­fi­gu­ra­ti­on und das Verhalten von SQL Server Da­ten­ban­ken unter Linux gestaltet sich tat­säch­lich größ­ten­teils analog zu den SQL Server Da­ten­ban­ken unter Windows.

Sobald sich die Agents beim Control Center gemeldet haben, können die Da­ten­ban­ken kon­fi­gu­riert werden. Die einzigen Un­ter­schie­de sind die Pfade im Da­tei­sys­tem und, dass eine Anmeldung mit einem SQL Server Login empfohlen ist (wenn keine Kerberos Au­then­ti­fi­zie­rung auf dem SQL Server unter Linux kon­fi­gu­riert ist).

WICHTIG: Dbvisit Standby un­ter­stützt aktuell die Linux Dis­tri­bu­tio­nen Oracle En­ter­pri­se Linux 6–8, Red Hat En­ter­pri­se Linux 6–8 und SUSE Linux En­ter­pri­se Server 11 und 12. Microsoft un­ter­stützt die Dis­tri­bu­tio­nen Red Hat En­ter­pri­se Linux 7.7 – 7.9 und 8.0 – 8.5, SUSE Linux En­ter­pri­se Server 12 und 15 und Ubuntu Linux 16.04, 18.04 und 20.04.

Somit schränkt sich die Auswahl auf RHEL und SUSE Linux ein.

Fazit

Unser Fazit für “Dbvisit Standby MP” fällt eindeutig positiv aus!

Neben dem bereits erwähnten, einfachen Handling und der sauber auf­be­rei­te­ten gra­fi­schen Be­nut­zer­ober­flä­che ist die Lösung im Bereich SQL Server besonders vor­teil­haft, wenn die Da­ten­bank­hosts geo­gra­phisch weit von­ein­an­der entfernt betrieben werden. Dann kann auch auf Basis der SQL Server Standard Lizenz eine bequeme und sichere Disaster Recovery kon­fi­gu­riert werden.

Aber auch wenn die Da­ten­bank­hosts näher zu­sam­men­lie­gen, kann sich der Einsatz von Dbvisit Standby MP lohnen. Bei­spiels­wei­se dann, wenn der Aufwand für Basic Avai­la­bi­li­ty Groups unter der Standard Lizenz nicht betrieben werden soll und die An­for­de­rung an die Syn­chro­ni­sie­rung der Da­ten­ban­ken nicht so hoch ist.

Hier gibt es weitere Posts zum Thema Dbvisit Standby vom Dbvisit Platinum Partner ASPICON. 
icon-arrow_right_medium-violet-blue.svg

Share this article

Facebook 
Twitter 
LinkedIn 
XING 
WhatsApp 
Email