Announcement

Collapse
No announcement yet.

MS SQL 7 Datenaustausch zu Desktop Edition

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MS SQL 7 Datenaustausch zu Desktop Edition

    <br>Hi,...
    <br>
    <br>Datenaustausch zwichen SQLsrv 7 und Desktop Edition ist easy (soll man meinen) aber was ist wenn der Client keine Netzwerkverbindung zum Server hat (dann wird es richtig kompliziert).
    <br>
    <br>Zunächst möchte ich mal eben beschreiben was ich mache um die SQLServer Daten auf einen Desktop Edition Client im netzwerk zu bekommen:
    <br>
    <br>-auf dem Client wird mittels DTS die Struktur der DB erstellt und die Benutzerkonten werden aktualisiert (Datenübertragung wird nicht mit DTS gemacht, da das zu lange dauert)
    <br>
    <br>-Daten werden mittels Push job vom Server aus übermittelt (ist wesentlich schneller als DTS; DTS wird nur verwendet, da der PushJob nicht die DB Struktur erstellen oder aktualisieren kann (ganz zu schweigen von Benutzerberechtigungen))
    <br>
    <br>-Diese beiden Prozesse werden mittels SQLDMO (trusted Connection) vom Client aus gestartet (Access 2000 Frontend)
    <br>
    <br>-Datenaustausch mittels Backup wird nicht gemacht, da in meiner Literatur davon abgeraten wurde den Datenaustausch mittels Backup zu machen (Fakt ist, das die Benutzerberechtigungen nicht korrekt bei einem Backup mit übertragen werden) (Wenn jemand mit dem Backup andere Erfahrungen gemacht hat, dann bitte ich euch mir das mitzuteilen, da der Datenaustausch mittels backup eigentlich der schnellste wäre)
    <br>
    <br>Folgendes möchte ich nun machen:
    <br>der Austausch zwichen Netzwerk und Stand alone Client passiert derzeit über Wechsel Festplatte (die Wechsel-HD ist immer LW D auf allen Wechsel-HD Rechnern). Das heißt ich schiebe die Wechsel-HD in einen Rechner im Netzwerk kopiere alle Daten entweder ins Netzwerk oder auf dei Wechsel-HD und schlendere dann mit der Wechsel-HD zum Stand alone Client schließe die HD an und kann weiter arbeiten. Das ging alles ganz gut mit einer Access MDB als Datenbank Backend aber nun gibt es einen SQL 7 Server.
    <br>
    <br>Meine Idee ist nun folgende:
    <br>Bei der Installation von SQL Desktop Edition wird unterschieden zwichen Programmverzeichnis und Datenverzeichnis. Das Datenverzeichnis installiere ich imme auf Laufwerk D (d.H. auf die Wechsel-HD (angenommen ich habe nur eine Wechsel-HD)). Das heißt ich nehme das Daten Verzeichnis von Rechner1 und zwinge Rechner2 mit diesem Datenverzeichnis zu arbeiten.
    (In dem Datenverzeichnis und dessen Unterverzeichnis habe ich nur Datenbank oder Log- Dateien gefunden. Daher meine Vermutung das das nicht so schlimm ist wenn diese ausgetauscht werden. Das einzige wobei ich eventuell bedenken habe sind die von MS gelieferten DBs (master usw.))
    <br>
    <br>Habe das getestet und es scheint zu laufen (alle meine Datenbanken die ich auf den NetzClient gepusht habe und die BenutzerProfile/Berechtigungen sind vorhanden); es gibt keine Fehlermeldungen/Eventlogeinträge.
    aber gibt es hier vieleicht auch irgend welche geheimen Micrsoft SID's die jetzt nicht mit rüber gekommen sind, die später ein Datenchaos verursachen könnten? Und was ist mit der Master DB Stehen hier spezielle Infos zu dem Original Rechner drin?
    <br>Was haltet ihr von dieser Lösung?
    <br>
    <br>ich danke jetzt schon für jede Antwort
    <br>
    <br>MfG
    <br>
    <br>PS

  • #2
    Hallo,

    in jeder SQL Server 7-Version (auch in der MSDE) ist das Tool <b>OSQL.EXE</b> zu finden. Somit kann man über <b>sp_detach_db</b> eine Datenbank offiziell bei einem SQL-Server abmelden und mit <b>sp_attach_single_file_db</b> an einem anderen offiziell anmelden. Dies ist aus meiner Sicher sicherer als das direkte Kopieren aller Datenbanken, zumal man nur die eigene Datenbank kopieren muss:

    Schritt 1: Datenbank am Rechner 1 abmelden:
    <pre>
    C:\MSSQL7\>osql -Usa -P
    1> EXEC sp_detach_db 'IBImport', 'True'
    2>GO
    Datenbank 'IBImport' erfolgreich detached
    </pre>

    Schritt 2: Datenbank am Rechner 2 anmelden:
    <pre>
    C:\MSSQL7\>osql -Usa -P
    1>EXEC sp_attach_single_file_db @dbname = 'IBImport',
    2> @physname = 'C:\MSSQL7\Data\IBImport.mdf'
    3>GO
    Datenbank 'IBImport' erfolgreich attached
    1>USE IBImport
    2>GO
    1>SELECT COUNT(*) FROM Kunden
    2>GO
    </pre&gt

    Comment


    • #3
      <br>Hi,...
      <br>
      <br>erst einmal danke für den Tipp, habe das getestet funktioniert auch ganz gut aber Benutzernamen werden leider nicht mit übernommen. D. h. das Benutzer/Gruppen die auf dem Server eingestellt wurden, sind nicht im Client-Server vorhanden (in der DB schon aber nicht im Clientserver unter "Sicherheit/Benutzernamen"->Resultat: Anmeldeprobleme).
      <br>
      <br>MfG
      <br>P

      Comment


      • #4
        Hallo,

        während die Systemtabelle <b>sysusers</b> in jeder Datenbank vorhanden ist, verwaltet der SQL Server 7 die Benutzer zusätzlich in der Tabelle <b>syslogins</b> der <b>master</b>-Datenbank. Daher sollten in diesem Fall alle beteiligten SQL Server mindestens einen "gemeinsamen" Benutzer verwenden

        Comment

        Working...
        X