Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Hängen Sie eine remote gespeicherte Datenbank an

Sie sollten in der Lage sein, eine Datenbank an einen UNC-Pfad anzuhängen (ich würde kein zugeordnetes Laufwerk verwenden - dieses Laufwerk wird für Sie zugeordnet, nicht das SQL Server-Dienstkonto), aber Sie müssen sicherstellen, dass das SQL Server-Dienstkonto gelesen/ Schreibberechtigungen für den Remote-Ordner, und Sie müssen das Trace-Flag 1807 ausführen (Bitte lesen Sie hierzu Brent Ozars Beitrag ).

Verwenden Sie dafür auch nicht die GUI. Nachdem Sie das Trace-Flag gesetzt, den Dienst neu gestartet und die Berechtigungen korrekt konfiguriert haben, verwenden Sie ein neues Abfragefenster und führen Sie den folgenden Befehl aus:

CREATE DATABASE db_name 
ON (Filename = '\\uncpath\share\file.mdf'),
   (Filename = '\\uncpath\share\file.ldf')
FOR ATTACH;

(Die Benutzeroberfläche wird Ihnen niemals einen UNC-Pfad anbieten, unabhängig davon, welche Trace-Flags Sie festgelegt haben oder welche Berechtigungen aktiviert sind.)

Seien Sie natürlich darauf vorbereitet, mit einer beschädigten und möglicherweise nicht wiederherstellbaren Datenbank umzugehen, falls die Netzwerkfreigabe ausfällt.

Wenn das für Sie beängstigend klingt, gut! Es sollte! Das ist überhaupt keine gute Idee. Stattdessen sollten Sie Speicherplatz freigeben, ein Laufwerk hinzufügen oder die Datenbank auf einer anderen Instanz hosten.