存档

‘SQL SERVER’ 分类的存档,文章数:35

SQL Server安装出错问题解决汇总

先把SQL Server卸载,再把安装时产生的“Microsoft SQL Server”文件夹删掉,在运行注册表,把HKEY_CURRENT_USER\\Software\\Microsoft\\Microsoft SQL Server,和HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server全部删掉,(注意要把Microsoft SQL Server文件夹整个删掉),然后重起。
再装就应该没有问题了!

Win2k 装不上 SQL Server 2000 问题很常见.
// (1)配置服务器时中断.
// (2)注册 ActiveX 时中断.
// (3)显示到100%的时候中断.
当然重新安装 Windows 2000 完全可以安装 SQL Server 2000.

安全起见:
1>先备份您的注册表.
2>备份您的数据[进不了SQL Server 2000,
可以备份 Program Files\\Microsoft SQL Server\\MSSQL\\Data 文件夹的文件.]

您必须知道:
Windows 2000 Server 可以安装SQL Server 2000的任何版本.
Windows 2000 Professional 仅可以安装SQL Server 2000的个人
版.

有两种办法:
1:先卸载您的 SQL Server 2000,必要的时候删除 Program
Files\\Microsoft SQL Server 文件夹.
2:放入 SQL Server 2000 光盘.
3:在"开始"--"运行"键入 "F:\\x86\\setup.exe k=dbg" (F是光盘)
[此命令的意思单步运行安装 SQL Server 2000]
4:98%安装不成功,没有任何的提示.可能是:
(1)配置服务器时中断.
(2)注册 ActiveX 时中断.
(3)显示到100%的时候中断.

这样一来,您只能使用下面的办法了!否则,您只有 FORMAT了!
1 打开注册表
在"开始"--"运行"键入 "regedit"
2 按下列顺序点击打开
+ HKEY_LOCAL_MACHINE
+ SOFTWART
+ Microsoft
+ Windows
+ CurrentVersion
+ Setup
+ ExceptionComponents
3 将 ExceptionComponents 下面的文件夹全部删除!
如 {60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
.......

4 重新启动:
5 重新安装 SQL Server 2000
=======================================================

以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装之前,必须重新启动计算机

a、重启机器,再进行安装,如果发现还有该错误,请按下面步骤
b、在开始->运行中输入regedit
c、到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置
d、选择文件->倒出,保存
e、在右边窗口右击PendingFileRenameOperations,选择删除,然后确认
f、重启安装,问题解决

如果还有同样问题,请检查其它注册表中是否有该值存在,如有请删掉。

=========================================

修改注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager项,把ObjectDirectories的值清空即可。

1、先停止服务,退出,再到控制面板正常卸载;

2、删除安装路径下的所有目录文件夹,包括注册表,如果担心删除不到位,可以用查找命令,将所有*SQL*的逐一查出,然后再一一确认删除;(如果安装SQL时,不是按默认路径安装,除了删除安装路径下的所有目录文件夹外,主系统盘里的程序组里的相应文件夹也要删除)

3、删除的时候还应考虑到C:\Program Files\Common Files\Microsoft Shared\web server extensions\40\bin\FPMMC.MSC;

4、管理工具中,将SQLSERVERAGENT服务停止服务;此服务程序存放在D:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqlagent.exe -i MSSQLSERVER

5、将C:\WINDOWS目录下的sql.mif、sqlsp.log、sqlstp.log、sqlsrv32.rll、sqlwid.dll、 sqlwoa.dll、dbmsqlgc.dll、SQLSRV32.dll、sqlclnt.rsp、sqlunirl.dll、 SQLSERVR.EXE-18F260D8.pf、SQLMANGR.EXE-0150BA62.pf等清除;(偶机器SQL是打过SP4的)

6、删除时还应将C:\Program Files\Common Files\Microsoft Shared\SQL Debugging\sqldbreg2.exe,sqldbreg.exe
,sqldbg.dll也清除掉;

7、如果安装不成功,记得要将C:\WINDOWS\Temp\SQLSETUP\BIN\SCM.EXE一并清除;

8、卸载干净后,如果怕再次安装出错,那就建议按默认路径安装;

9、SQL在安装过程中如果出错,系统会锁定文件,当然,卸载程序也会,但可以通过修改注册表,就不用重新启动,再尝试安装了。(建议装完SQL后还是重新启动一下机器,就避免修改注册表了)
避免重启,注册表修改:(1)运行REGEDIT;(2)注册表中选择HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\Session Manager,将光标定位于此;(3)选择文件->导出,再次保存(安全起见);(4)在右边窗中右击PendingFile Rename Operations,选择删除,最后确认;

10、如果安装不成功,还可以通过C:\WINDOWS\sqlstp.log查看安装不成功的原因,这个是最利于解决问题的了;

11、同时需要将C:\Documents and Settings\XXX\Local Settings\Temp\所有关于*SQL*.*全部清除;例如将 sqlsp.out,SQLSERVR.DBD,sqlmangr.exe.mdmp,sqlmangr.exe.hdmp清除即可。

安装SQL Server 遇到错误提示:

以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机!。
打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
中找到 PendingFileRenameOperations 项目,并删除它。这样就可以清除安装暂挂项目。

注意:不用重起电脑,继续安装即可!

提示“文件挂起”,SQL Server 无法安装

安装SQL Server 2000个人版用作开发,可是每次安装都提示“以前的某个程序安装已在安装计算计上创建挂起的文件操作。运行安装程序之前必须重新启动计算机。”重新启动了计算机之后,问题却丝毫没有解决,依然提示这样的话。

解决方法:

先把SQL Server卸载,再把安装时产生的“Microsoft SQL Server”文件夹删掉,在运行注册表,把HKEY_CURRENT_USER\\Software\\Microsoft\\Microsoft SQL Server,和HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server全部删掉,(注意要把Microsoft SQL Server文件夹整个删掉),然后重起。
再装就应该没有问题了!

Win2k 装不上 SQL Server 2000 问题很常见.
// (1)配置服务器时中断.
// (2)注册 ActiveX 时中断.
// (3)显示到100%的时候中断.
当然重新安装 Windows 2000 完全可以安装 SQL Server 2000.

安全起见:
1>先备份您的注册表.
2>备份您的数据[进不了SQL Server 2000,可以备份 Program
Files\\Microsoft SQL Server\\MSSQL\\Data 文件夹的文件.]

您必须知道:
Windows 2000 Server 可以安装SQL Server 2000的任何版本.
Windows 2000 Professional 仅可以安装SQL Server 2000的个人
版.

有两种办法:
1:先卸载您的 SQL Server 2000,必要的时候删除 Program
Files\\Microsoft SQL Server 文件夹.
2:放入 SQL Server 2000 光盘.
3:在"开始"--"运行"键入 "F:\\x86\\setup.exe k=dbg" (F是光盘)
[此命令的意思单步运行安装 SQL Server 2000]
4:98%安装不成功,没有任何的提示.可能是:
(1)配置服务器时中断.
(2)注册 ActiveX 时中断.
(3)显示到100%的时候中断.

这样一来,您只能使用下面的办法了!否则,您只有 FORMAT了!
1 打开注册表
在"开始"--"运行"键入 "regedit"
2 按下列顺序点击打开
+ HKEY_LOCAL_MACHINE
+ SOFTWART
+ Microsoft
+ Windows
+ CurrentVersion
+ Setup
+ ExceptionComponents
3 将 ExceptionComponents 下面的文件夹全部删除!
如 {60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
.......

4 重新启动:
5 重新安装 SQL Server 2000

------------------------------------------------------------------------------------

转自:http://yk216.blog.51cto.com/252445/119131

SQL Server的补丁版本检查不如Windows 补丁版本检查直接,一个系统管理员,如果不了解SQL Server版本对应的补丁号,可能也会遇到一点麻烦,因此在这说明一下,通过这样的办法判别机器是安全的办法,不会对系统产生任何影响。
 
1、用Isql或者SQL查询分析器登录到SQL Server,如果是用Isql,请在cmd窗口输入isql -U sa,然后输入密码,进入;如果是用SQL查询分析器,请从程序中启动,输入sa和密码(也可以用windows验证)。
 
2、在ISQL中输入:
Select @@Version;
go
或者SQL查询分析器中输入(其实如果不想输入,只要打开帮助的关于就可以了:))
Select @@Version;
然后按执行;
这时会返回SQL的版本信息,如下:
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 3)
其中的8.00.760就是SQL Server的版本和补丁号。对应关系如下:
8.00.194 -——————SQL Server 2000 RTM
8.00.384 -——————(SP1)
8.00.534 -——————(SP2)
8.00.760 -——————(SP3)

8.00.2039---------------------(sp4)
这样我们就能看到SQL Server的正确版本和补丁号了。

------------------------------------------------------------------------------------

转自:http://yk216.blog.51cto.com/252445/119130

SQL SERVER DBCC命令解释
------------------------------------------
--1 dbcc trraceon DBCC TRACEOFF
--对于数据库死锁,通常可以通过TRACE FLAG 1204、1205、1206,检查ERRORLOG里面的输出,和分析SQLTRACE的执行上下文判断死锁问题的来由。
--TRACEON函数的第三个参数设置为-1,表示不单单针对当前connection,
--而是针对所有包括未来建立的connection。这样,才够完全,否则只是监视当前已经建立的数据库连接了。
--执行下面的话可以把死锁记录到Errorlog中:
dbcc traceon (1204, 3605, -1)
go
dbcc tracestatus(-1)
go

--说明:
--260:打印关于扩展存储过程动态链接库的版本信息
--444:停止auto-parameterization
--1200:输出锁信息
--1204:传回参与死锁的SQL SERVER相关程序之运行数据
--1211:停止lock escalation(锁升级)
--1252:显示动态选择锁的相关信息
--2528:通过 DBCC CHECKDB、DBCC CHECKFILEGROUP 和 DBCC CHECKTABLE 禁用对象的并行检查。
--默认情况下,并行度由查询处理器自动确定。最大并行度的配置方式与并行查询相同。
--有关更多信息,请参见 max degree of parallelism 选项。
-- 通常情况下,应将并行 DBCC 保留为启用状态。执行 DBCC CHECKDB 时,
-- 查询处理器重新评估和自动调整并行度,并检查每个表或一批表。
--有时,检查可能在服务器处于实际空闲状态时进行。如果管理员知道在检查结束前负荷将加大,
--可能希望手工减小或禁用并行度。
-- 但是,禁用并行检查会导致数据库的总体性能降低。降低并行度将增加必须扫描的事务日志量。
--这反过来增加了对 tempdb 空间的需求,并导致 dbcc 完成检查所需的时间非线性增加。
--如果运行 DBCC 时启用了 TABLOCK 功能并关闭了并行度,则表可能被锁定更长时间。
--3205:默认情况下,如果磁带驱动器支持硬件压缩,则 DUMP 或 BACKUP 语句会使用该功能。
-- 利用此跟踪标记,可以禁用磁带驱动程序的硬件压缩。
-- 本项在要与不支持压缩的其它站点或磁带驱动器交换磁带时有用。
--3604:将trace结果输出到前端
--3605:要求DBCC的输出放到SQL server ERROR LOG
--8602:停止索引提示功能
--8722:停止join group等最优化提示功能
--8755:停止锁提示功能
--8780:停止最优化超时配置,强制做完整的最优化动作
------------------------------------------------------
--2 DBCC page
dbcc traceon(3604)
dbcc page(northwind,1,100,1)
/*查询northwind 的数据的第101个页面的信息*/
/*DBCC Page ({dbid|dbname},filenum,pagenum[,printopt])
?
具体参数描述如下:
dbid: 包含页面的数据库ID
dbname:包含页面的数据库的名称
filenum:包含页面的文件编号
pagenum:文件内的页面
printopt:可选的输出选项;选用其中一个值:
0:默认值,输出缓冲区的标题和页面标题
1:输出缓冲区的标题、页面标题(分别输出每一行),以及行偏移量表
2:输出缓冲区的标题、页面标题(整体输出页面),以及行偏移量表
3:输出缓冲区的标题、页面标题(分别输出每一行),以及行偏移量表;每一行后跟分别列出的它的列值
*/
------------------------------------------------------
--3 DBCC checkalloc
DBCC checkalloc(northwind)
/*检查指定数据库的系统表内和表间的一致性
checkalloc是检查指定数据库,看其所有正确分配的页和尚未分配的页的情况。
若未指定数据库名,则checkalloc检查当前数据库。checkalloc会返回已分配的和使用的空间数量。
checkalloc的缺省模式为nofix,要使用fix选项,必须把数据库置于单用户模式。
*/
-----------------------------------------------------
--4 DBCC checkcatalog
DBCC checkcatalog(northwind)
/*
检查批定数据库的系统表内和系统表间的一致性
*/
-----------------------------------------------------
--5 DBCC checkconstraints
DBCC checkconstraints(products)
/*
检查指定表上的指定约束或所有约束的完整性
DBCC CHECKCONSTRAINTS
[('table_name'|'constraint_name'
)]
[WITH {ALL_ERRORMSGS|ALL_CONSTRAINTS}]
DBCC CHECKCONSTRAINTS在某个数据库中,检测某些特定的约束或者全部约束的一致性。
DBCC CHECKCONSTRAINTS总是在当前数据库的上下文环境中执行。
  注意,DBCC CHECKCONSTRAINTS并不进行磁盘或者文件级别的一致性检测;
它只是确保外键定义的一致性,同时检测约束——仅仅是确认数据有效。
如果你希望检测磁盘上表和索引的一致性,
你应该执行DBCC CHECKDB或者在所有的表上执行DBCC CHECKALLOC和 DBCC CHECKTABLE的组合。
*/
------------------------------------------------------
--6 DBCC checkdb
DBCC checkdb
/*
检查数据库中的所有对象的分配和结构完整性
checkdb [('database_name'[, NOINDEX | REPAIR])]
[WITH NO_INFOMSGS[, ALL_ERRORMSGS][, PHYSICAL_ONLY]
[, ESTIMATEONLY][, TABLOCK]]
*/
-----------------------------------------------------
--7 DBCC cleantable
DBCC cleantable
/*
回收alter table drop column语句 删除可变长度列或text列后的存储空间
cleantable ('database_name'|database_id, 'table_name'|table_id, [batch_size])
*/
-----------------------------------------------------
--8 DBCC dbreindex
DBCC dbreindex
/*
重建指定数据库的一个或多个索引
dbreindex ('table_name' [, index_name [, fillfactor ]]) [WITH NO_INFOMSGS]
*/
-----------------------------------------------------
--9 DBCC indexdefrag
DBCC indexdefrag
/*
对表或视图上的索引和非聚集索引进行碎片整理
indexdefrag ({dbid | dbname | 0}, {tableid | tablename}, {indid | indname})
*/