![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() Hallo,
Ich habe eine Anforderung bezüglich Backup einer Sql Server 2005 Datenbank. Mein Programm arbeit mit 2 Datenbanken, welche unter einer Sql Server Instanz laufen. Dies soll so bleiben - Tabellen von einer DB in die andere verschieben ist also keine Option. Ist es nun möglich bzw. wie, dass man ein Backup erstellt, welches quasi eine Transaktion über BEIDE Datenbanken durchführt? Die Daten dieser 2 Datenbanken hängen nämlich zusammen und sind zu einem Zeitpunkt konsistenz. Wenn ich nun ein Backup von DB1 machen würde und im Anschluss ein Backup von DB2 können sich während dem Backup der einen DB die Daten der jeweils anderen Datenbank ändern. Andrerseits ist es auch nicht möglich, das System mal abzuschalten - es muss ständig verfügbar sein. Das sollte ja kein Problem sein, dass man ein Backup macht, währen das System aktiv ist - es wird dann halt vom aktuellen Stand ein Snapshot gemacht - das kann Sql Server 2005 soweit mir bekannt - jedoch weiß ich nicht, wie ich erreichen kann, dass dieser "Transkationsmechanismus" über 2 Datenbanken geht. Weiß das jemand von euch? thx hannes |
![]() |
![]() |
![]() |
#2 |
Jr. Member
![]() Registriert seit: 19.11.2001
Alter: 47
Beiträge: 36
|
![]() Hmm, du wirst wohl keine Enterprise Version vom SQL Server haben, sonst könntest du DB Snaphots andenken.
Sonst fällt mir auf dei schnelle nur ein das du beide DBs in den Single-User Mode schaltest, das Backup ziehst und wieder live nimmst, aber das wird wohl nicht gehn, ausser die DBs sind klein und es ginge schnell. Das ist halt das Problem wenn man Daten die ineinenader konsistent sein müssen auf zwei DBs verteilt. Die DB Konsitenzmechanismen sind dann halt nicht so anwendbar wie gedacht. cheers, Stefan |
![]() |
![]() |
![]() |
#3 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() hallo,
ich sage mal: enterprise version sollte kein problem sein - ICH muss das ja net bazahlen. ![]() Danke für den tipp - ich werd dann mal weiter in richtung "snapshot" suchen. Single User Mode bzw. offline nehmen ist jedenfalls keine option. Das Problem, dass man über mehrere Datenbanken konsistent sein muss ist an und für sich unproblematisch - dafür gibts es ja verteilte transaktionen - das funktioniert auch (mit .net 2.0 noch dazu recht einfach verwendbar) - mir war nur nich klar, wie man diese anforderung bei einem backup gewährleistet, was wohl einfach daran liegt, dass ich sicher kein sql server spezialist bin. ![]() fg hannes |
![]() |
![]() |
![]() |
#4 |
Jr. Member
![]() Registriert seit: 19.11.2001
Alter: 47
Beiträge: 36
|
![]() servus,
ich versteh schon. Die DB Snapshots haben den Vorteil das es sehr schnell geht einen zu erstellen, aber als kleines Goodie am Rande lassen sie dich kein Backup direkt von den Snaphots erstellen. Aber man könnte die Snaphots auf eine Mirror DB spielen, die nachher ReadOnly wird und von dort backupen. Nichts destotrotz hast du noch immer das Problem das du den State syncen musst damit du die Transaktionen auf beiden DBs fertig machst bevor der Snapshot laufen kann. Was mir noch einfällt wär die (aus DB-Sicht nicht so schöne) Variante das wenn du bei deiner App eventunell einen eigenen DB Access Layer hast, das du vielleicht irgendwo einen Punkt hättest der von einer zentralen Stelle die DB zugriffe fährt. Dann könntest du von dort konsistent über beide DBs das Backup starten und dann gleich wieder weitermachen. cheers, Stefan |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|