NDF文件丢失或者损坏是否可以成功附加数据库
2013-01-10 09:50
806 查看
曾经看到有人遇到过NDF文件损坏或者丢失想要通过MDF直接附加数据库,但是结果是失败。在网上也Google了一下看到很多人问这个问题,答案是不可以的。
来自MSDN:FORATTACH requires the following:
· Alldata files (MDF and NDF) must be available.
· Ifmultiple log files exist, they must all be available.
Ifa read/write database has a single log file that is currently unavailable, andif the database wasshutdown with no users or open transactions before the attach operation, FORATTACH automatically rebuilds the log file
and updates the primary file. Incontrast, for a read-only database, the log cannot be rebuilt because theprimary file cannot be updated. Therefore, when you attach a read-only databasewhose log is unavailable, you must provide the log files or files in the
FORATTACH clause.
FORATTACH 具有以下要求:
· 所有数据文件(MDF和 NDF)都必须可用。
· 如果存在多个日志文件,这些文件都必须可用。
如果一个可读/写数据库具有一个当前不可用的日志文件,并且进行附加操作前在没有使用用户或打开的事务的情况下关闭了该数据库,那么 FOR ATTACH 会自动重新生成日志文件并更新主文件。相比之下,对于只读数据库,由于主文件不能更新,将不能重新生成日志。因此,如果附加一个日志不可用的只读数据库,必须在 FOR ATTACH 子句中提供日志文件或文件。
还有一个注意事项,很多人遇到Log太大的问题时,网上有人就建议删除Log,然后通过RebuildLog重建,这样就可以马上减少日志的大小。但是这里要有一个前提,数据库要被干净的关闭(没有使用用户或者打开事务)。如果日志文件损坏了,但是里边有Open的事务,也是无法通过RebuildLog成功的。
更多信息参考:CREATEDATABASE:http://msdn.microsoft.com/en-us/library/ms176061(SQL.90).aspx
来自MSDN:FORATTACH requires the following:
· Alldata files (MDF and NDF) must be available.
· Ifmultiple log files exist, they must all be available.
Ifa read/write database has a single log file that is currently unavailable, andif the database wasshutdown with no users or open transactions before the attach operation, FORATTACH automatically rebuilds the log file
and updates the primary file. Incontrast, for a read-only database, the log cannot be rebuilt because theprimary file cannot be updated. Therefore, when you attach a read-only databasewhose log is unavailable, you must provide the log files or files in the
FORATTACH clause.
FORATTACH 具有以下要求:
· 所有数据文件(MDF和 NDF)都必须可用。
· 如果存在多个日志文件,这些文件都必须可用。
如果一个可读/写数据库具有一个当前不可用的日志文件,并且进行附加操作前在没有使用用户或打开的事务的情况下关闭了该数据库,那么 FOR ATTACH 会自动重新生成日志文件并更新主文件。相比之下,对于只读数据库,由于主文件不能更新,将不能重新生成日志。因此,如果附加一个日志不可用的只读数据库,必须在 FOR ATTACH 子句中提供日志文件或文件。
还有一个注意事项,很多人遇到Log太大的问题时,网上有人就建议删除Log,然后通过RebuildLog重建,这样就可以马上减少日志的大小。但是这里要有一个前提,数据库要被干净的关闭(没有使用用户或者打开事务)。如果日志文件损坏了,但是里边有Open的事务,也是无法通过RebuildLog成功的。
更多信息参考:CREATEDATABASE:http://msdn.microsoft.com/en-us/library/ms176061(SQL.90).aspx
相关文章推荐
- NDF文件丢失或者损坏是否可以成功附加数据库
- 丢失或损坏NDF文件如何附加数据库
- 丢失或损坏NDF文件如何附加数据库 推荐
- 丢失或损坏NDF文件如何附加数据库
- 附加数据库的时候,发现丢失.ndf文件,只有mdf和ldf文件。。。杯具
- 控制文件损坏或者丢失的Oracle 10g数据库恢复控制文件一例
- 复制drawable 中的文件(图片或者数据库都可以)到sd卡
- 回滚段表空间中的一个数据文件丢失或者损坏的恢复方法的总结
- 检查一个路径下文件是否存在,如果不存在设置一个定时器,在定时器内每隔一定时间检查一次,直到该文件存在返回成功,或者定时超时返回失败
- 问题8:如何在应用表空间中的数据文件损坏或者丢失的情况下进行恢复?
- 附加数据库对于服务器失败(Microsoft.SqlServer.Smo),无法升级数据库,因为它是只读的,或者具有只读文件
- sql server 2000,Log.LDF文件丢失,附加数据库失败的解决办法[转]
- 用csv导出文件时,每个cell加上双引号后,可以原样输入cell中的内容,不管是否cell中是否包含逗号或者换行,但是如果包含双引号,则换行失效,解决方法如下
- 附加数据库对于服务器失败(Microsoft.SqlServer.Smo),无法升级数据库,因为它是只读的,或者具有只读文件
- 以下文件的损坏或者丢失,Windows无法启动:\windows\system32\config\system
- sql server 2000,Log.LDF文件丢失,附加数据库失败的解决办法
- sql server 2000,Log.LDF文件丢失,附加数据库失败的解决办法
- oracle重做日志文件(REDO)损坏或者丢失的恢复操作
- 图片转成BASE64字符串,然后以JSON的方式传递。当图片大小在1M左右的时候没问题,可以上传。但是当文件大小>1.5M的是否发现图片转BASE64不成功,居然得到的值是NULL
- 硬盘丢失的文件是否可以恢复