仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 798|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL教程之MDF文件在SQL Server数据库中恢复手艺

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:26:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
恢复到之前的某个状态,是需要数据的。这数据可以是a)回滚步骤或者b)操作之前的数据状态原文。server|恢复|数据|数据库先把要恢复的文件置于MSSQL里的DATA文件里,进进MSSQL主数据库服务器后
  1.我们利用默许体例创建一个供恢复利用的数据库(如MHDYF2005)。能够在SQLServer内里创建。
  2.停失落数据库服务器。
  3.将方才天生的数据库的日记文件MHDYF2005_log.ldf删除,用要恢复的数据库mdf(yu1.mdf)文件掩盖方才天生的数据库数据文件MHDYF2005_data.mdf。
  4.启动数据库服务器。(革新以后)此时会看到数据库MHDYF2005的形态为“置疑”。这时候候不要对此数据库举行任何操纵。
  5.设置数据库同意间接操纵体系表。此操纵能够在SQLServerEnterpriseManager内里选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“同意对体系目次间接修正”一项选中。也能够利用以下语句来完成。
usemastergosp_configure‘allowupdates‘,1goreconfigurewithoverridego
  6.设置MHDYF2005为告急修复形式,语句以下:
updatesysdatabasessetstatus=-32768wheredbid=DB_ID(‘MHDYF2005‘)
  此时能够在SQLServerEnterpriseManager内里看到该数据库处于“只读置疑脱机告急形式”能够看到数据库内里的表,可是仅唯一体系表
  7.上面实行真实的恢复操纵,重修数据库日记文件
dbccrebuild_log(‘MHDYF2005‘,‘C:ProgramFilesMicrosoftSQLServerMSSQLDataMHDYF2005_log.ldf‘)
  实行过程当中,假如碰到以下提醒信息:
  服务器:动静5030,级别16,形态1,行1
  未能排它地锁定命据库以实行该操纵。
  DBCC实行终了。假如DBCC输入了毛病信息,请与体系办理员接洽。
  申明您的其他程序正在利用该数据库,假如方才您在F步骤中利用SQLServerEnterpriseManager翻开了MHDYF2005库的体系表,那末加入SQLServerEnterpriseManager就能够了。
  准确实行完成的提醒应当相似于:
  告诫:数据库‘MHDYF2005‘的日记已重修。已得到事件的分歧性。应运转DBCCCHECKDB以考证物理分歧性。将必需重置数据库选项,而且大概必要删除过剩的日记文件。DBCC实行终了。假如DBCC输入了毛病信息,请与体系办理员接洽。
  此时翻开在SQLServerEnterpriseManager内里会看到数据库的形态为“只供DBO利用”。此时能够会见数据库内里的用户表了。
  8.考证数据库分歧性(可省略),语句以下:
dbcccheckdb(‘MHDYF2005‘)
  一样平常实行了局以下:
  CHECKDB发明了0个分派毛病和0个分歧性毛病(在数据库‘MHDYF2005‘中)。
  DBCC实行终了。假如DBCC输入了毛病信息,请与体系办理员接洽。
  9.设置数据库为一般形态,语句以下:
sp_dboption‘MHDYF2005‘,‘dbouseonly‘,‘false‘
  假如没有堕落,那末祝贺,如今就能够一般的利用恢复后的数据库啦。
  10.最初一步,我们要将步骤E中设置的“同意对体系目次间接修正”一项恢复。由于平常间接操纵体系表是一件对照伤害的事变。固然,我们能够在SQLServerEnterpriseManager内里恢复,也能够利用以下语句完成:
sp_configure‘allowupdates‘,0goreconfigurewithoverridego
  一共10步,就如许竣工了。
  全体恢复历程就是如许了,您能恢复了吗?
因此我们的保存数据方法就是:在删除的动作开始之前,把表数据备份起来,然后留一个空表,在空表上执行“删除”操作。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-19 12:20:24 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-26 21:34:01 来自手机 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
精灵巫婆 该用户已被删除
地板
发表于 2015-2-4 21:11:00 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
深爱那片海 该用户已被删除
5#
发表于 2015-2-10 11:11:27 | 只看该作者
大侠们有推荐的书籍和学习方法写下吧。
小女巫 该用户已被删除
6#
发表于 2015-3-1 10:09:00 | 只看该作者
总感觉自己还是不会SQL
飘灵儿 该用户已被删除
7#
发表于 2015-3-10 15:17:07 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
柔情似水 该用户已被删除
8#
发表于 2015-3-17 08:11:43 | 只看该作者
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
山那边是海 该用户已被删除
9#
发表于 2015-3-24 04:06:21 | 只看该作者
也可谈一下你是怎么优化存储过程的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表