SQL Server-Transaktionsprotokolle in der Cloud

8

Es ist üblich, die Transaktionsprotokolle ( *.ldf) auf einem anderen physischen Festplattensystem als die Datenbankdateien ( *.mdf, *.ndf) abzulegen .

Ist es in einer Cloud-Umgebung für virtuelle Maschinen in Ordnung, die Transaktionsprotokolle auf denselben Laufwerksbuchstaben wie die anderen Datendateien zu setzen? Wie wird dies normalerweise in gängigen Cloud-Umgebungen für virtuelle Maschinen von heute gehandhabt?

ANMERKUNG: SQL Azure wird nicht verwendet. Verwenden einer virtuellen Windows-Maschine mit vollem Zugriff.

Jason Kresowaty
quelle
1
Wenn Sie über Azure sprechen, haben Sie wahrscheinlich keine Kontrolle über die Platzierung von Dateien oder sogar die Sichtbarkeit des zugrunde liegenden Festplattensystems. Trotzdem halte ich es nicht für sehr klug von Microsoft, gegen Best Practices zu verstoßen und Daten und Protokolldateien auf derselben Festplatte abzulegen, insbesondere angesichts des zusätzlichen Schreibaufwands, der mit der Plattform verbunden ist.
Aaron Bertrand
Klarstellung: SQL Azure wird nicht verwendet. Die Verwendung einer vollständigen virtuellen Windows-Maschine, sodass die Platzierung des Transaktionsprotokolls bei mir liegt.
Jason Kresowaty
1
Wenn Sie also über mehrere unabhängige Volumes verfügen, auf die Ihre VM zugreifen kann, warum sollten sich Ihrer Meinung nach die Überlegungen zur Protokollplatzierung für eine virtuelle Maschine von einer physischen Maschine unterscheiden?
Aaron Bertrand
Ich denke, man muss die Empfehlungen des jeweiligen Anbieters kennen, um mit Sicherheit antworten zu können. Ich denke, ich möchte nur einige allgemeine Ideen darüber, was die Leute in dieser Hinsicht tatsächlich mit beliebten Cloud-Anbietern gemacht haben.
Jason Kresowaty
1
Worüber reden wir hier? Eine von Ihnen auf von Ihnen gesteuerter Hardware und Speicher gehostete VM oder eine von einem Cloud-Anbieter wie Azure oder EC2 gehostete VM?
Mark Storey-Smith

Antworten:

4

Bei meinen umfangreichen Tests von Cloud SQL auf Cloud-Servern (genauer gesagt Rackspace Cloud) stellte ich fest, dass die Aufteilung von ldf und mdf auf unterschiedliche Blockspeichervolumes die Leistung erheblich verbesserte. Ich habe eine wirklich heiße Leistung erzielt, indem ich das ldf auf ein SSD-basiertes Blockspeichervolumen und das mdf auf ein Standardblockspeichervolumen gestellt habe.

Letztendlich ist ein Blockspeichervolumen natürlich irgendwo ein gemeinsam genutztes SAN. Der lokale "Instanz" -Speicher befindet sich auf dem Hypervisor. Die Hardwaretopologie Ihrer Cloud-Umgebung bestimmt also, welche Konfiguration am besten funktioniert.

Jonesome stellt Monica wieder her
quelle
2

Hängt von der verwendeten Cloud-Umgebung ab. In der Regel ist es jedoch sinnvoll, sie auf demselben logischen Laufwerk zu speichern. Wenn Sie zusätzliche IOPS benötigen, können Sie über mehrere Volumes streifen und dennoch ein einzelnes Laufwerk präsentieren.

In einer Cloud-Umgebung sind Sie nicht der einzige Verbraucher des Ihnen zugewiesenen Speichers. Sie erhalten ein kleines Stück eines sehr großen Kuchens und als solches sind alle E / A zufälliger Natur. Es ist nichts zu gewinnen, wenn versucht wird, sequentiellen Zugriff (Protokoll) von zufälligem Zugriff (Daten) zu trennen.

Auch aus dem Wiederherstellungswinkel ist nichts zu gewinnen, da Sie nicht darauf bestehen können, dass die beiden Volumes von verschiedenen Arrays zugewiesen werden. Außerdem gibt es tendenziell eine andere Schutzklasse als die Verfügbarkeit von Speicherplatz durch die Big Player. Der Azure-Speicher wird beispielsweise im Rechenzentrum dreifach repliziert, wobei eine zusätzliche Kopie standardmäßig in ein Failover-Rechenzentrum repliziert wird.

Mark Storey-Smith
quelle