SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:
1 至少有一个误删除之前的数据库完全备份。
2 数据库的恢复模式(Recovery mode)是“完整(Full)”。
针对这两个前提条件,会有三种情况:
情况一、如果这两个前提条件都存在,通过SQL语句只需三步就能恢复(参考文章),无需借助第三方工具。
a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO disk= N'备份文件名' WITH NORECOVERY
b) 恢复一个误删除之前的完全备份:RESTORE DATABASE [数据库名] FROM DISK = N'完全备份文件名' WITH NORECOVERY, REPLACE
c) 将数据库恢复至误删除之前的时间点:RESTORE LOG [数据库] FROM DISK = N'第一步的日志备份文件名' WITH STOPAT = N'误删除之前的时间点' , RECOVERY
情况二、如果第1个前提条件不存在,第2个前提条件存在,需要借助第三方工具。
情况三、如果第2个前提条件不存在,无法恢复。所以,一定要将数据库恢复模式设置为“完整(Full)”。
我现在面临的是第二种情况,需要找第三方工具。
开始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后来找的是SQL Log Rescue,也不支持SQL Server 2008。
接着找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要购买,Demo版并没有数据恢复功能。
最终在officerecoverycom上找到Recovery for SQL Server,虽然也是商业软件,需要购买,但Demo版可以恢复数据,只要数据库文件不超过24Gb。幸好朋友的数据库文件不大,用它完成了误删除数据的恢复。
下面分享一下用Recovery for SQL Server进行恢复的 *** 作步骤:
1 运行Recovery for SQL Server
2 点击菜单中的 File > Recover,选择要恢复的数据库的数据文件(mdf)
3 Next > Next,进入 Recovery Configuration 界面,选择Custom(选择了Custom才可以选择从日志中恢复误删除的数据)。
4 Next 进入 Recovery options 窗口,选中 Search for deleted records,并选择要恢复的数据库的日志文件路径(log file path)。
5 Next 并选择目标文件夹(Destination folder),用于存放恢复过程中生成的SQL语句与bat文件。
6 点击Start,开始恢复 *** 作(在上一步选择的目标文件夹中生成相应的SQL文件与Bat文件),然后,出现 SQL Server Database Creation Utility 窗口。
7 Next,选择被恢复数据存放的目标数据库。
8 Next, 选择 Import availiable data from both database and log files
9 Next, Next, 然后就完成数据的恢复!
*** 作方式一:
·将这两个文件复制到\\用友T1-商贸宝批发零售版\\服务器\\data下。(这些文件存放在\"原软件安装路径\\用友T1-商贸宝批发零售版\\服务器\\data\"下)
·进入windows *** 作系统的开始->程序->Microsoft
SQL
Server->查询分析器中,在d出\"连接到SQL
Server\"窗口中输入密码(此项安装SQL数据库时输入的密码,如当时未输入密码,在此也无需输入),点击\"确认\"后,在出现的可输入的空白窗口处,录入如下内容:
exec
sp_attach_db\'新建的数据库名称\',\'mdf文件在本机的存放路径\',\'ldf文件在本机的存放路径\'
例如:exec
sp_attach_db\'dbname\',\'c:\\用友T1-商贸宝批发零售版\\服务器\\data\\mdf\',\'c:\\用友T1-商贸宝批发零售版\\服务器\\data\\ldf\'
请严格按照此格式进行书写,输入完成后点击窗口工具栏中的绿色三角形按钮或点击键盘按键\"F5\"运行,如现成功提示后,完成此项 *** 作。
·进入windows *** 作系统的开始->程序->Microsoft
SQL
Server->企业管理器,点击控制台根目录下的\"+\"号,直到看到一个名为\"数据库\"文件夹,再次点击\"数据库\"左边的\"+\"号,找到\"master\"数据库,点击master旁边的\"+\"号,找到其下级目录\"表\",点击\"表\"后,在右边的窗口中出现很多数据表文件,找到名为\"sub_list\"的文件,右键单击此项,在d出的菜单中选中\"打开表->返回所有行\",此时出现一个表格,在dbname中输入你的数据库名,在ZTname中输入你的账套名,flgver对应列输入版本信息,然后点击上面工具栏中的感叹号\"!\",退出完成数据恢复 *** 作。
*** 作方式二:
·将这两个文件从\"软件安装路径\\用友T1-商贸宝批发零售版\\服务器\\data\"剪切拷贝到其它目录下。
·进入软件中,创建一个新账套,数据库名称为mdf的文件名相同。例如文件为fzbmdf,则创建的新账套的账套名称可以任意取,但数据库名称必须是fzb,此时在\"软件安装路径\\用友T1-商贸宝批发零售版\\服务器\\data\"会生成两个新文件fzbmdf和fzbldf。
·将原来拷贝到其它路径下的mdf文件和ldf文件拷回到\"软件安装路径\\用友T1-商贸宝批发零售版\\服务器\\data\"覆盖新建账套生成的同名文件,完成数据恢复 *** 作。
注意:客户安装数据库文件为MSDE2000可采用方式二进行处理,但不能采用方式一进行数据恢复。
可以在某个文件夹下,新建一个账套,会产生两个文件,也就是你说的mdf数据文件、ldf日志文件,将数据库的服务停止掉,然后将你这两个文件替换掉新的这个文件,再启动数据库服务,打开软件,这样账套就恢复了;
用友比较麻烦,而金额可以将数据库附加的数据库中,有个注册的功能,就好了,相对来说方便点。
首先请备份T1的数据,备份文件为nsub格式的文件包,然后你重装数据库等,最后再装T1,装完后你建一个新帐套,名字跟以前一样,然后导入备份数据就行了。
建议你重装数据库之前先备份一下数据库,防止数据库恢复失败。
以在某个文件夹下,新建一个账套,会产生两个文件,也就是你说的mdf数据文件、ldf日志文件,将数据库的服务停止掉,然后将你这两个文件替换掉新的这个文件,再启动数据库服务,打开软件,这样账套就恢复了;
以上就是关于SQL数据库怎么还原 用友SQL SERVER恢复数据库误删除数据方法全部的内容,包括:SQL数据库怎么还原 用友SQL SERVER恢复数据库误删除数据方法、用友T1商贸宝只有*.mdf和*.ldf文件时,如何恢复数据 、用友T3只有MDF和LDF文件,怎么恢复帐套数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)