SQLSERVER文件组误脱机后如何联机
【问题】SQLSERVER文件组误脱机后如何联机
场景:在学习文件组的恢复过程中,通过
ALTER DATABASE TEST MODIFY FILE(NAME = SUBF,OFFLINE)
把文件组给弄脱机了。这时却发现脱机之前忘记备份了。
这时该如何恢复该脱机的文件组呢?
同样的命令没有ONLINE选项:
ALTER DATABASE TEST MODIFY FILE(NAME = SUBF,ONLINE)
消息 155,级别 15,状态 1,第 1 行
'ONLINE' 不是可以识别的 CREATE/ALTER DATABASE 选项。
修改数据库脱机,联机后,脱机的文件组还是脱机状态。
ALTER DATABASE TEST SET OFFLINE ALTER DATABASE TEST SET ONLINE
分离数据库再附加数据库,脱机的文件组也仍然是脱机状态。
---------------------------------------------------------------------------------
【解决】restore database test file='filegroupname'
其实,把文件恢复就可以了(哪怕没有备份也可以执行):
RESTORE DATABASE TEST FILE='SUBF' WITH RECOVERY
---------------------------------------------------------------------------------
补充另一个由桦仔提供的文件替换大法:
1. 将数据库分离 ( sp_detach_db 'xx')
2. 将数据库的所有文件移个位置
3. 按照原来的文件颁创建一个同名空库
4. 将空库 OFFLINE ( alter database xx set offline )
5. 将步骤2移走的文件移回来,替换掉步骤3创建的空库产生的对应文件
6. 将数据库 online ( alter database xx set online ), 如果不能 online, 可以试试先设置为 emergency 状态
以上方法已经测试过能通过。
分类:
sql server故障处理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2019-05-21 mysql自动生成my.cnf文件
2019-05-21 【烦人的字符集】linux字符集问题,中文乱码
2019-05-21 (4.24)【mysql、sql server】分布式全局唯一ID生成方案
2018-05-21 关于uuid与自增列的选择