로컬 데이터베이스에서 MSSQL (2008R2 Data Center)의 FILESTREAM 기능을 실험 해 보았습니다. 실제 데이터베이스는 서버에서 실행 중입니다. 나는이 쿼리를 사용하여 설치를 전체 FILESTREAM 있습니다filestream 및 모든 첨부 파일을 제거하는 방법
/* 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
을 그리고 난 다음 몇 개의 파일을 추가을 삭제 실험을했다.
이제 실험용으로 만 제작되었으므로 나 역시 제거하고 싶습니다. 실제 서버에서 사용할 데이터베이스 개발을 위해 로컬 서버를 사용하고 있으므로 로컬 서버에 BackUp을 만들고 실제 서버에 복원하여 업데이트됩니다 (소프트웨어는 개발 중이며, 그래서 데이터베이스 구조는 데이터뿐만 아니라 많은 변화를 가져오고 소프트웨어가 테스트되고있는 실제 서버로 전체 복원을 수행해야합니다.
검색 시간이 지나면 내 문제에서 아무 것도 찾을 수 없습니다. 내가
그래서 제거 파일 그룹을 FILESTREAM
- 가 FILESTREAM 정보
- 를 저장하는 데이터베이스 테이블을 제거
은 내가해야한다는 것을 이해 이 쿼리를 사용하여 처음부터 설정 한 모든 것을 제거합니다.
/* DROP FILESTREAM TABLE AND FILEGROUP */ USE SenONew DROP TABLE Filestore GO ALTER DATABASE SenONew REMOVE FILE fsSenONew ALTER DATABASE SenONew REMOVE FILEGROUP [FileStream] GO
내가해야 할 모든 것을 다한다. 그러면 오류없이 완료된다. 그래서 난 내 파일 그룹, 파일 내 파일의 위치를 입력 할 때, 나는 그들이 모두 완전히 제거 참조 :
하지만 (내 로컬 데이터베이스의 백업을 수행 할 때있는 삭제 된 FILESTREAM을 포함 , 파일 경로 및 파일 그룹)와 함께 서버를 복원하려고하면 오류가 발생합니다.
,691 : 나는 다음과 같은 오류가/* 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;
:
/* 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 [email protected] GO
는 그런 다음 서버에 복원 않습니다
SQL 백업을 만들 수 있습니다
* (메시지 5121, 수준 16, 상태 2, 줄 7 "C : \ Program Files \ Microsoft SQL Server \ MSSQL10_50.SQLEXPRESS \ MSSQL \ DATA \ Senonew.ndf"로 지정된 경로가 유효한 디렉터리에 없습니다. .
메시지 1656, 수준 3, 상태 3, 줄 7 파일 'fsSenONew'을 'C : \ Program Files \ Microsoft SQL Server \ MSSQL10_50.SQLEXPRESS \ MSSQL \ DATA \ Senonew.ndf'로 복원 할 수 없습니다. WITH MOVE를 사용하여 파일의 유효한 위치를 식별하십시오.
메시지 3119, 수준 16, 상태 1, 줄 7 문제가 RESTORE 문을 계획하는 동안 확인되었습니다. 이전 메시지는 세부 사항을 제공합니다.
메시지 3013, 수준 16, 상태 1, 줄 7 RESTORE DATABASE가 비정상적으로 종료됩니다.) *
.ndf FILESTREAM 위치를 삭제했습니다. 왜이 경로가 지정된 경로입니까? 또한, fsSenONew가 왜 복원을 시도합니까? 나는 그 주위에 내 머리를 얻을 수 없습니다. 내부적으로 삭제해야 할 경로가 있습니까?
나는 데이터베이스를 개발하는 가장 좋은 방법은되지 않도록 백업을 제안하고 복원 할 수 있음? 이제는 제대로 작동하지만 데이터베이스가 프로덕션에서 * 사용 * 되 자마자 더 이상 실용적인 방법이 아닐 수 있습니다 (프로덕션 데이터를 지우는 것이 괜찮은 경우 제외). 그 가정하에, 나중에 필요하게 될 대체 접근법을 개발하지 않겠습니까? –
백업 및 복원은 당분간 완벽하게 작동하는 것 같습니다. 앞서 언급했듯이 개발 단계로 인해 데이터베이스 구조가 많이 바뀝니다. 프로젝트가 끝날 때 완성 된 데이터베이스 구조는 실제 현재 회사 데이터로 채워질 것입니다. 그 후에야 새로운 소프트웨어가 프로덕션에 사용되며 모든 변경은 실제 서버에서만 수행됩니다. –