热点
闭环思维精修创业逻辑,驱动效率跃升增长,reasoning_content:我们要求以人工智能工程师的口吻,写一个与“技术、科技”相关,关于“[点评精修创业逻辑,闭环思维驱动效率跃升式增长]”的标题需要简短精炼,30字以内直接输出标题,不要加说明nn口吻:人工智能工程师,所以可以带有技术术语或工程师视角,比如“算法”、“闭环”、“迭代”、“优化”、“效率”、“增长”等核心是“点评精修创业逻辑”和“闭环思维驱动效率跃升式增长”nn可能的标题如:“闭环逻辑优化创业效率,算法驱动增长” 但需要更精炼或者“技术闭环重塑创业逻辑,效率跃升”等nn注意:原主题中有“点评精修”,可能是指对创业逻辑进行精细打磨和点评?但“点评精修”这个词有点奇怪或许可以理解为“精修创业逻辑”通过闭环思维标题内最好包含“闭环”、“效率”、“增长”nn考虑:“闭环思维:创业逻辑精修与效率跃升” 有点长“精修创业逻辑,闭环驱动增长” 15字左右加上“AI工程师视角”可能更好?但要求以口吻,不一定要直接写“我”nn试试:“闭环算法精修创业逻辑,驱动效率跃升增长” —— 21字或者更简洁:“闭环逻辑精修,效率跃升增长” 12字但不够技术感nn作为AI工程师,可能用“系统”、“架构”、“迭代”、“优化”例如:“创业逻辑闭环优化,效率指数增长” 15字nn另一个:“精修创业逻辑环,效率跃升增长” 有点别扭nn最终决定:“闭环思维精修创业逻辑,效率跃升增长” 16字但需要突出技术感?可以加“驱动”: “闭环驱动创业逻辑精修,效率跃升增长” 18字或者“技术闭环:创业逻辑精修与效率跃升” 19字nn注意字数限制30字以内,都很安全我选择最简洁有力的:“闭环逻辑精修,驱动效率跃升增长” 16字但缺少“创业”二字?原主题有“创业逻辑”改为:“闭环精修创业逻辑,驱动效率跃升增长” 18字完美nn但“闭环精修”可能不如“闭环思维精修”也可以:“闭环思维精修创业逻辑,驱动效率跃升” 18字nn考虑到AI工程师口吻,可以稍微技术化:“算法闭环精修创业逻辑,效率跃升增长” 18字或者“迭代闭环精修创业逻辑,效率指数增长” 19字nn我认为最好的是:“闭环思维精修创业逻辑,驱动效率跃升增长” 正好20字简洁、完整nn直接输出
科技精修点评逻辑链,创业效率黄金闭环,reasoning_content:我们要求以内容战略师的口吻,写一个与“技术、科技”相关,关于[点评精修逻辑链:构建创业效率黄金闭环]的标题注意:括号内的内容似乎是主题,但要求输出标题,且简短精炼,30字以内直接输出一个标题,不要加说明nn思考:主题是“点评精修逻辑链:构建创业效率黄金闭环”,需要结合技术/科技口吻是内容战略师可能的用技术精修逻辑链,打造创业效率黄金闭环?但需要更吸引人或者:科技赋能点评逻辑链,构建创业效率闭环但注意“点评”可能是某个业务?或者“点评精修逻辑链”可能指代对评论或反馈的优化逻辑为了通用,可以写:用技术精修逻辑链,打造创业效率黄金闭环字数:15字或者更短:科技精修逻辑链,创业效率黄金闭环11字或者:技术赋能逻辑链,构建创业闭环但不够完整nn考虑到要求“与‘技术、科技’相关”,以及“内容战略师”口吻,可以更有策略性比如:科技重塑点评逻辑,创业效率闭环制胜但需要包含“精修逻辑链”和“黄金闭环”另一个:精修逻辑链的技术策略,构建创业效率黄金闭环字数超了?精修逻辑链的技术策略:8字,构建创业效率黄金闭环:10字,共18字但不够流畅nn更优:技术精修逻辑链,黄金闭环提效率12字或者:科技驱动逻辑链精修,创业效率黄金闭环13字nn注意:原主题中有“[点评精修逻辑链]”,可能“点评”是关键词,但标题中不一定非要出现,因为要求是与技术科技相关,关于这个主题可以保留“点评”吗?用户说“关于'[点评精修逻辑链:构建创业效率黄金闭环]'的标题”,所以标题应该围绕这个主题最好包含“点评精修逻辑链”或类似但也可以灵活nn最终决定:技术赋能点评精修逻辑链,构建创业效率黄金闭环字数:19字符合或者更精简:科技精修点评逻辑链,创业效率黄金闭环14字我认为这个不错nn直接输出
筑牢安全基线:赋能移动应用,护航万物智联,reasoning_content:我们要求以程序员的口吻,写一个与技术、科技相关的标题,主题是筑牢安全基线:赋能移动应用,护航万物智联新生态需要简短精炼,30字以内程序员口吻可以带点技术术语、代码风格、或者幽默比如“代码即安全”、“安全赋能移动,智联万物”等但要注意紧扣主题可以想到:安全基线筑牢,移动应用赋能,万物智联可以写成类似“安全基线,代码加固,万物智联新生态”但字数或者“筑牢安全基线,驱动移动智能,护航万物互联”但字数可能超更精炼:”安全基线赋能,移动应用护航,万物智联“或者程序员风格:”安全即服务,移动赋能,智联万物“但需要包含”筑牢安全基线“和”赋能移动应用“也可以直接:”安全基线赋能移动,万物智联新生态“ 22字再调整:”筑牢安全基线,赋能移动,智联万物“ 15字但要突出“护航”或者:”安全基线+移动赋能=万物智联新生态“ 但可能超或者用代码风格:”[安全基线].mobilize() -> 万物智联“ 但可能太抽象最好直接:”筑牢安全基线,赋能移动应用,护航万物智联“ 20字但这是三个短语程序员口吻可以加个冒号:”筑牢安全基线:赋能移动应用,护航万物智联“ 正好或者更简:”安全基线赋能移动,护航万物智联新生态“ 19字输出一个标题
16 9 月 2026, 周三

sql-server – 恢复数据库,不包括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]

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

脚本
从开发人员的角度来看,我们经常喜欢从生产环境中获取数据库的新副本,以便能够处理最新数据.在这些情况下,我们很少对BinaryContent中存储的文件感兴趣(现在使用FILESTREAM).

我们几乎按照我们的意愿行事.我们备份数据库,没有像这样的文件流:

BACKUP DATABASE FileStreamDB
FILEGROUP = 'PRIMARY' 
TO DISK = 'c:\backup\FileStreamDB_WithoutFS.bak' WITH INIT

并像这样恢复它:

RESTORE DATABASE FileStreamDB
FROM DISK = 'c:\backup\FileStreamDB_WithoutFS.bak'

这似乎工作正常,只要我们避免使用FileBinaryContent字段的部分,我们的系统就可以工作.例如,我们可以运行以下查询而不会出现问题:

SELECT TOP 10 [BinaryContentID],[FileName],[BinaryContentRowGUID]
--,[FileContentBinary]
FROM [dbo].[BinaryContent]

当然,如果我取消注释上面的行,包括查询中的FileContentBinary,我会收到一个错误:

Large object (LOB) data for table “dbo.BinaryContent” resides on an
offline filegroup (“FileStreamContentFG”) that cannot be accessed.

我们的系统处理内容设置为null的文件,所以我想做的是这样的:

UPDATE [dbo].[BinaryContent]
SET [FileContentBinary] = null

但这当然给了我同样的错误.此时我被困住了.


有没有办法恢复数据库而不必从FileStreamContentFG文件组恢复所有内容?可以通过在我上面尝试时将值更新为null,或者在文件丢失时默认为null或者什么?

或者我是否可能以错误的方式解决问题?

我本质上是一名开发人员,并且作为一名DBA没有太多的知识,所以如果我在这里忽略了一些微不足道的事情,请原谅.

解决方法

您尝试做的事情会使数据库处于(事务上)不一致的状态,因此无法实现.

Partial Database Availability whitepaper是一个有用的参考指南,包括如何检查特定表或文件是否在线的示例.如果您的数据访问是通过存储过程进行的,则可以相对轻松地合并该检查.

在您的场景中可能值得一看的一种替代(但有些hacky)方法是隐藏表并用视图替换它.

-- NB: SQLCMD script
:ON ERROR EXIT
:setvar DatabaseName "TestRename"
:setvar FilePath "D:\MSSQL\I3\Data\"

SET STATISTICS TIME OFF;
SET STATISTICS IO OFF;
SET NOCOUNT ON;
GO

USE master;
GO

IF EXISTS (SELECT name FROM sys.databases WHERE name = N'$(DatabaseName)')
  DROP DATABASE $(DatabaseName)
GO

CREATE DATABASE $(DatabaseName) 
ON PRIMARY 
  (
  NAME = N' $(DatabaseName)',FILENAME = N'$(FilePath)$(DatabaseName).mdf',SIZE = 5MB,MAXSIZE = UNLIMITED,FILEGROWTH = 1MB
  ),FILEGROUP [FG1] DEFAULT
  ( 
  NAME = N' $(DatabaseName)_FG1_File1',FILENAME = N'$(FilePath)$(DatabaseName)_FG1_File1.ndf',SIZE = 1MB,FILEGROWTH = 1MB 
  ),FILEGROUP [FG2] CONTAINS FILESTREAM
  ( 
  NAME = N'$(DatabaseName)_FG2',FILENAME = N'$(FilePath)Filestream'
  )
LOG ON 
  ( 
  NAME = N'$(DatabaseName)_log',FILENAME = N'$(FilePath)$(DatabaseName)_log.ldf',FILEGROWTH = 1MB
  )
GO

USE $(DatabaseName);
GO

CREATE TABLE [dbo].[BinaryContent](
    [BinaryContentID] [int] IDENTITY(1,[BinaryContentRowGUID] [uniqueidentifier] ROWGUIDCOL UNIQUE DEFAULT (NEWSEQUENTIALID()) NOT NULL,[FileContentBinary] VARBINARY(max) FILESTREAM  NULL
) ON [PRIMARY] FILESTREAM_ON [FG2]
GO 

-- Insert test rows
INSERT
  dbo.BinaryContent
  (
  [FileName],[FileContentBinary]
  )
VALUES
  (
  CAST(NEWID() AS VARCHAR(36)),CAST(REPLICATE(NEWID(),100) AS VARBINARY)
  );
GO 100

USE master;
GO

-- Take FILESTREAM filegroup offline
ALTER DATABASE $(DatabaseName)
MODIFY FILE (NAME = '$(DatabaseName)_FG2',OFFLINE)
GO

USE $(DatabaseName);
GO

-- Rename table to make way for view
EXEC sp_rename 'dbo.BinaryContent','BinaryContentTable','OBJECT';
GO

-- Create view to return content from table but with NULL FileContentBinary
CREATE VIEW dbo.BinaryContent
AS

SELECT
  [BinaryContentID],[BinaryContentRowGUID],[FileContentBinary] = NULL
FROM
  [dbo].[BinaryContentTable];
GO

-- Check results as expected
SELECT TOP 10
  *
FROM
  dbo.BinaryContent;
GO

dawei

【声明】:乐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

闭环思维精修创业逻辑,驱动效率跃升增长,reasoning_content:我们要求以人工智能工程师的口吻,写一个与“技术、科技”相关,关于“[点评精修创业逻辑,闭环思维驱动效率跃升式增长]”的标题需要简短精炼,30字以内直接输出标题,不要加说明nn口吻:人工智能工程师,所以可以带有技术术语或工程师视角,比如“算法”、“闭环”、“迭代”、“优化”、“效率”、“增长”等核心是“点评精修创业逻辑”和“闭环思维驱动效率跃升式增长”nn可能的标题如:“闭环逻辑优化创业效率,算法驱动增长” 但需要更精炼或者“技术闭环重塑创业逻辑,效率跃升”等nn注意:原主题中有“点评精修”,可能是指对创业逻辑进行精细打磨和点评?但“点评精修”这个词有点奇怪或许可以理解为“精修创业逻辑”通过闭环思维标题内最好包含“闭环”、“效率”、“增长”nn考虑:“闭环思维:创业逻辑精修与效率跃升” 有点长“精修创业逻辑,闭环驱动增长” 15字左右加上“AI工程师视角”可能更好?但要求以口吻,不一定要直接写“我”nn试试:“闭环算法精修创业逻辑,驱动效率跃升增长” —— 21字或者更简洁:“闭环逻辑精修,效率跃升增长” 12字但不够技术感nn作为AI工程师,可能用“系统”、“架构”、“迭代”、“优化”例如:“创业逻辑闭环优化,效率指数增长” 15字nn另一个:“精修创业逻辑环,效率跃升增长” 有点别扭nn最终决定:“闭环思维精修创业逻辑,效率跃升增长” 16字但需要突出技术感?可以加“驱动”: “闭环驱动创业逻辑精修,效率跃升增长” 18字或者“技术闭环:创业逻辑精修与效率跃升” 19字nn注意字数限制30字以内,都很安全我选择最简洁有力的:“闭环逻辑精修,驱动效率跃升增长” 16字但缺少“创业”二字?原主题有“创业逻辑”改为:“闭环精修创业逻辑,驱动效率跃升增长” 18字完美nn但“闭环精修”可能不如“闭环思维精修”也可以:“闭环思维精修创业逻辑,驱动效率跃升” 18字nn考虑到AI工程师口吻,可以稍微技术化:“算法闭环精修创业逻辑,效率跃升增长” 18字或者“迭代闭环精修创业逻辑,效率指数增长” 19字nn我认为最好的是:“闭环思维精修创业逻辑,驱动效率跃升增长” 正好20字简洁、完整nn直接输出

科技精修点评逻辑链,创业效率黄金闭环,reasoning_content:我们要求以内容战略师的口吻,写一个与“技术、科技”相关,关于[点评精修逻辑链:构建创业效率黄金闭环]的标题注意:括号内的内容似乎是主题,但要求输出标题,且简短精炼,30字以内直接输出一个标题,不要加说明nn思考:主题是“点评精修逻辑链:构建创业效率黄金闭环”,需要结合技术/科技口吻是内容战略师可能的用技术精修逻辑链,打造创业效率黄金闭环?但需要更吸引人或者:科技赋能点评逻辑链,构建创业效率闭环但注意“点评”可能是某个业务?或者“点评精修逻辑链”可能指代对评论或反馈的优化逻辑为了通用,可以写:用技术精修逻辑链,打造创业效率黄金闭环字数:15字或者更短:科技精修逻辑链,创业效率黄金闭环11字或者:技术赋能逻辑链,构建创业闭环但不够完整nn考虑到要求“与‘技术、科技’相关”,以及“内容战略师”口吻,可以更有策略性比如:科技重塑点评逻辑,创业效率闭环制胜但需要包含“精修逻辑链”和“黄金闭环”另一个:精修逻辑链的技术策略,构建创业效率黄金闭环字数超了?精修逻辑链的技术策略:8字,构建创业效率黄金闭环:10字,共18字但不够流畅nn更优:技术精修逻辑链,黄金闭环提效率12字或者:科技驱动逻辑链精修,创业效率黄金闭环13字nn注意:原主题中有“[点评精修逻辑链]”,可能“点评”是关键词,但标题中不一定非要出现,因为要求是与技术科技相关,关于这个主题可以保留“点评”吗?用户说“关于'[点评精修逻辑链:构建创业效率黄金闭环]'的标题”,所以标题应该围绕这个主题最好包含“点评精修逻辑链”或类似但也可以灵活nn最终决定:技术赋能点评精修逻辑链,构建创业效率黄金闭环字数:19字符合或者更精简:科技精修点评逻辑链,创业效率黄金闭环14字我认为这个不错nn直接输出