Laden...

SQL MDF-Datei auf Netzlaufwerk?

Erstellt von Max1809 vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.647 Views
M
Max1809 Themenstarter:in
67 Beiträge seit 2011
vor 10 Jahren
SQL MDF-Datei auf Netzlaufwerk?

verwendetes Datenbanksystem: <SQL>

Guten Abend zusammen,

wieso ist es eigentlich nicht möglich, dass ich eine SQL Datenbank auf einem Netzlaufwerk erstelle und dann alle Clients darauf zugreifen?

Wieso muss die Datenbank tatsächlich auf einem Server erstellt werden? (wo dann tatsächlich SQL Server als DBMS läuft)

Wie kann ich z.B. folgendes realisieren:

Mein eigener PC soll als eine Art "Server" dienen. Hier läuft SQL Server 2008 und auf der lokalen Platte liegt die Datenbank (.mdf).

Nun habe ich den Speicherort freigegeben und auf dem Notebook als "Netzlaufwerk" hinzugefügt.

Wenn ich nun meine Applikation auf dem Laptop und auf diesen Speicherort laufen lasse (Connectionstring angepasst) kommt folgende Exception:

Die Datei 'z:\app\Database.mdf' befindet sich in einem Netzwerkpfad, der für Datenbankdateien nicht unterstützt wird.
Fehler beim Anfügen einer automatisch benannten Datenbank für die Datei z:\app\Database.mdf. Eine Datenbank mit diesem Namen ist bereits vorhanden, die angegebene Datei kann nicht geöffnet werden, oder sie befindet sich in der UNC-Freigabe.

C
2.121 Beiträge seit 2010
vor 10 Jahren

Auf die Datei wird nicht direkt zugegriffen sondern über den SQL Server (nicht der Rechner ist gemeint sondern der Dienst), der die Zugriffe koordiniert.
Es können nicht zwei Dienste auf die gleiche Datei zugreifen, deswegen macht es auch keinen Sinn die Datei auf einem anderen Rechner zu halten.

3.825 Beiträge seit 2006
vor 10 Jahren

Datenbankdatei auf einem anderen Rechner als der Datenbankserver-Dienst ist eine ganz schlechte Idee, egal welche Datenbank.

Geschwindigkeit und Sicherheit sind dann beides nicht gegeben.

Die Idee eines Datenbankservers ist doch gerade dass nur dieser auf die physikalische Datenbankdatei zugreift und die Clients mit dem Server kommunizieren (Client/Server-Prinzip).

Früher hat man direkt auf Datenbankdateien im Netzwerk zugegriffen (dBase, Foxpro), das ist aber regelmäßig schiefgegangen (korrupte Dateien, Datenverlust).

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

F
10.010 Beiträge seit 2004
vor 10 Jahren

Dir fehlt offensichtlich jeglicher Hintergrund von dem worüber du redest.

Jeder Server ( egal welcher Firma ) ist explizit so ausgelegt das er Daten für andere bereitstellt.
Dabei ist es egal ob das ein File oder DB-Server ist.

Und jeder Hersteller bestimmt was er da wie implementiert.
Bei Datenbankservern geht es um sehr schnelle Bereitstellung und Verwaltung von grossen Datenmengen, wenn man diese Daten über ein Netzwerk anbindet ist schnell schon mal nicht gegeben.
Also macht es keine Sinn das so zu implementieren.

Auch ist die Denke das ein SqlServer eine DB Datei ist falsch ( danke MS für dieses unsägliche "Hilfsmittel" ).

Und natürlich kann der SqlServer die Daten für andere Rechner bereitstellen, dafür ist es doch gedacht.

Binde die DB vernünftig ( ohne AttachDbFile ) an die DB und greife normal drauf zu.

M
Max1809 Themenstarter:in
67 Beiträge seit 2011
vor 10 Jahren

Danke für die Antworten.

Tatsächlich bin ich hier noch bei alten dBase wo man die .dbfs ganz einfach im Netz haben konnte und jeder Client mit einem ADS ausgestattet war.

Ich werde mir jetzt mittels VMWare einen virtuellen SQL Server 2008 aufsetzen und dann damit arbeiten.

Hatte bisher immer nur mit SQL CE oder dBase gearbeitet und von daher fehlt mir hier ein wenig Erfahrung und Wissen.

Danke für die Klarstellungen. 😃

3.825 Beiträge seit 2006
vor 10 Jahren

Diesen text habe ich mal geschrieben (ca. 1990 oder so) :

http://sevenc.quasarshop.de/handbuch/fr280000.htm

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3