MSSQL编程:sqlserver2005没有log日记文件时恢单数...
Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用SQLServer2005数据库日记文件破坏的情形下怎样恢单数据库呢?上面我们来具体剖析...在某些偶尔的情形下,会引发SQLServer2005数据库日记文件的破坏,好比:硬件妨碍、盘算机非一般重启或关机。
当SQLServer2005数据库日记文件破坏时,大概会呈现以下情形:
1、在SQLServerManagementStudio中显现数据库处于置疑(suspect)形态。
2、事务日记大概会呈现以下毛病信息:
Couldnotredologrecord(21737:686:9),fortransactionID(0:2334886),onpage
(1:37527),databaseTest(databaseID15).Page:LSN=(21735:299:5),type=2.Log:
OpCode=3,context19,PrevPageLSN:(21737:615:1).Restorefromabackupofthe
database,orrepairthedatabase.
DuringredoingofaloggedoperationindatabaseTest,anerroroccurredatlog
recordID(76116:286:2).Typically,thespecificfailureispreviouslyloggedasanerror
intheWindowsEventLogservice.Restorethedatabasefromafullbackup,orrepairthe
database.
3、没法分别数据库
4、用CREATEDATABASEDBNameON(FILENAME=NDBFile)FORATTACH_REBUILD_LOG附加数据库
时呈现提醒:Thelogcannotberebuiltbecausethedatabasewasnotcleanlyshutdown.
恢复办法:
1、中断数据库服务。
2、将必要恢复的数据库文件复制到别的的地位。
3、启动数据库服务。
4、确认要恢复的数据库文件已乐成复制到别的的地位,然后在SQLServerManagementStudio中删
除要恢复的数据库。
5、新建同名的数据库(数据库文件名也要不异)。
6、中断数据库服务。
7、用第2步中备份的.mdf文件掩盖新数据库的同名文件。
8、启动数据库服务。
9、运转alterdatabasedbnamesetemergency,将数据库设置为emergencymode
10、运转上面的命令就能够恢单数据库:
usemaster
declare@databasenamevarchar(255)
set@databasename=要恢复的数据库称号
execsp_dboption@databasename,Nsingle,Ntrue--将方针数据库置为单用户形态
dbcccheckdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcccheckdb(@databasename,REPAIR_REBUILD)
execsp_dboption@databasename,Nsingle,Nfalse--将方针数据库置为多用户形态
下面的办法是经由过程.mdf文件恢单数据库,即便log文件丧失也能够恢复。
由MySQL用来存储数据的文件格式以已经被广泛地测试过,但是总是有外部情况可以导致数据库表被破坏: 一个是把SQL语句写到客户端,可以使用DataSet进行加工; 记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。 SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。 你可以简单地认为适合的就是好,不适合就是不好。 数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。 很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。 Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。 如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
页:
[1]