SQLServer2008安装过程中遇到性能计数器解决方法
1.SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一
致性”检查失败 问题的解决方法
在Windows Server 2003 、Windows XP或者Windows 2000中安装 SQL SERVER 2008 开发版和企业版时,会遇到“性能计数器
注册表配置单元一致性”检查失败 的问题(Windows Server 2008 由于暂时没有环境,尚未测试)
(图一)
安装提示错误信息为:
(图二) 解决方法:
1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击“开始”、“运行”,然后在“打开”中键入 regedit.exe,
再单击“确定”。在 Windows 2000 中,使用 regedt32.exe 启动注册表编辑器
2. 定位到以下注册表项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] "Last Counter"=dword:0000566a(22122) (这个值根据不同的机器各不相同,不是固定值)
"Last Help"=dword:0000566b(22123) (这个值根据不同的机器各不相同,不是固定值)
(图三)
在图三中我们看到,Perflib下存在两个子项目
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]
经过比较,发现在两个子文件夹项目下面存在的计数器最大值不同
(图四)Perflib\004中Counter项目的最大值为22178(这个值根据不同的机器各不相同,不是固定值)
(图五)Perflib\004中Help项目的最大值为22179(这个值根据不同的机器各不相同,不是固定值)
(图六)Perflib\009中Counter项目的最大值为22122(这个值根据不同的机器各不相同,不是固定值)
(图七)Perflib\009中Help项目的最大值为22123(这个值根据不同的机器各不相同,不是固定值)
很显然,如图所示,在我的机器上[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]中
"Last Counter"和"Last Help"这两项的值,和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Perflib\009]中保存的最大值是相同的,分别为22122和22123(这两个数值每台电脑各不相同),而和
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004]中保存的最大值不相同,正是由于这个差异,造成了SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败的故障。
原因分析:
由于之前安装过的Visual Studio 2008英文版中所带的Visual Studio 2005 Express语言版本是英文版,同时又测试安装了SQL
SERVER 2005 Developer Edition简体中文开发版,之后又卸载了SQL SERVER 2005 Developer Edition简体中文开发版,打算安装SQL SERVER 2008 Developer Edition简体中文开发办,由于语言的不一致性以及反复多次的安装卸载,估计是安装程序
在卸载的时候的错误,造成了注册表中键值不一致的现象
问题解决:
知道的故障的起因,问题就很好解决了,由于我们使用的是简体中文版操作系统,所以要保证 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Counter"和"Last Help"这两项的
值与
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004]中"Counter"和"Help"两项保存的最大
值相同就可以了
如果我们使用的是英文版操作系统,那就要保证 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Counter"和"Last Help"这两项的
值与
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]中保存的最大值相同就可以了
(图八)
修改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Counter"的值,使它和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004] 中"Counter"的最大值保持一致,我们
这里是改为22178
(图九)
修改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Help"的值,使它和
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004] 中"Help"的最大值保持一致,我们这里是改为22179
要注意的是,修改数字的时候,必须选择基数是 “十进制”(默认是十六进制),否则数字将不匹配,SQL SERVER 2008 安装
程序检查将再次失败。
(注意:修改注册表存在一定风险,可能造成您的系统损坏,请先备份注册表,以备在出现问题后可以恢复。有关如何备份和
还原注册表,请参考Microsoft 知识库中相应的主题:[322756]如何备份和还原 Windows 注册表) 测试效果:
然后关闭注册表编辑器,再次开始安装 SQL SERVER 2008 Developer Edition简体中文开发版
(图十)测试通过,不再出现错误,可以正常安装了
至此,问题彻底解决,而解决方法,只是简单得修改了两个注册表键值。
2.重新启动计算机失败
运行regedit打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Session Manager中找到PendingFileRenameOperations,删除之。
SQL Server 2008数据库被标记为可疑的解决方法
SQL Server 2008数据库被标记为可疑的解决方法
2011-08-23 16:36 佚名 火魔网 字号:T | T
本文我们主要介绍了SQL Server 2008数据库被标记为可疑时的解决方法,希望能够对您有所帮助。
AD:
在使用SQL Server 2008数据库时发现数据库被标记为可疑,查看网上的资料终于找到了解决办法,接下来我们就来介绍解决方法。
解决方法:
当数据库发生这种操作故障时,可以按如下操作步骤可解决此方法,打开数据库里的Sql 查询编辑器窗口,运行以下的命令。
1、修改数据库为紧急模式
ALTER DATABASE Zhangxing SET EMERGENCY
2、使数据库变为单用户模式
ALTER DATABASE Zhangxing SET SINGLE_USER
3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。
DBCC CheckDB (Zhangxing, REPAIR_ALLOW_DATA_LOSS)
4、使数据库变回为多用户模式
ALTER DATABASE Zhangxing SET MULTI_USER
也可以这样做: 1:重新建立一个,一样的数据库,路径名称,文件都一样。
2:关掉SQL Server服务;
3:把源文件COPY过来;
4:开启SQL Server服务,这样问题同样就解决了。
以上就是SQL Server 2008数据库被标记为可疑的两种解决方法,本文就介绍到这里了,希望本次的介绍能够对您有所收获!
今天在客户服务器的数据库里面的一个数据库突然出现了点问题,数据库状态变为可疑了,这个问题之前有见过,虽然解决了,但并没有把过程和解决方法记录下来,决定这次记录在博客园里,方便自己也方便他人在遇到这个问题的时候,能快速解决!废话不多说,先说说数据库变可疑的原因:
SQLServer出现System.OutOfMemoryException异常的解决方法
SQLServer出现System.OutOfMemoryException异常的解
决⽅法
今天在⽤SQL Server 2008执⾏⼀个SQL脚本⽂件时,⽼是出现引发类型为“System.OutOfMemoryException”的异常错误,脚
本明明是从SQL Server 2008导出的,应该不会出错,研究了好久问题才得以解决。
出现这个错误的主要原因是由于SQL脚本⽂件太⼤,估计超过了100M了,解决⽅法就是把脚本⽂件分成⼏个脚本⽂件,分别
去执⾏即可。
来⾃微软官⽅的解决⽅案:
原因:
因为计算机没有⾜够的内存来完成请求的操作,则会出现此问题。
在 SQL Server 2000 Reporting Services 的限制会导致内存绑定的处理报告的某些部分。例如,查询结果处理和对象模型呈现
受限于内存。
计算机没有⾜够的内存来完成请求的操作在⼀个或多个下列条件都为真:
1.⼀个报告是太⼤或太复杂。
2.其他正在运⾏的进程的费⽤是⾮常⾼的。
3.计算机的物理内存是太⼩。
处理报表,则分两个阶段。两个阶段是执⾏和呈现。在执⾏阶段期间或在呈现阶段,会出现此问题。
如果在执⾏阶段中,会出现此问题,此问题很可能是因为太多的内存消耗在查询结果中返回的数据。此外,下列因素会影响内
存消耗,在执⾏阶段:
1.分组
2.筛选
3.聚合
4.排序
5.⾃定义代码
如果在呈现阶段中会发⽣此问题,原因被与该报表显⽰何种信息以及报表显⽰信息的⽅式。
1.数量和类型的控件
2.这些控件之间的关系
3.格式设置
4.显⽰的数据量
解决⽅案:
若要解决此问题,请使⽤下列⽅法之⼀。
⽅法 1
向计算机中添加⾜够的物理内存。
注意如果您超过 2 千兆字节 (GB) 的内存可以启⽤该 / 3gb 切换在 Boot.ini ⽂件中为更好的性能。 有关如何在 SQL Server 中
使⽤了 / 3gb 开关的详细信息单击下⾯的⽂章编号,以查看 Microsoft 知识库中相应的⽂章:274750如何配置 SQL Server 使⽤ 2 GB 以上物理内存
win7系统中安装SQL2005_金蝶KIS过程
win7系统中安装金蝶KIS过程
经过测试,win7下安装KIS完全可行,具体如下讲解。
一、系统要求
1. 应该使用win7 32位的版本,本人用的是win7 32位旗舰版
2. 安装SQL2005标准版
二、SQL2005标准版的安装
1. 下载SQL2005标准版和SQL 2005 SP3
可以到[url=/]/[/url]上去下载,用迅雷可以全速下载
2. 配置IIS
到控制面板,打开IIS Features,点左边的加号,打开详细信息,我们勾上以下组件:
1: Web Managerment Tools\IIS 6 Management Compatibility\IIS6 WMI Compatibility
2: Web Managerment Tools\IIS 6 Management Compatibility\IIS6 Metabase and IIS 6
Configuration Compatibility
3: World Wide Web Services\Application Development Features\
4: World Wide Web Services\Common Http Features\Http Redirection
5: World Wide Web Services\Security\Windows Authentication
3. 安装标准版SQL Server 2005
按照提示安装即可,安装过程中,勾选客户端选项,选择混合身份认证模式。
4. 安装SQL Server 2005 SP3
最后一步设置系统帐号权限,需要先到任务管理器中关闭 sqlserver 进程(注意有提示),然后到打开dos窗口之前的一步,又需要手动启动 sqlserver服务。
Windows常用性能计数器总结(一)
Windows常⽤性能计数器总结(⼀)
基础监控: 1.SQL Server Buffer: Buffer Cache Hit Ratio
这是⼀个很重要查看内存是否不⾜的参数。SQL Server Buffer中的计数器Buffer Cache Hit Ratio⽤来指出SQLServer从缓存中⽽不是磁盘中获得数据的频率。sqlserver会将某些查询过的数据缓存在内存中⽤于以后再次查询使⽤。当⼀个查询A进来了以后数据库会编译这个sql看看需要哪些数据,然后执⾏计划⾸先去内存中找看是否有这次查询所需要的数据,如果这个同样的sql刚才已经执⾏过了或者该表的数据已经缓存在内存中,但是却没有在内存中找到数据,那就有可能是因为内存不⾜引起内存挤压将缓存数据写回硬盘或者释放掉来提供数据库其他请求来使⽤。⼀般来说oltp的系统,这个值最起码也应该在90%以上,理想值是99%。如果这个值低于90%,那建议你应该添加内存了。
2.Memory: Pages/sec
这个也是监控内存是否不⾜的⼀个⽐较重要的参数。这个计数器记录的是每秒钟内存和磁盘之间交换的页⾯数。频繁的交换页⾯就会消耗更多的io,这会影响到服务器的性能。打个⽐⽅,超市有⼀个货架上边摆满了新进的各种商品a、b、c,当你去超市想买a的时候直接去货架就能拿到a,⽅便的很,当顾客进超市逛⼀圈以后跟你说我怎么没有发现旧商品d呢,我就想买这个d,然后⼯作⼈员就会去仓库把商品d拿出来摆放到货架上供下次顾客来买。但是货架摆满了怎么办呢,只能将时间长没有⼈问津的a下架放到仓库然后空出来地⽅摆放d,但是下次另⼀个顾客来了⼜有想要购买a的意向,⼯作⼈员就得再次把a拿出来替换掉货架上的d。其实内存就是这个货架,硬盘就是仓库。因为货架太⼩了,导致只能频繁的更换货架上的商品来提供正常的运营,想减少反复来回搬运产⽣的io开销,只能换个更⼤的货架来满⾜需求。
如果服务器上只跑的sqlserver,那这个指标的理想范围应该是0-20之间,偶尔超过20的话影响不⼤,如果这个值频繁的超过20,那说明你的这台服务器可能需要加内存了。
解决SQLServer 2008 数据库质疑
解决SQLServer 2008 数据库质疑(挂起)问题
Step1.执行语句,改变数据库状态
EXEC SP_RESETSTATUS 'Your DBName'
GO
Step2:重置数据库状态之后,我们就应该对质疑的数据库执行DBCC CHECKDB命令,查看下为什么数据库会出现质疑状态.
DBCC CHECKDB('Your DBName') WITH NO_INFOMSGS,ALL_ERRORMSGS
Go
Step3:找到原因之后,那么就好解决了.看报错信息中,已说明了PK中存在重复值.首先,将每个索引的脚本导出为sql文件.之后再将表中主键栏位里的duplicate的行删除掉
Step4:现在最好再立即执行下DBCC CHECKDB命令确认下是否还有错误信息.之后确认没有,那么再将之前索引的脚本创建进去.
Step5:在Index创建完毕之后,立即执行下DBCC CHECKDB命令确认下是否还有错误信息.确认无误,那么就需要立即对数据库执行一次完全备份作业.
针对SQL 2000挂起情况进行修复
Step1:设置数据库为紧急模式 Use Master GO
sp_configure 'allow updates', 1
reconfigure with override
GO
UPDATE sysdatabases SET status = 32768 where name = 'TEST'
GO
Step2:停止数据库服务
通过Windows服务或者SQLServer管理器.
Step3:把原始数据库的数据文件DBNAME_DAT.MDF,DBNAME_LOG.LDF移走
Step4:启动SQL Server服务
Step5.重新建立一个同名的数据库TEST;
USE master
GO
CREATE DATABASE TEST
ON
( NAME = DBNAME_DAT,
FILENAME = 'C:',
SSIS高级内容
SSIS高级内容 系列一
1. 简介
Microsoft SQL Server 2005 Integration Services (SSIS) 是生成高性能数据集成解决方案(包括数据仓库的提取、转换和加载 (ETL) 包)的平台。
(1) 是数据导入"导出向导
(2) 是ETL工具
(3) 控制流引擎
(4) 应用程序平台
(5) 高性能的数据转换数据管线
在ETL抽取工具中,SSIS以其成本较低,容易上手,又加之功能强大,而应用广泛。
本文是以前做项目时,针对SSIS学习研究时整理的文章,内容涉及到SSIS高级的一些特性,现在整理出来希望对学习ETL初学者有所帮助。
2. 常用技巧
2.1 配置文件
配置文件为“MsDtsSrvr.ini.xml”,位于“%Program Files%"Microsoft SQL Server"90"DTS"Binn”下。这个文件的位置和名称存储在注册表项“HKEY_LOCAL_MACHINE"SOFTWARE"Microsoft"MSDTS"ServiceConfigFile”的值中。例如值为:
D:"Program Files"Microsoft SQL Server"90"DTS"Binn"MsDtsSrvr.ini.xml
注:修改配置文件后,一定要重新启动Integration Services服务器。
2.2 修改文件系统文件夹位置
true
MSDB
.
File System
.."Packages
ODSM File System
D:"ODSM ETL Deployment
红色字体部分,为新增加的内容。如下图所示:
2.3 修改服务器引用的实例
如果一台计算机上装有多个实例,集成服务并不支持多个实例。因此,可以修改配置文件“MsDtsSrvr.ini.xml”,指定哪个实例。
sql server 2008 配置管理器打不开的处理
sql server 2008 配置管理器打不开的处理
错误提示:无法连接到WMI 提供程序。您没有权限或者该服务器无法访问。请注意,您只能使用SQL Server 配置管理来管理SQL Server2005 服务器。找不到指定的模块。
Invalid class [0x8007007e]
解决方案
方案一:(本人用来解决问题的方法)
1.找到sqlmgmproviderxpsp2up.mof文件所在位置,每种系统所在的位置不同,我的电脑(windows7旗舰版64位)该文件在(C:\Program Files (x86)\Microsoft SQL
Server\100\Shared)有的则在(C:\ProgramFiles\MicrosoftSQL Server\90\Share)
运行dos命令窗口,
输入: cd \Program Files(x86)\Microsoft SQL Server\100\Shared
(文件所在位置,一定是自己找到的)
输入: mofcomp C:\Program Files
(x86)\Microsoft
SQLServer\100\Shared\sqlmgmproviderxpsp2up.mof
注意:(其中的地址不要全复制我的,看清自己的地址)
(注意:出现如图情况,则成功了)
但是还会出现如下情况:
则是地址没有找对,所以我一直在强调一定找到这个文件sqlmgmproviderxpsp2up.mof。
方案2
1右击“我的电脑”-->“管理”
2 在“本地用户和组”内的Administrators组上双击,出现添加属性对话框。
3 单击“添加”按钮,出现添加用户对话框
4 单击“高级”按钮,再单击“搜索”(或是“立即查找”)按钮。注:此'NT AUTHORITY\NETWORK
SERVICE'用户为系统内置帐户,无法直接添加。
5 在“搜索结果”内选择“Network Service”用户后,单击“确定” 方案3
SQLServer性能调教系列(4)--Profiler(下)
SQLServer性能调教系列(4)--Profiler(下)
接上篇:
3.分析跟踪记录
在跟踪了⼀段时间之后,在⽂件中就会保存有跟踪的数据(包括IO,Duration,CPU,Reads,Writes,RowCounts等计数器),接下来就是
把跟踪的数据加载到表并分析这些数据。可以选择在Profile中打开并检查这些跟踪数据,会有些限制,如不能完成太多的操作,⼤量重复的
SQL语句,没有汇总。
3.1 加载数据到表(使⽤函数fn_trace_gettable返回表格形式的数据,作为范例只选择分析T-SQL代码和Duration查询的运⾏时间)
select CAST(textdata as nvarchar(max)) as tsql_code,duration
into Workload
from sys.fn_trace_gettable('C:\test\performancetrace_20100802.trc',NULL) as TT
3.2 汇总相同的SQL项
select tsql_code,SUM(duration) as total_duration from workload group by tsql_code
(由于我是在Production上⾯做的trace,考虑到系统的安全性,在此不便透露分析的SQL代码,实在很抱歉,各位朋友如有兴趣可在⾃⼰的测试环境中测试,讨论测试的结果)
问题:分组聚合后会看到逻辑上相同(参数不同)的查询会被分到不同的组,因为在筛选器中使⽤了不同的值。因为这些相同逻辑的SQL会使
⽤相同的执⾏计划,应该聚合在⼀起才能准备的分析总的查询运⾏的时间。
3.3 问题处理⽅案⼀(⼤致分段截取)
通常情况下SQL语句都是Select+栏位,左边有很⼤⼀部分是相同的,根据SQL字符的长度,截取前⼀段来聚合。如取前50,100,150. ⽅法简
单,容易操作,会聚合⼀部分数据,但是长度不太好取值,只能调整前缀的长度去测试。
Windows自带性能监控工具Perfmon使用介绍
Windows⾃带性能监控⼯具Perfmon使⽤介绍
⼀、Perfmon简介
Perfmon(Performance Monitor)是⼀款Windows⾃带的性能监控⼯具,提供了图表化的系统性能实时监视器、性能⽇志和警报管理。通
过添加性能计数器(Performance Counter)可以实现对CPU、内存、⽹络、磁盘、进程等多类对象的上百个指标的监控。其中,性能⽇志可
定义输出格式为⼆进制⽂件、⽂本⽂件、SQLSERVER记录等,以⽅便后续使⽤第三⽅⼯具进⾏分析。
⼆、Perfmon的启⽤和监控设置
Perfmon使⽤⽅法:
2.1 Windows开始中输⼊perfmon后回车,即可打开perfmon.exe
2.2 点击性能监视器;
2.3 在右窗格中单击右键,然后单击“添加计数器”;或点击监控图上⽅的"+"也可以打开添加计数器的窗⼝;
2.4 在性能对象列表中,选择所需的性能指标计数器类别,以在Perfmon.exe中显⽰对应指标的监控图形,然后单击【添加】-->【确认】
2.5 在计数器勾选区域:
选中监控图底部的某个计数器,右键【属性】,可编辑该计数器的线条颜⾊、宽度等样式
2.6 通过切换点击不同的计数器类别,可实时观察到所统计的【最新值、平均值、最⼩值、最⼤值、持续时间】
2.7 在监控图区域
右键【属性】,可设置采样的持续时间(默认100s)、每间隔多少时间采样⼀次
右键【图形另存为】,可将本地性能监控的采样图保存到本地
右键【清除】,可将当前监控上的采样图清空,⽽后从左⾄右继续开始新的采样图
三、性能分析⽅法
1.内存分析⽅法
内存分析:⽤于判断系统有⽆内存瓶颈,是否需要通过增加内存等⼿段提⾼系统性能表现
内存分析的主要⽅法和步骤:
(1)⾸先查看Memory:% Commitued Bytes in Use指标
如果该指标数值⽐较⼤,系统可能出现了内存⽅⾯的问题,需要继续下⾯步骤进⼀步分析。
另外也可以查看Available Bytes,如果该值⼩,则说明可⽤内存不⾜,存在性能瓶颈。
U9日常维护手册
U9-IT维护手册
1. 文档目的
本文档将介绍U9上线后,建议服务器维护人员进行的一些日常维护工作,目的是保证U9的稳定健康地运行。由于各个企业的实际情况有所不同,本文档只作为参考和建议用。
2. 硬件巡检
数据库和应用服务器的日常硬件检查非常必要。通过服务器各类硬件指示灯,我们可以知道CPU风扇是否需要更换、硬盘是否损坏、电源是否正常工作等。一旦发现硬件故障应该及时通知硬件维护商,在系统宕机前解决问题。各企业可以根据自己实际情况创建自己的巡检机制和巡检报告,但是巡检频率最好不要少于一周一次。
下表是某公司服务器硬件巡检报告(一天一次),供参考: 3. 操作系统
3.1. 防火墙
U9上线后,如果新增防火墙(软、硬件),应注意尽量将U9数据库服务器和应用服务器放在防火墙同一侧,避免防火墙阻隔数据库服务器和应用服务器的正常通讯。
3.2. 杀毒软件
杀毒软件种类繁多,企业引入杀毒软件应注意是否对性能造成影响。总体原则是建议对外网访问的安全控制统一在代理服务器上进行,内部网络的访问不要设置对TCP/IP和HTTP协议的包过滤检查,因为这会严重影响网络传输性能。当然,文件杀毒则是每台机器都应该配置启用的。
3.3. win2008(vista)和win2003混合使用
目前微软已经不再出售win2003操作系统,但是企业中仍然有很多安装了win2008和win2003操作系统的计算机在混合使用。当win2003和win2008混合使用时,如果发现通过网络互相访问较慢时,应该检查win2008的网络自动优化功能是否开启。该项功能可能由于部分路由器无法正确支持RFC1323协议,反而在某些情况下导致网络性能大幅下降。如果发现网络访问存在性能问题,请关闭掉Win2008接收窗口自动调谐功能。
检查win2008是否开启网络自动优化功能(命令:netsh interface tcp show global),如下图: “normal”说明已经开启网络自动优化功能。
