仓酷云

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

[学习教程] MSSQL网页编程之当SQL Server数据库溃散时怎样恢复

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

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

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

x
mysql的prepare其实是本地PHP客户端模拟的,并没有根据你mysql的设置做字符集的调整。应该交与mysqlserver端做prepare,同时得调用mysql_set_character_set去操作,server才会按照字符集去做转义。server|恢复|数据|数据库任何数据库体系都没法制止溃散的情况,即便你利用了Clustered,双机热备……仍旧没法完整肃除体系中的单点妨碍,况且关于年夜部分用户来讲,没法接受如许高贵的硬件投资。以是,在体系溃散的时分,怎样恢回复有的可贵数据就成为一个极为主要的成绩了。在恢复的时分,最幻想的情形就是你的数据文件和日记文件都无缺无损了,如许只必要sp_attach_db,把数据文件附加到新的数据库上便可,大概在停机的时分把一切数据文件(必定要有master等)都copy到原有路径下也行,不外一样平常不保举如许的做法,sp_attach_db对照好,固然贫苦很多。可是呢,一样平常数据库溃散的时分体系是一定能偶然间把未完成的事件和脏页等写进磁盘的,如许的情形sp_attach_db就会失利。那末,寄希冀于DBA制订了一个优秀的劫难恢复企图吧。依照你的恢复企图,复原最新的完整备份,增量备份大概事件日记备份,然后假如你的举动事件日记还能读得出来的话,祝贺你!你能够复原到溃散前的形态。一样平常的单元都是没有专职的DBA的,假如没有可用的备份,更多是比来一次备份的工夫过于长远而招致不成承受的数据丧失,并且你的举动事件日记也处于不成用的形态,那就是最贫苦的情形了。不幸的很的是,一样平常数据库溃散都是因为存储子体系引发的,而如许的情形是几近不成能有可用的日记用于恢复的。那末就只好试一下这些计划了。固然,是请求最少你的数据文件是存在的,如果数据文件、日记文件和备份都没有了的话,别找我,你能够到楼顶上往唱“神啊,救救我吧”。起首,你能够试一下sp_attach_single_file_db,试着恢复一下你的数据文件,固然能恢复的大概性不年夜,不外假设这个数据库恰好实行了一个checkpoint的话,仍是有大概乐成的。假如你没有好到有摸彩票的手气,最主要的数据库没有像你期盼的那样attach上往,不要泄气,仍是有其余计划的。我们能够试侧重新创建一个log,先把数据库设置为emergencymode,sysdatabases的status为32768就暗示数据库处于此形态。不外体系表是不克不及任意改的,设置一下先UseMasterGosp_configureallowupdates,1reconfigurewithoverrideGo然后updatesysdatabasessetstatus=32768wherename=<db_name>如今,乞求满天神佛的保佑吧,从头创建一个log文件。乐成的时机仍是相称年夜的,体系一样平常城市承认你新创建的日记。假如没有呈报甚么毛病,如今就能够松一口吻了。固然数据是恢复了,但是别觉得事变就算完成了,正在举行的事件一定是丧失了,本来的数据也大概遭到一些破坏。先把SQLServer从头启动一下,然后反省你的数据库吧。先设置成单用户形式,然后做dbccsp_dboption<db_name>,singleuser,trueDBCCCHECKDB(<db_name>)假如没有甚么年夜成绩就能够把数据库形态改归去了,记得别忘了把体系表的修正选项关失落。updatesysdatabasessetstatus=28wherename=<db_name>--固然你的数据库形态大概不是这个,本人改成符合的值吧。也能够用sp_resetstatusgosp_configureallowupdates,0reconfigurewithoverrideGocheckdb的时分大概呈报有一些毛病,这些毛病的数据你大概就只好抛弃了。checkdb有几种修复选项,本人看着用吧,不外最初你大概仍是得用REPAIR_ALLOW_DATA_LOSS,完成一切修复。chekcdb其实不能完成一切的修复,我们必要更进一步的修复,用DBCCCHECKTABLE对每个表做反省吧。表的列表能够用sysobjects内里失掉,把OBJECTPROPERTY是IsTable的全体找出来反省一下吧,如许可以基础上办理成绩了,假如还呈报毛病,试着把数据selectinto到另外一张表反省一下。这些都做完了以后,把一切索引、视图、存储历程、触发器等从头创建一下。DBCCDBREINDEX大概能够帮你一些忙。mysql的原来开发者又开发了MariaDB,MariaDB适合用来替代mysql吗
兰色精灵 该用户已被删除
沙发
发表于 2015-1-19 21:11:54 来自手机 | 只看该作者
sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西
简单生活 该用户已被删除
板凳
发表于 2015-1-26 19:54:10 | 只看该作者
XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
不帅 该用户已被删除
地板
发表于 2015-2-4 20:08:37 | 只看该作者
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
谁可相欹 该用户已被删除
5#
发表于 2015-2-10 05:57:40 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
因胸联盟 该用户已被删除
6#
发表于 2015-2-28 22:06:30 | 只看该作者
习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-10 08:48:07 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
8#
发表于 2015-3-17 06:10:34 | 只看该作者
SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。
莫相离 该用户已被删除
9#
发表于 2015-3-23 23:14:36 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-27 14:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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