首页 > 开发 > 综合 > 正文

SQLSERVER文件组误脱机后如何联机

2024-07-21 02:50:45
字体:
来源:转载
供稿:网友
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 OFFLINEALTER DATABASE TEST SET ONLINE

分离数据库再附加数据库,脱机的文件组也仍然是脱机状态。

---------------------------------------------------------------------------------

其实,把文件恢复就可以了(哪怕没有备份也可以执行):

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(alterdatabasexxsetonline),如果不能online,可以试试先设置为emergency状态

以上方法已经测试过能通过。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表