>  기사  >  데이터 베이스  >  SQLSERVER文件组误脱机后如何联机

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

WBOY
WBOY원래의
2016-06-07 15:44:351544검색

场景:在学习文件组的恢复过程中,通过 ALTER DATABASE TEST MODIFY FILE (NAME = SUBF,OFFLINE) 把文件组给弄脱机了。这时却发现脱机之前忘记备份了。 这时该如何恢复该脱机的文件组呢? 同样的命令没有ONLINE选项: ALTER DATABASE TEST MODIFY FILE (NAME

场景:在学习文件组的恢复过程中,通过

<span>ALTER</span> <span>DATABASE</span> TEST MODIFY <span>FILE</span>(NAME <span>=</span> SUBF,OFFLINE)

把文件组给弄脱机了。这时却发现脱机之前忘记备份了。

这时该如何恢复该脱机的文件组呢?

 

同样的命令没有ONLINE选项:

<span>ALTER</span> <span>DATABASE</span> TEST MODIFY <span>FILE</span>(NAME <span>=</span> SUBF,ONLINE)

消息 155,级别 15,状态 1,第 1 行
'ONLINE' 不是可以识别的 CREATE/ALTER DATABASE 选项。

 

修改数据库脱机,联机后,脱机的文件组还是脱机状态。

<span>ALTER</span> <span>DATABASE</span> TEST <span>SET</span><span> OFFLINE
</span><span>ALTER</span> <span>DATABASE</span> TEST <span>SET</span> ONLINE

 

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

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

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

<span>RESTORE</span> <span>DATABASE</span> TEST <span>FILE</span><span>=</span><span>'</span><span>SUBF</span><span>'</span> <span>WITH</span> 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 状态

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

 

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.