小编Jul*_*ian的帖子

恢复数据库,不包括 FILESTREAM 数据

上下文
我们正在开发一个底部有一个大型数据库的系统。它是在 SQL Server 2008 R2 上运行的 MS SQL 数据库。数据库的总大小约为 12 GB。

其中,单个表中大约有 8.5 GB BinaryContent。顾名思义,这是一个表,我们将任何类型的简单文件作为 BLOB 直接存储在表中。最近,我们一直在测试使用 FILESTREAM 将所有这些文件从数据库移到文件系统的可能性。

我们对数据库进行了必要的修改,没有任何问题,迁移后我们的系统仍然运行良好。该BinaryContent表大致如下所示:

CREATE TABLE [dbo].[BinaryContent](
    [BinaryContentID] [int] IDENTITY(1,1) NOT NULL,
    [FileName] [varchar](50) NOT NULL,
    [BinaryContentRowGUID] [uniqueidentifier] ROWGUIDCOL  NOT NULL
) ON [PRIMARY] FILESTREAM_ON [FileStreamContentFG]
ALTER TABLE [dbo].[BinaryContent] ADD [FileContentBinary] [varbinary](max) FILESTREAM  NULL
ALTER TABLE [dbo].[BinaryContent] ADD  CONSTRAINT [DFBinaryContentRowGUID]  DEFAULT (newsequentialid()) FOR [BinaryContentRowGUID]
Run Code Online (Sandbox Code Playgroud)

PRIMARY除了FileBinaryContent位于单独文件组中的字段外,所有内容都驻留在文件组中FileStreamContentFG

场景
从开发人员的角度来看,我们通常希望从我们的生产环境中获得一个新的数据库副本,以便能够处理最新的数据。在这些情况下,我们很少对存储在BinaryContent(现在使用 FILESTREAM)。

我们几乎可以按照我们的意愿工作。我们备份数据库,没有像这样的文件流:

BACKUP DATABASE FileStreamDB
FILEGROUP …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008-r2 restore filestream

20
推荐指数
2
解决办法
1万
查看次数