经常在论坛里看到有人因为SQLSERVER的安装问题而在论坛里求助,但是他们又没有把错误安装日志发到论坛上
个人感觉这样笼统的把错误在论坛里说很难让攻城师们找到问题的所在
我的机器:Windows7 Ultimate SQLSERVER2005开发者版
查找SQLSERVER安装错误的日志
如果我们能够把把日志贴到论坛上那么问题应该很快就能解决,下面说一下SQLSERVER安装日志存放的地方
我的SQLSERVER安装在C盘:
C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files
大家的路径可能跟我的不一样
这个文件夹下包含了SQLSERVER安装过程中各个模块组件的详细安装日志情况
如果在安装的某个过程中卡住了,那么你可以点击某一个项,SQL就会弹出相应的日志文件,实际上那个日志文件
也是在C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files文件夹里调用的
详细的日志文件里的信息就不分析了,太多了,而且俺自己也不是很专业
只要各位遇到安装问题的时候按照上图的来点击一下,把日志文件调出来,然后发上论坛就可以了
设置SQLSERVER的错误日志数量
大家知道SQLSERVER的错误日志文件数量只有7个,每次重启sql服务就会删除掉时间最早的那一个
我的错误日志文件放在这个路径:C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG
大家可能跟我不一样
一般大家把SQLSERVER放在服务器很少会重启SQL服务或者重启服务器的
但是如果是自己的笔记本电脑呢?天天都会重启 一重启了电脑就相当于重启了SQL服务,然后就会删除最早那个错误日志文件
以下步骤都在SSMS里配置
我把最大错误日志文件数设置为10
然后我重启了SQL服务5次,还保留着10个错误日志,为什麽不是11个呢?因为第一个正在使用的嘛,不算是归档的错误日志
这样当我重启电脑之后也能保存着一定数量的错误日志供自己追查一些SQL的错误,大家可以根据这些错误日志文件的大小跟磁盘的大小
来设置最大错误日志文件数,当然这些错误日志文件不像数据库的数据文件和事务日志文件,不能移动他们的位置的,
只能跟SQL在同一个安装目录下。
好了, 要睡了 某些大侠可能觉得非常皮毛 我也欢迎大家拍砖o(∩_∩)o 因为不拍砖不进步嘛(无兄弟不篮球!!)
本文链接
之前在UAT环境搭建的SQL SERVER 2008 R2数据库一直用得比较正常,但最近发现在Sharepoint中不能进行任何操作了,开始以为是什么配置出了问题(因为一直在研究一些新的应用和集成,需要不断地测试),但后来发现是数据库硬盘没用一点空间了,那么自然是不能存任何数据了,所以最先开始清理一些无用的数据库日志,磁盘空间多了几个G的容量,但是等到第二天情况依然如此,数据库硬盘还是满了,问题依旧存在,后台仔细检查了一下所有数据库的容量(因为最初以为是数据库空间每天增长太快了把硬盘占满了),发现才十几个G的,而硬盘总空间有126G,因此进一步检查了这个磁盘空间,发现才三十多个G,一开始感觉很纳闷,为什么会缺少将近90G呢?后来发现是原来windows账号的关系,之前用的登录账号权限有限,无法获取磁盘的所有空间容量,因此换了管理员的账号登录后,发现原来是SQL SERVER有一个错误日志的容量将近90G,总算找到磁盘满的原因了,下一步就是如何去解决它。
一开始听了同事的建议,直接通过文件剪贴的方式把这个SQL SERVER 错误日志文件直接移动到另外一个硬盘上,折腾了好几个小时最终以失败告终,说明错误日志被系统进程占用着,并不能通过这个暴力方式进行,因此走回正轨,通过SQL SERVER维护命令进行操作,最终成功清除了90G的错误日志文件,具体过程如下:
由于默认情况下,SQL Server 保存 7 个 ErrorLog 文件,名为:
- ErrorLog
- ErrorLog.1
- ErrorLog.2
- ErrorLog.3
- ErrorLog.4
- ErrorLog.5
- ErrorLog.6
--清除 SQL Server 错误日志文件 存档
EXEC sp_cycle_errorlog
GO
执行一次EXEC sp_cycle_errorlog就会产生一个新的errorlog,然后把errorlog.6给删掉。就是先进先出(队列类似的情况)这样循环6次就可以把errorlog都刷新一遍。
当查询窗口中,出现以下错误信息时:
消息 17049,级别 16,状态 1,过程 sp_cycle_errorlog,第 9 行
由于出现操作系统错误 '5(拒绝访问。)',无法将错误日志文件从 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG.5' 循环到 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG.6'。SQL Server 外部的进程可能会阻止 SQL Server 读取这些文件。因此,错误日志条目可能已丢失,并且或许不可能查看某些 SQL Server 错误日志。请确保任何其他进程都未将该文件锁定为只写访问。"
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
手工删除那个90G的错误日志文件即可。
通过本次的经历,适当掌握一些SQL SERVER维护命令在实际工作上也非常有必要的,而且相对于ORACEL数据库,SQL SERVER的维护要相对简单一些。
本文链接
DECLARE @day1 DATETIME
DECLARE @day7temp DATETIME
DECLARE @day7 VARCHAR(100)
SET @day1 = convert(char(10),dateadd(dd, - DATEPART (weekday , getdate())-6,getdate()),120)
SET @day7temp = convert(char(10),dateadd(dd, - DATEPART (weekday , getdate()),getdate()),120)
SET @day7 = CAST(YEAR(@day7temp) AS VARCHAR(4)) + '-' + CAST(MONTH(@day7temp) AS VARCHAR(2)) + '-' + CAST(DAY(@day7temp) AS VARCHAR(2)) + ' 23:59:59'
select @day1
select @day7
本文链接