Wie zum vollständigen entfernen Sie filestream und alle angehängten Dateien

Habe ich versucht das FILESTREAM-feature für die MS SQL-Server (2008R2 Data Center) auf einer lokalen Datenbank, zu Experimentieren. Die eigentliche Datenbank ist auf einem server läuft. Ich habe setup die ganze FILESTREAM, mit dieser query:

/* CREATE FILESTREAM AND FILESTREAM TABLE */
USE [master]
GO
ALTER DATABASE SenONew
ADD FILEGROUP [FileStream]
CONTAINS FILESTREAM
GO
ALTER DATABASE SenONew
ADD FILE
(
NAME = 'fsSenONew',
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\SenONew.ndf'
)
TO FILEGROUP [FileStream]
GO

USE [SenONew]
GO
CREATE TABLE Filestore(
    FileID int PRIMARY KEY,
    RowID uniqueidentifier ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWSEQUENTIALID(),
    FileDescr nvarchar(max),
    FileIndex varbinary(max) FILESTREAM NULL)
GO

Und ich war das Experimentieren mit dem hinzufügen von ein paar Dateien dann zu löschen.

Nun, da dieser eigentlich nur ein experiment, ich will auch, um es loszuwerden. Ich bin mit meinem lokalen server, die für die Entwicklung der Datenbank, die verwendet werden auf dem echten server, damit ich ein BackUp auf meinem lokalen server dann wieder, diese auf den realen server, so dass es aktualisiert wird (software ist in der Entwicklung, so dass die Datenbank-Struktur ändert sich viel, wie auch die Daten und ich müssen tun, eine vollständige Wiederherstellung der real server, wo die software getestet werden).

Nach Stunden der Suche konnte ich nichts finden, was auf mein problem.

Ich verstehe, dass ich muss:

  1. Entfernen Sie die Datenbank-Tabelle speichern die FILESTREAM-Informationen
  2. Ich die DATEI löschen müssen, die FILESTREAM -
  3. Entfernen der Dateigruppe

So, ich bin mit dieser Abfrage, um loszuwerden, alles, was ich in den ersten Ort:

/* DROP FILESTREAM TABLE AND FILEGROUP */
USE SenONew
DROP TABLE Filestore
GO

ALTER DATABASE SenONew
REMOVE FILE fsSenONew

ALTER DATABASE SenONew
REMOVE FILEGROUP [FileStream]
GO

Also ich mache alles so wie ich es sollte und es ohne Fehler abgeschlossen als gut. Also, wenn ich meine Dateigruppen, Dateien und mein Speicherort der Datei, die ich sehe, sind Sie alle vollständig entfernt:

Wie zum vollständigen entfernen Sie filestream und alle angehängten Dateien
Wie zum vollständigen entfernen Sie filestream und alle angehängten Dateien
Wie zum vollständigen entfernen Sie filestream und alle angehängten Dateien

Aber wenn ich einen BACKUP meiner lokalen Datenbank (die die gelöschte FILESTREAM -, Datei-Pfad und-Dateigruppe) und versuchen Sie den server wiederherstellen, bekomme ich Fehler.

SQL ein BACKUP zu erstellen:

/* CREATE BACKUP OF DATABASE WITHIN CURRECT CONNECTION */
DECLARE @FileName2 nvarchar(250)
SELECT @FileName2 = (SELECT 'C:\SenO BackUp\' + convert(nvarchar(200),GetDate(),112) + ' SenONew.BAK')
BACKUP DATABASE SenONew TO DISK=@FileName2
GO

Wie zum vollständigen entfernen Sie filestream und alle angehängten Dateien

Führen Sie dann die Wiederherstellung auf dem server:

/* CREATE RESTORE OF DATABASE WITHIN REAL SERVER CONNECTION */
use master
alter database SenONew set offline with rollback immediate;

DECLARE @FileName2 nvarchar(250)
SELECT @FileName2 = (SELECT '' + convert(nvarchar(200),GetDate(),112) + ' SenONew.BAK')
RESTORE DATABASE SenONew
FROM DISK = @FileName2

alter database SenONew set online with rollback immediate;

Bekomme ich die folgende Fehlermeldung:

Wie zum vollständigen entfernen Sie filestream und alle angehängten Dateien

*(Msg-5121, Ebene 16, Status 2, Zeile 7
Der Pfad angegeben "C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\SenONew.ndf" ist kein gültiges Verzeichnis.

Msg 3156, Ebene 16, Status 3, Zeile 7 der Datei 'fsSenONew' kann nicht wiederhergestellt werden 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\SenONew.ndf'. Verwenden Sie WITH MOVE, um zu identifizieren, einen gültigen Speicherort für die Datei.

Msg 3119, Ebene 16, Status 1, Zeile 7 Probleme wurden identifiziert, die Sie beim planen der RESTORE-Anweisung. Vorherige Nachrichten Informationen bieten.

Msg 3013, Ebene 16, Status 1, Zeile 7 RESTORE DATABASE wird fehlerbedingt beendet. )*

Ich gelöscht .ndf FILESTREAM-Standort, warum ist es einem bestimmten Pfad? Auch, warum ist fsSenONew versucht zu wiederherstellen? Ich kann nicht meinen Kopf um ihn herum. Gibt es Wege intern, die muss ich löschen?

Könnte ich schlage vor, dass Backup-und Restore ist nicht der beste Weg der Entwicklung einer Datenbank? Es könnte funktionieren, okay, aber sobald die Datenbank benutzt in der Produktion, es werden nicht mehr werden, ein geeigneter Ansatz (es sei denn, wischte die Produktion von Daten ist okay). Unter dieser Annahme, warum nicht entwickeln, die alternative Vorgehensweise, die Sie später brauchen nun?
Backup-und Restore-scheint zu funktionieren, perfekt für die Zeit. Wie ich bereits erwähnt, die Struktur der Datenbank ändert viel aufgrund seiner Entwicklungsphase. Am Ende des Projektes das fertige Datenbank-Struktur gefüllt werden, die mit den realen Daten der Unternehmen. Erst danach wird die neue software in der Produktion eingesetzt werden, und alle änderungen werden nur auf die echten server.

InformationsquelleAutor TMNuclear | 2014-11-07

Schreibe einen Kommentar