-
删除sqlserver数据库日志和没有日志的数据库恢复办法
一、删除数据库日志文件的方法你曾经有在执行SQL的时候,数据库报事务日志已满,然后执行报错。然后纠结于怎么删除数据库日志,捣鼓半天吗,现在就提供两种删除日志文件的方法,希望能够帮到你!方法一:手工操作1.数据库->右键->属性->选项-恢复模式->由完成切换成简单2.数据库->右键->任务->收缩-文件->由完成切换成简单->文件类型->日志->将文件收缩到方法二:存储过程代替手工操作--日志文件收缩至多少MDECLARE@DBLogSiseASINTSET@DBLogSise=0--查询出数据库对应的日志文件名称DECLARE@strDBNameASNVARCHAR(500)DECLARE@strLogNameASNVARCHAR(500)DECLARE@strSQLASVARCHAR(1000)SELECT@strLogName=B.name,@strDBName=A.nameFROMmaster.sys.databasesASAINNERJOINsys.master_filesASBONA.database_id=...
数据库操作教程 2022-09-23 17:58:43 -
sqlserver日志处理不当造成的隐患详解
事故背景:一大早还在路上,群里陆续有人反馈系统一直报错“Unknownerror258”,后来查询日志发现错误日志第一反应是不是数据库连接不够用了?导致超时?但是通过sql查询当时连接也只有40个左右,于是继续排查问题,发现dbserver机器这段时间磁盘io操作特别的高,很不正常,详见下图发现磁盘io问题,继续查看sqlserver日志,发现原因:“Autogrowoffile‘xxxx_log'indatabase‘xxxx'wascancelledbyuserortimedoutafter3398milliseconds. UseALTERDATABASEtosetasmallerFILEGROWTHvalueforthisfileortoexplicitlysetanewfilesize.”发现这种问题因为log日志文件太大了一直没有压缩过,并且创建数据库的时候默认选择了10%的增量来扩大log增量文件,这样日志文件的10%会越来越大从而产生超时高io操作解决方案:1、定期清理log文件,防止log文件越来越大USE[master]GOALTERDATABASE数据库...
数据库操作教程 2022-09-23 17:58:05 -
SQLServer无日志恢复数据库(2种方法)
SQLServer是一个关系数据库管理系统,应用很广泛,在进行SQLServer数据库操作的过程中难免会出现误删或者别的原因引起的日志损坏,又由于SQLServer数据库中数据的重要性,出现了以上的故障之后就必须对数据库中数据进行恢复。下文就为大家介绍一种恢复数据库日志文件的方法...
数据库操作教程 2022-09-23 17:57:05 -
SqlServer修改数据库文件及日志文件存放位置
--查看当前的存放位置selectdatabase_id,name,physical_nameASCurrentLocation,state_desc,sizefromsys.master_fileswheredatabase_id=db_id(N'数据库名');--修改文件的存放位置下次启动生效--testDb为数据库名,alterdatabase数据库名modifyfile(name=文件名(不包含后缀),filename='文件存储路径');alterdatabase数据库名modifyfile(name=文件名(不包含后缀),filename='文件存储路径');eg...
数据库操作教程 2022-09-23 17:56:21 -
SQLServer无法收缩日志文件的原因分析及解决办法
最近服务器执行收缩日志文件大小的job老是报错我所用的一个批量收缩日志脚本USE[master]GO/******Object:StoredProcedure[dbo].[ShrinkUser_DATABASESLogFile]ScriptDate:01/05/201609:52:39******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERPROC[dbo].[ShrinkUser_DATABASESLogFile]ASBEGINDECLARE@DBNAMENVARCHAR(MAX)DECLARE@SQLNVARCHAR(MAX)--临时表保存数据CREATETABLE#DataBaseServerData(IDINTIDENTITY(1,1),DBNAMENVARCHAR(MAX),Log_Total_MBDECIMAL(18,1)NOTNULL,Log_FREE_SPACE_MBDECIMAL(18,1)NOTNULL)--游标DECLARE@itemCurCURSORSET@itemCur=CURSORFORSELECTnamef...
数据库操作教程 2022-09-23 17:41:41 -
SQLServer恢复模型之批量日志恢复模式
你是否想知道为什么事务日志文件会变得越来越大?事务日志有时候甚至会比你的实际数据库文件还要大,尤其是在应用数据仓库的情况下。为什么会发生这种情况呢?如何控制其大小?数据库恢复模型如何控制事务日志增长?在本系列文章中,我们就将一一给出解答...
数据库操作教程 2022-09-23 17:34:51 -
一次性压缩Sqlserver2005中所有库日志的存储过程
有没有办法更快一点?有没有办法一次性收缩所有数据库?复制代码代码如下:alterdatabase数据库名setrecoverysimplegodbccshrinkdatabase(数据库名)goalterdatabase数据库名setrecoveryfullgo目前也有压缩日志的工具,一个B/S界面形式的操作压缩数据库的...
数据库操作教程 2022-09-23 17:28:52 -
清除SQLSERVER错误日志出现操作系统错误的解决方法
之前在UAT环境搭建的SQLSERVER2008R2数据库一直用得比较正常,但最近发现在Sharepoint中不能进行任何操作了,开始以为是什么配置出了问题(因为一直在研究一些新的应用和集成,需要不断地测试),但后来发现是数据库硬盘没用一点空间了,那么自然是不能存任何数据了,所以最先开始清理一些无用的数据库日志,磁盘空间多了几个G的容量,但是等到第二天情况依然如此,数据库硬盘还是满了,问题依旧存在,后台仔细检查了一下所有数据库的容量(因为最初以为是数据库空间每天增长太快了把硬盘占满了),发现才十几个G的,而硬盘总空间有126G,因此进一步检查了这个磁盘空间,发现才三十多个G,一开始感觉很纳闷,为什么会缺少将近90G呢?后来发现是原来windows账号的关系,之前用的登录账号权限有限,无法获取磁盘的所有空间容量,因此换了管理员的账号登录后,发现原来是SQLSERVER有一个错误日志的容量将近90G,总算找到磁盘满的原因了,下一步就是如何去解决它。一开始听了同事的建议,直接通过文件剪贴的方式把这个SQLSERVER错误日志文件直接移动到另外一个硬盘上,折腾了好几个小时最终以失败告终,说明错...
数据库操作教程 2022-09-23 17:26:42 -
SqlServer数据库提示“tempdb”的日志已满问题解决方案
执行sql语句,中间没有用到临时表提示服务器:消息9002,级别17,状态2,行1数据库'tempdb'的日志已满。请备份该数据库的事务日志以释放一些日志空间...
数据库操作教程 2022-09-23 17:26:27 -
SqlServer中tempdb的日志机制原理解析及示例分享
测试用例我们分别在用户数据库(testpage),tempdb中创建相似对象t1,#t1,并在tempdb中创建创建非临时表,然后执行相应的insert脚本(用以产生日志),并记录执行时间用以比较用以比较说明tempdb”快”Code用户数据库testpageusetestpagegocreatetablet1(idintidentity(1,1)notnull,str1char(8000))declare@tdatetime2=sysutcdatetime()declare@iintset@i=1while(@i<100000)begininsertintot1select@i,'aa'select@i=@i+1endselect[extime]=DATEDIFF(S,@t,sysutcdatetime())tempdbusetempdbgocreatetable#t1(idintnotnull,str1char(8000))declare@tdatetime2=sysutcdatetime()declare@iintset@i=1while(@i<100000)begi...
数据库操作教程 2022-09-23 17:25:50 -
SQLServer日志清空语句(sql2000,sql2005,sql2008)
SQLServer日志清空方法 在查询分析器中顺序执行以下三步,其中databasename为你的数据库文件名sql2000日志清空可以将jb51.ldf文件变得很小,方便备份数据库等,在sqlserver查询分析器中执行即可。复制代码代码如下:DUMPTRANSACTION[jb51]WITHNO_LOGBACKUPLOG[jb51]WITHNO_LOGDBCCSHRINKDATABASE([jb51])1.清空日志:DUMPTRANSACTION[databasename]WITHNO_LOG 2.截断事务日志:BACKUPLOG[databasename]WITHNO_LOG 3.收缩数据库:DBCCSHRINKDATABASE([databasename]) 注:数据库名陈最好加上[]SQLServer数据库日志清理清除sqlserver2005日志有时候当系统运行时间比较长的时候,我们把备份的数据库还原的时候发现,数据库中数据文件和日志文件变的好大,特别是日志文件...
数据库操作教程 2022-09-23 17:23:59 -
MSSQL2005/2008日志压缩清理方法小结
适用于SQLServer2005的方法---------------------------------------------复制代码代码如下:USEDNNameGO1,清理日志复制代码代码如下:BackupLogDNNameWITHno_logGO2,截断事务日志复制代码代码如下:DUMPTRANSACTIONDNNameWITHno_logGO3,收缩两种方式: 1):压缩数据库 DBCCSHRINKDATABASE(库名) GO 2):指定数据文件,可以通过这个语句查询到:select*fromsysfiles 此方式也可以通过操作:右键你要压缩的数据库--所有任务--收缩数据库--收缩文件,分别选择数据和日志的文件要压缩的大小来执行 DBCCSHRINKFILE(文件名) GO4.为了最大化的缩小日志文件(如果是sql7.0,这步只能在查询分析器中进行)下面的示例分离pubs,然后将pubs中的一个文件附加到当前服务器。a.分离EXECsp_detach_db@dbname='库名'b.删除日志LOG文件c.再附加复制代码代码如下:EX...
数据库操作教程 2022-09-23 17:21:23