-
SQLServer误区30日谈第27天使用BACKUPWITHCHECKSUM可以替代DBCCCheckDB
误区#27:使用BACKUP...WITHCHECKSUM可以替代DBCCCheckDB错误 乍一看,由于BACKUPWITHCHECKSUM会检测所有分配出去的页的校验和的值,这个误区貌似是这么回事,但实际上并不是这么回事,原因如下: 由SQLServer2000或是更早版本升上来的数据库pagechecksums必须开启,在开启后,并不是数据库中所有的页都会被叫上页校验和,当页损坏发生时,IO系统可不会区分损坏的页是有页校验和还是没有校验和的。所以使用BACKUP...WITHCHECKSUM就有可能导致一些损坏页不被发现,造成的后果…… 除此之外,还有一个问题是完整备份的时间间隔相对比较长,假如说一个月,而相对于DBCCCheckDB的最佳实践是一个礼拜,这导致WITHCHECKSUM不能替代CHECKDB...
数据库操作教程 2022-09-23 17:03:22 -
SQLServer误区30日谈第1天正在运行的事务在服务器故障转移后继续执行
误区#1:在服务器故障转移后,正在运行的事务继续执行这当然是错误的!每次故障转移都伴随着某种形式的恢复。但是如果当正在执行的事务没有Commit时,由于服务器或实例崩溃导致连接断开,SQLServer可没有办法在故障转移后的服务器重新建立事务的上下文并继续执行事务-无论你使用的故障转移方式是集群,镜像,日志传送或是SAN复制...
数据库操作教程 2022-09-23 17:01:50 -
SQLServer误区30日谈第3天即时文件初始化特性可以在SQLServer中开启和关闭
本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQLTuesday#11:Misconceptionsabout....EVERYTHING!!,经过我们团队的翻译和整理发布在AgileSharp和博客园上。希望对大家有所帮助...
数据库操作教程 2022-09-23 17:01:25 -
SQLServer误区30日谈第15天CheckPoint只会将已提交的事务写入磁盘
误区#15:CheckPoint只会将已提交的事务写入磁盘错误这个误区是由于太多人对日志和恢复系统缺少全面的了解而存在已久。CheckPoint会将自上次CheckPoint以来所有在内存中改变的页写回磁盘(译者注:也就是脏页),或是在上一个CheckPoint读入内存的脏页写入磁盘...
数据库操作教程 2022-09-23 17:00:27 -
SQLServer误区30日谈第16天数据的损坏和修复
误区#16:多个关于数据的损坏和修复误区坊间流传的很多版本都不正确我已经听过很多关于数据修复可以做什么、不可以做什么、什么会导致数据损坏以及损坏是否可以自行消失。其实我已经针对这类问题写过多篇博文,因此本篇博文可以作为“流言终结者”来做一个总结,希望你能有收获...
数据库操作教程 2022-09-23 17:00:10 -
修复断电等损坏的SQL数据库
如数据库名为:FreeHost首先是设置为单用户模式,然后修复,最后是恢复多用户模式。ALTERDATABASE[FreeHost]SETSINGLE_USERGODBCCCHECKDB('FreeHost',repair_allow_data_loss)WITHTABLOCKGOALTERDATABASE[FreeHost]SETMULTI_USERGO--CHECKDB有3个参数:--REPAIR_ALLOW_DATA_LOSS-- 执行由REPAIR_REBUILD完成的所有修复,包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,以及删除已损坏的文本对象...
数据库操作教程 2022-09-23 16:58:30 -
一些文件未注册导致mssql表文件无法找开的解决方法
通过Regsvr32.exe,然后注册下列DLL:C:ProgramfilesCommonFilesSystemADOMsado15...
数据库操作教程 2022-09-23 16:56:34 -
SqlServer2000删除数据库备份文件
复制代码代码如下:/*************************SqlServer2000如何删除数据库备份**************************/--可以先备份数据库[TestDB]BACKUPDATABASETestDBTODisk='E:数据库备份TestDB_20090829.bak'WITHINIT;go--添加备份数据库的逻辑变量名[testdbbk]sp_addumpdevice'disk','testdbbk','E:数据库备份TestDB_20090829...
数据库操作教程 2022-09-23 16:56:30 -
系统存储过程sp_MSforeachtable和sp_MSforeachdb使用说明
1.简介:作为DBA会经常需要检查所有的数据库或用户表,比如:检查所有数据库的容量;看看指定数据库所有用户表的容量,所有表的记录数...,我们一般处理这样的问题都是用游标分别处理处理,比如:在数据库检索效率非常慢时,我们想检查数据库所有的用户表,我们就必须通过写游标来达到要求;如果我们用sp_MSforeachtable就可以非常方便的达到相同的目的:EXECsp_MSforeachtable@command1="print'?'DBCCCHECKTABLE('?')"系统存储过程sp_MSforeachtable和sp_MSforeachdb,是微软提供的两个不公开的存储过程,从mssql6.5开始。存放在SQLServer的MASTER数据库中...
数据库操作教程 2022-09-23 16:54:56 -
DBCCCHECKIDENT重置数据库标识列从某一数值开始
DBCCCHECKIDENT(N'dbo.Orders',RESEED,0);DBCCCHECKIDENT语法DBCCCHECKIDENT(table_name[,{NORESEED|{RESEED[,new_reseed_value]}}])[WITHNO_INFOMSGS]参数table_name是要对其当前标识值进行检查的表名。指定的表必须包含标识列...
数据库操作教程 2022-09-23 16:54:38 -
数据库清除日志文件(LDF文件过大)
清除日志:复制代码代码如下:DECLARE@LogicalFileNamesysname,@MaxMinutesINT,@NewSizeINTUSEszwzcheck--要操作的数据库名SELECT@LogicalFileName='szwzcheck_Log',--日志文件名@MaxMinutes=10,--Limitontimeallowedtowraplog.@NewSize=20--你想设定的日志文件的大小(M)--Setup/initializeDECLARE@OriginalSizeintSELECT@OriginalSize=sizeFROMsysfilesWHEREname=@LogicalFileNameSELECT'OriginalSizeof'+db_name()+'LOGis'+CONVERT(VARCHAR(30),@OriginalSize)+'8Kpagesor'+CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+'MB'FROMsysfilesWHEREname=@LogicalFileNameCREATETABLE...
数据库操作教程 2022-09-23 16:54:16