2009-08-19 4 views
6

Ich habe eine gespiegelte Datenbank und ich muss einige Änderungen daran vornehmen. Hauptsächlich eine Ansicht und einige gespeicherte Prozeduren hinzufügen. Jetzt weiß ich, dass Sie, wenn Sie Schemaänderungen vornehmen, die Spiegelung und die Spiegeldatenbank entfernen sollen, nehmen Sie die Änderungen am Prinzipal vor, sichern Sie dann den Prinzipal und stellen Sie die Spiegelung wieder her. Ist dies auch bei gespeicherten Prozeduren und Sichten der Fall? Kann ich meine Änderungen nur an den Principal und dann an Failover vornehmen und auch meine Änderungen am Spiegel vornehmen? Was sind die möglichen Probleme und Auswirkungen, wenn man so etwas macht? Es scheint nur eine sehr langweilige Aufgabe zu sein, die wir jedes Mal machen müssen, wenn wir eine kleine Änderung vornehmen wollen, hauptsächlich weil die Datenbank über 10 Gigs hat, so dass es eine Weile dauert, sie zu sichern und wiederherzustellen.Wie mache ich Schemaänderungen an einer gespiegelten Datenbank?

Antwort

11

Wenn Sie spiegeln, sollten Sie in der Lage sein, diese Änderungen auf den Principal anzuwenden, und sie werden auf der gespiegelten Seite angezeigt. Wenn Sie möchten, dass es einen Schemaunterschied zwischen den beiden gibt, können Sie die Spiegelung nicht verwenden. Möchten Sie Schemaänderungen nur auf die gespiegelte Datenbank oder auf beide anwenden? Wenn beide dann nichts besonderes tun müssen.

+0

Es scheint, dass ich sehr falsch informiert wurde :) –

+0

passiert den Besten von uns. ;-) – Anon246

+0

Für einmal ist es so einfach wie du es willst. Das ist die Antwort, nach der ich gesucht habe. – Zapnologica

1

Wir haben Schemaänderungen sowohl auf eine Log-shopping-Datenbank als auch auf eine gespiegelte Datenbank angewendet und mussten keine besonderen Maßnahmen ergreifen.
Einige Formen der Replikation erfordern jedoch spezielle Mesaures.

2

Jetzt weiß ich, dass, wenn Sie Schema Änderungen vornehmen, werden Sie Spiegelung und die Spiegeldatenbank entfernen soll, Ihre Änderungen an den Auftraggeber machen, dann Backup-Wiederherstellung der Haupt- und wiederherstellen Spiegelung

Das ist eigentlich falsch. Die Prinzipal- und Spiegeldatenbank sind tatsächlich eine einzelne Datenbank, die an zwei physischen Orten gespeichert ist. Beliebige und jede Änderung, die im Prinzip auftritt, tritt auch im Spiegel auf. Sie sind buchstäblich immer identisch.

So alle Schemaänderungen, einschließlich Tabellen, Ansichten, Prozeduren, Funktionen, Schemas, Datenbankprinzipale, Assemblys und so weiter usw. auftreten, auf dem Prinzipal und der Spiegelung.

Die einzigen Änderungen, die besondere Aufmerksamkeit erfordern, sind Änderungen, die Zusammenhang zur Datenbank sind aber nicht auftreten, in der Datenbank: Agent-Aufträge (sie in msdb sind), Server-Principals (Anmeldungen), Replikationseinstellungen (sie sind überall in der Datenbank, msdb und distributor