mssqlserver恢复ldf文件数据的方法
2023-06-13 09:15:07 时间
我们重要的数据是存放在MDF文件中的,如果LDF文件丢失,MDF文件没有丢失,那么数据也可以还原。如果LDF文件没有丢失,MDF文件丢失,且LDF文件是完整的,也是可以提供一定手段还原数据。
现象描述
我们现在要面对的问题是,针对wtlog_2008_m12这个数据库,只有MDF文件而LDF文件丢失了,SQLServerManagementStudio中也没有这个数据库,附加上也会提示错误。
解决方法
(1)在SQLServerManagementStudio删除状态为RecoveryPending的(即丢失了LDF的)问题数据库(如果有的话,应该是在数据库管理中没有的)
(2)重命名老的MDF文件.比如改为wtlog_2008_m12_bak.mdf
(3)重建一个新的数据库,名字跟丢失的数据库完全一样,比如为wtlog_2008_m12,LDF文件的名字如果为wtlog_2008_m12的话,数据库提示报错,说逻辑名字已存在,但文件怎么也找不到,此处的LDF的文件命名为wtlog_2008_m12_log。注意,新的MDF的位置跟我们老的MDF的文件的位置相同.这里的LDF文件的位置选在你想要存放的最终位置上(这个就是你所要的被恢复的LDF文件了).
(4)关闭SQLServer服务,将新的MDF(wtlog_2008_m12.mdf)重命名掉(比如改为wtlog_2008_m12___.mdf),老的MDF(wtlog_2008_m12_bak.mdf)命名回原来的名字(wtlog_2008_m12.mdf).
(5)开启SQLServer服务,连接数据库,执行下面语句,如果报错的话,请查看是否连接上数据库,或者有其他进程连着数据库。
复制代码代码如下:
现象描述
我们现在要面对的问题是,针对wtlog_2008_m12这个数据库,只有MDF文件而LDF文件丢失了,SQLServerManagementStudio中也没有这个数据库,附加上也会提示错误。
解决方法
(1)在SQLServerManagementStudio删除状态为RecoveryPending的(即丢失了LDF的)问题数据库(如果有的话,应该是在数据库管理中没有的)
(2)重命名老的MDF文件.比如改为wtlog_2008_m12_bak.mdf
(3)重建一个新的数据库,名字跟丢失的数据库完全一样,比如为wtlog_2008_m12,LDF文件的名字如果为wtlog_2008_m12的话,数据库提示报错,说逻辑名字已存在,但文件怎么也找不到,此处的LDF的文件命名为wtlog_2008_m12_log。注意,新的MDF的位置跟我们老的MDF的文件的位置相同.这里的LDF文件的位置选在你想要存放的最终位置上(这个就是你所要的被恢复的LDF文件了).
(4)关闭SQLServer服务,将新的MDF(wtlog_2008_m12.mdf)重命名掉(比如改为wtlog_2008_m12___.mdf),老的MDF(wtlog_2008_m12_bak.mdf)命名回原来的名字(wtlog_2008_m12.mdf).
(5)开启SQLServer服务,连接数据库,执行下面语句,如果报错的话,请查看是否连接上数据库,或者有其他进程连着数据库。
alterdatabasewtlog_2008_m12setemergency
alterdatabasewtlog_2008_m12setsingle_userwithrollbackimmediate
alterdatabasewtlog_2008_m12rebuildlogon(name=wtlog_2008_m12,filename="D:/watcher/database/wtlog_2008_m12.ldf")
alterdatabasewtlog_2008_m12SETMULTI_USERwithrollbackimmediate
(6)此时,mdf和ldf的名字都为wtlog_2008_m12,删除多余的mdf文件即可。
相关文章
- Matlab仿真PID控制(带M文件、simulink截图和参数分析)
- python判断linux中文件是否存在_Python判断文件是否存在的三种方法
- 【说站】火车头采集器文件保存目录详解,文件保存目录如何填写
- TypeScript-tsx文件webstorm无法识别alias配置解决方法
- 【2】Anaconda下:ipython文件的打开方式,Jupyter Notebook中运行.py文件,快速打开ipython文件的方法!
- 阿里云文件上传报413 Request Entity Too Large(请求实体太大)
- 【Android 逆向】Android 逆向基本概念 ( 软件运行时内存结构 | 文件与内存之间的联系 )
- Linux bash:./xxx:无法执行二进制文件报错
- Java实现zip解压缩目录中的所有文件详解编程语言
- ashx文件获取$.ajax()方法发送的数据详解编程语言
- Linux搜索最新文件的方法(linux查找最新的文件)
- 文件Linux快速行读取文件的方法(linux行读取)
- MySQL导出CSV文件的简便方法(mysql导出csv)
- 存储深入浅出:SQLServer文件存储技术(sqlserver 文件)
- Linux查看链接文件:一个方法探索(linux查看链接文件)
- 深入探索DP文件与Oracle的关系(dp 文件 oracle)
- 文件Oracle中快速导入CSV文件的方法(oracle中导入csv)
- 可以获得文件的文件名的asp函数
- 简单的加密css地址防止别人下载你的CSS文件的方法
- SQLserver2008将数据导出到Sql脚本文件的方法
- js播放wav文件(源码)
- 用c获取文件MD5值的实现方法
- c语言程序设计文件操作方法示例(CreateFile和fopen)
- c#实现数据同步的方法(使用文件监控对象filesystemwatcher)
- c#文件下载示例的4种方法分享
- c#文件的I/O基本操作
- php使用fgetcsv读取csv文件出现乱码的解决方法
- php使用fputcsv()函数csv文件读写数据的方法
- C#运用FileInfo类实现拷贝文件的方法
- php递归删除目录与文件的方法
- C#将Sql数据保存到Excel文件中的方法
- *.ashx文件不能访问Session值的解决方法