数据库(一)安装相关—挂起、创建实例失败
题记:上两个星期一直在用SQL2000的DTS做一个数据自动转移备份的程序,结果把这一块的东西又研究了一下。以往也用SQL不过是学习课本上照本宣科的东西,实用就是用网页读数据库,只要安装好数据库能正确连接就好了,也没深入探讨。最近又用的时候,才发现SQL的水真是深啊,一不小心就被一个问题搅的晕头转向。还好,现在咨询发达,可以查帮助文档和网上搜索,因此,这些问题也逐渐解决了。把以前和最近的总结文档整理一下,记录下来,也让其他人遇到一样问题时来搜索我的文章吧!
文章构架:(一)数据库安装相关—挂起、创建实例失败
(二)数据库—数据库连接失败
(三)数据库—DTS相关
(四)数据库进阶—索引、视图、游标、存储过程和触发器
问题来源:机器上装过SQL2005,然后因为实验室开发用SQL2000,又卸了重装SQL2000,但是不知道,用的默认实例。然后装VS2005时又默认装了一个SQL2005的配置工具,好像还有一个默认的实例。系统在中间做过一个一键还原备份。后来默认实例用的麻烦,就卸了SQL2000重装了一个实例,这中间还换了SQL2000版本。一次意外,恢复了系统,结果SQL这块很多功能都出了问题,只有重装,没想到重装还是有很多问题,目前逐一解决!呵呵!
一、 版本问题。
不同版本适用不同系统,这就不多说了,网上有很多。
二、 是否创建实例
安装前最好修改自己的机器名为一个简单称谓,这样数据库服务器的名字就方便些,不会是一条机器码。不改也可以,以后可以在程序组中的网络服务工具和客户端服务工具中修改,不过麻烦些。实例的介绍,网上有,不多说了,命名实例比默认实例注册表权限也要大一些,最好创建一个实例,以后扩展方便些。
三、 使用本地账户或域用户账户
本地系统帐户不需要设置密码,也没有 Windows NT 4.0 的网络访问权限,同时,它可能限制 SQL Server 安装与其它服务器交互,比如数据同步和网络备份。在 Windows 2000 中,本地系统帐户不允许网络访问。我用的是2003和XP,好像没出现问题。
域用户帐户使用 Windows 身份验证设置并连接 SQL Server。默认情况下,将显示当前登录到计算机的域用户帐户的帐户信息。如果你的帐号是域帐号才能使用 "使用域用户账户" ,没有安装活动目录,也不是某个域的成员。只有选择本地用户。
四、 认证模式选择
不多少了,在方便和安全之间自己做决定吧!
五、卸载实例和重建注册表
这是给装完了一个实例,不过瘾,还想卸了再装,或者以后使用时出现了问题,需要修复注册表的人使用的。像我这种不喜欢重装系统,出了问题就改注册表的人比较适用,但是代价有时也是惨痛的,呵呵,重建时输入错了以前的初始化信息,就只有卸载重装啦!
以上内容查看SQL的帮助文档《SQL Server 安装程序帮助》都可以查的到,下面的部分,是网上查到的。
六、进入安装前出现的问题。“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”
这是由于注册表冲突引起的,可以执行
A、开始\运行\输入regedit回车
+HKEY_LOCAL_MACHINE
+SYSTEM
+CurrentControlSet
+Control
+Session Manager下的FileRenameOperations删掉
然后不要重启(重启,注册表就恢复了)就可以了安装了。
基本上将上述注册表删除,一定可以解决SQL挂起问题。网上也有不行的,我没试,可以参考,继续下面:
B、+HKEY_LOCAL_MACHINE
+SOFTWARE
+Microsoft
+Windows
+CurrentVersion
+Setup
+ExceptionComponents下的东西全部删掉如:
{077ACEC7-979C-40AB-9835-435BA1511E0D}
{30C7234B-6482-4A55-A11D-ECD9030313F2}
{3FDF25EE-E592-4495-8391-6E9C504DAC2B}
{60204BB3-7078-4F70-8F69-68297621941C}......
总之有几项,就删几项。然后重启,重启后,执行A,一般就可以了。
七、进入复制文件阶段出现的问题。由于我重装了很多次,一次还因为其他原因再换了SQL的版本后,一键还原了系统。结果复制过程中出现了很多问题。我也在网上搜索了一些。
比如:
A配置服务器出错。
B注册 ActiveX 时中断。
C创建实例时失败(重装时用的实例和以前的一样)。
这些问题,基本上就是以前的SQL没有卸载干净,导致出错。
下面介绍最完整的手工完全卸载SQL攻略,注:删除文件和改注册表时一定要慎重,很多其他程序如VS2005一般也会有数据库相关的东西,别删了。实在不行就重装系统吧,呵呵!
1)先停止服务,退出,再到控制面板正常卸载。
2)删除安装路径下的所有目录文件夹。如果担心删除不到位,可以用查找命令,将所有*SQL*的逐一查出,然后再一一确认删除;(如果安装SQL时,不是按默认路径安装,除了删除安装路径下的所有目录文件夹外,主系统盘里的程序组里的相应文件夹也要删除)。
3)运行注册表,删除如下项:
删除+HKEY_CURRENT_USER
+Software
+Microsoft
+Microsoft SQL Server
删除HKEY_LOCAL_MACHINE
+SOFTWARE
+Microsoft
+Microsoft SQL Server
删除HKEY_LOCAL_MACHINE
+SOFTWARE
+Microsoft
+MSSQLServer
删除HKEY_LOCAL_MACHINE
+SOFTWARE
+Microsoft
+Windows
+CurrentVersion
+Setup
+ExceptionComponents
一般做到上面,把注册表就删的差不多了,重启后,一般就可以安装。
实在不行,就把仔细看看刚刚上面的那些注册表,还有那些有SQL的都删了吧!
下面还有些要删的文件操作,我觉得没必要,因为安装出错大多数都是注册表中的冲突造成的,除了一些特殊的不可删除的文件,一般文件在重装后都会重写的,不删也没关系。
4)同时需要将C:\Documents and Settings\XXX\Local Settings\Temp\所有关于*SQL*.*全部清除;例如将sqlsp.out,SQLSERVR.DBD,sqlmangr.exe.mdmp,sqlmangr.exe.hdmp清除。
5)删除的时候还应考虑到C:\Program Files\Common Files\Microsoft Shared\web server extensions\40\bin\FPMMC.MSC;
6)将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的)
7)删除时还应将C:\Program Files\Common Files\Microsoft Shared\SQL Debugging\sqldbreg2.exe,sqldbreg.exe,sqldbg.dll也清除掉;
8)如果安装不成功,记得要将C:\WINDOWS\Temp\SQLSETUP\BIN\SCM.EXE一并清除;
9)卸载干净后,如果怕再次安装出错,那就建议按默认路径安装,注意一定不要自己起中文安装路径;
10)如果安装不成功,还可以通过C:\WINDOWS\sqlstp.log查看安装不成功的原因,这个是最利于解决问题的了;
八、好了,如果安好后,记得打补丁哦!我装的SP4网上都有的。切记:下载后,执行的时候是解压,要在解压后的目录中再次执行setup.bat才是真正的安装。