mssqlserver恢复ldf文件数据的方法

我们重要的数据是存放在MDF文件中的,如果LDF文件丢失,MDF文件没有丢失,那么数据也可以还原。如果LDF文件没有丢失,MDF文件丢失,且LDF文件是完整的,也是可以提供一定手段还原数据。
现象描述
我们现在要面对的问题是,针对wtlog_2008_m12这个数据库,只有MDF文件而LDF文件丢失了,SQL Server Management Studio中也没有这个数据库,附加上也会提示错误。
解决方法
(1)在SQL Server Management Studio删除状态为Recovery Pending的(即丢失了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)关闭SQL Server服务,将新的MDF(wtlog_2008_m12.mdf)重命名掉(比如改为wtlog_2008_m12___.mdf), 老的MDF(wtlog_2008_m12_bak.mdf)命名回原来的名字(wtlog_2008_m12.mdf).
(5)开启SQL Server服务,连接数据库,执行下面语句,如果报错的话,请查看是否连接上数据库,或者有其他进程连着数据库。


代码如下:

alter database wtlog_2008_m12 set emergency
 alter database wtlog_2008_m12 set single_user with rollback immediate
 alter database wtlog_2008_m12 rebuild log on (name=wtlog_2008_m12, filename='D:/watcher/database/wtlog_2008_m12.ldf')
 alter database wtlog_2008_m12 SET MULTI_USER with rollback immediate

(6)此时,mdf和ldf的名字都为wtlog_2008_m12,删除多余的mdf文件即可。

(0)

相关推荐

  • MSSQLSERVER跨服务器连接(远程登录)的示例代码

    MSSQLSERVER跨服务器链接服务器创建方法如下 复制代码 代码如下: --声明变量  Declare @svrname varchar(255),  @dbname varchar(255), @sapassword varchar(255)   --请在执行前,根据实际情况修改下列变量 select @svrname  = '目标服务器名',       @dbname   = '目标数据库',   @sapassword  = 目标数据库密码    if exists ( select

  • 命令行启动mssqlserver服务的方法示例

    最近mssql服务老是开机启动不了,干脆也就不让他启动了,开完机了手动启动吧,由于每次都要用管理工具启动太麻烦,所以还是命令行方便些. 记录如下: 使用"SQLServer命令行"的方式来启动和关闭IIS.SQLServer. 一个批处理文件start.bat,是启动: 复制代码 代码如下: net start mssqlserver net start w3svc 一个是停止stop.bat: 复制代码 代码如下: net stop mssqlserver net stop iisa

  • 图文教程mssqlserver数据库导出到另外一个数据库的方法

    下文通过图文并茂的方式给大家介绍mssqlserver数据库导出到另外一个数据库的方法,具体详情请看下文. 1.准备源数据库,找到想要导出的数据库,右键选择"任务"再选择"导出数据" 2.设置源数据库信息 3.设置目标数据库,导出到的数据库信息  4.设置要复制的数据 这里有两大类,一是直接复制某些表,二是根据sql查询出的指定数据 复制某些表的话选择第一项,之后选择要复制的表,选择之后点击"完成"按钮即可开始复制数据从源数据库到目标数据库 选择

  • 一个查看MSSQLServer数据库空间使用情况的存储过程 SpaceUsed

    运行下面存储过程 然后直接使用 SpaceUsed 就可以查看了. 存储过程代码 程序代码 复制代码 代码如下: Create procedure SpaceUsed as begin declare @id       int                  -- The object id of @objname. declare @type       character(2) -- The object type. declare       @pages       int     

  • mssqlserver恢复ldf文件数据的方法

    我们重要的数据是存放在MDF文件中的,如果LDF文件丢失,MDF文件没有丢失,那么数据也可以还原.如果LDF文件没有丢失,MDF文件丢失,且LDF文件是完整的,也是可以提供一定手段还原数据.现象描述我们现在要面对的问题是,针对wtlog_2008_m12这个数据库,只有MDF文件而LDF文件丢失了,SQL Server Management Studio中也没有这个数据库,附加上也会提示错误.解决方法(1)在SQL Server Management Studio删除状态为Recovery Pe

  • ajax读取properties资源文件数据的方法

    本文实例讲述了ajax读取properties资源文件数据的方法.分享给大家供大家参考.具体实现方法如下: properties资源文件的内容如下: hello=englishww name=english zk emailEmpty=Field cannot be empty! emailInvalid=Invalid email address! js调用ajax处理代码: $.ajax({ type:'POST', dataType:'json', url:'/jeecms/jeecms/

  • C#使用FileStream循环读取大文件数据的方法示例

    本文实例讲述了C#使用FileStream循环读取大文件数据的方法.分享给大家供大家参考,具体如下: 今天学习了FileStream的用法,用来读取文件流,教程上都是读取小文件,一次性读取,但是如果遇到大文件,那么我们就需要循环读取文件. 直接上代码. 引用命名空间 using System.IO; 下面就是循环读取大文件的代码 class Program { static void Main(string[] args) { //循环读取大文本文件 FileStream fsRead; //获

  • JavaScript实现读取与输出XML文件数据的方法示例

    本文实例讲述了JavaScript实现读取与输出XML文件数据的方法.分享给大家供大家参考,具体如下: 一.介绍 通过JavaScript读取XML文档中数据的方法很多. 其根本的思路就是:首先在后台加载XML文档,然后通过JavaScript获取文档中所需的数据,最后应用HTML展示获取的数据. 二.获取XML元素的属性值的应用 下面应用attributes属性和getNamedItem()方法获取一个指定的XML文档中的属性值. 三.代码 首先创建一个XML文档,并且为指定的元素设置属性,程

  • Python读取txt文件数据的方法(用于接口自动化参数化数据)

    小试牛刀: 1.需要python如何读取文件 2.需要python操作list 3.需要使用split()对字符串进行分割 代码运行截图 : 代码(copy) #encoding=utf-8 #1.range中填写的数据 跟txt中行数保持一致 默认按照空格分隔 f_space = open(r"C:\Users\Administrator\Desktop\Space.txt","r") line_space = f_space.readlines() for i

  • 用WebClient.UploadData方法上载文件数据的方法

    假如某网站有个表单,例如(url: http://localhost/login.aspx):  帐号  密码 我们需要在程序中提交数据到这个表单,对于这种表单,我们可以使用 WebClient.UploadData 方法来实现,将所要上传的数据拼成字符即可,程序很简单: string uriString = "http://localhost/login.aspx";  // 创建一个新的 WebClient 实例.  WebClient myWebClient = new WebC

  • C#读取txt文件数据的方法实例

    第一步新建txt文件,写入内容 我是放在D盘下的,数据以逗号隔开的,是英文逗号 第二步读取数据 在需要读取数据的页面,添加代码,就可以了 private void Phone_Load(object sender, EventArgs e) { string ReadLine; string[] array; string Path = @"D:\FrontierApp.TXT"; StreamReader reader = new StreamReader(Path,System.T

  • springboot读取application.yaml文件数据的方法

    本文实例为大家分享了springboot读取application.yaml文件数据的具体代码,供大家参考,具体内容如下 提示:以下是本篇文章正文内容,下面案例可供参考 一.创建并编辑对应的文件 1.application.yaml !!!这里一定要注意,datasource一定不能写成dataSource,因为会和Spring内部的产生冲突 server:   port: 8080 contry: china user:   - name: zhangsan     age: 18   - n

  • 清除SQL Server数据库日志(ldf文件)的方法汇总

    目录 解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!) 解决方案2 -收缩数据库日志文件(最靠谱方案!) 解决方案3 - 采用SQL脚本删除. 清除SQL Server数据库日志(ldf文件)的几种方法 随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理. 解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!) 1. 在SQL管理器分离数据库. 2. 对数据库日志文件进行压缩备份(rar, zip) 3. 直接删除ldf文件. 附加数

  • 解说mysql之binlog日志以及利用binlog日志恢复数据的方法

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废话不多说,下面是梳理的binlog日志操作解说: 一.初步了解binlog MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的. ---

随机推荐