SQL-Serverdatenbank duplizieren und anpassen
Problem/Frage
Grössere Städte arbeiten mit zentralen Datenbanken, die in der Regel über die Software Microsoft SQL-Server erstellt und auf dem physischen Firmenserver abgelegt werden. Der dafür zuständige Netzwerk-Administrator ist dabei für die Wartung, Sicherung und Wiederherstellung der SQL-Datenbank verantwortlich.
Die Wartung einer solchen Systemumgebung umfasst unter anderem folgende Arbeiten:
Update des Betriebsystems Microsoft Server
Update der Software Microsoft SQL-Server
Update der Kanalinspektionssoftware WinCan VX
Wie kann man sicherstellen, dass eine bestehende SQL-Datenbank nach einem Systemupdate immer noch einwandfrei funktioniert?
Lösung/Antwort
Es empfiehlt sich, neben der Originalversion eine Kopie einer solchen SQL-Serverdatenbank zu Testzwecken zu erstellen. Gehen Sie dazu wie nachfolgend beschrieben vor:
Änderung der GUID (Global Unique Identifier):
Die GUID der Datenbank lässt sich am besten durch das nachfolgende Skript anpassen:
…
BEGIN TRANSACTION;
DECLARE @OldGUID UNIQUEIDENTIFIER = 'GUIDDESORIGINALS';
DECLARE @NewGUID UNIQUEIDENTIFIER = NEWID();
-- Constraints deaktivieren
ALTER TABLE dbo.NODE NOCHECK CONSTRAINT FKNODEPROJECT;
ALTER TABLE dbo.SECTION NOCHECK CONSTRAINT FKSECTIONPROJECT;
ALTER TABLE dbo.PROJHIST NOCHECK CONSTRAINT FKPROJHISTPROJECT;
ALTER TABLE dbo.PROJECTPX NOCHECK CONSTRAINT FKPROJECTPXPROJECT;
-- GUID in abhängigen Tabellen ändern
UPDATE dbo.NODE SET OBJProjectFK = @NewGUID WHERE OBJProjectFK = @OldGUID;
UPDATE dbo.SECTION SET OBJProjectFK = @NewGUID WHERE OBJProjectFK = @OldGUID;
UPDATE dbo.PROJHIST SET HProjectFK = @NewGUID WHERE HProjectFK = @OldGUID;
UPDATE dbo.PROJECTPX SET PPXProjectFK = @NewGUID WHERE PPXProjectFK = @OldGUID;
-- GUID in Haupttabelle ändern
UPDATE dbo.PROJECT SET PRJPK = @NewGUID WHERE PRJPK = @OldGUID;
-- Constraints wieder aktivieren
ALTER TABLE dbo.NODE CHECK CONSTRAINT FKNODEPROJECT;
ALTER TABLE dbo.SECTION CHECK CONSTRAINT FKSECTIONPROJECT;
ALTER TABLE dbo.PROJHIST CHECK CONSTRAINT FKPROJHISTPROJECT;
ALTER TABLE dbo.PROJECTPX CHECK CONSTRAINT FKPROJECTPXPROJECT;
COMMIT TRANSACTION;
…
Suche nach der GUID
Die GUID eines SQL-Projekts finden Sie in der Tabelle dbo.PROJECT im Feld PRJ_PK.
Ersetzen Sie im obigen SQL-Skript den Eintrag @OldGUID durch den Wert im Feld dbo.PROJECT.PRJ_K
Anpassung von Projektpfaden und Metadaten
Wählen Sie die Tabelle PROJECT und passen Sie die nachfolgenden Felder an:
Feldname: | Beispielwert: |
|---|---|
PRJ_Key | WinCan_Oeff_Test |
PRJ_Path | D:\erzwincanmedia\Oeff_Kanal\WinCan_Oeff_Test |
PRJ_MetaServerOrPath | WCHWEDOEBWIN11 (SQL-Servername) |
PRJ_MetaService | NULL (SQL-Serverinstanz = Standard) |
Zugriff auf SQL-Datenbank von WinCanVX aus
Starten Sie WinCan und erstellen Sie ein neues Projekt, basierend auf der SQL-Serverdatenbank:
Die Ordnerstruktur des Projekts wird im Hintergrund automatisch erstellt.
Der Unterordner \DB ist dabei immer leer, da keine LOKALE Projektdatenbank benutzt wird, sondern auf eine vorhandene SERVER-Datenbank zugegriffen wird.
Projekt mit Datenbanktyp SQL-Server 20XX erstellen:
1.) Starten Sie WinCan VX und wählen Sie den Befehl Projekte > Projektverwaltung
2.) Klicken Sie auf Vorhandenes Projekt hinzufügen:
3.) Wählen Sie den Datenbanktyp Microsoft SQL-Server (1):
4.) Geben Sie die Verbindungsdaten zum SQL-Server ein:
Servername\Instanz (2)
Benutzername und Passwort (4)
Authentifizierungsmethode: Vertrauenswürde Verbindung SSPI (3)
5.) Testen Sie als letztes die Verbindung über die Schaltfläche Test Connection
6.) Sobald die Verbindung steht, erscheint das Projekt in der Liste:
7.) Klicken Sie auf das Projekt, um die erfassten Haltungen anzuzeigen: