仓酷云
标题:
MSSQL网页编程之SQL Server 2000数据库毗连
[打印本页]
作者:
萌萌妈妈
时间:
2015-1-16 22:40
标题:
MSSQL网页编程之SQL Server 2000数据库毗连
线上或者测试环境经常出现的误操作总是让DBA同学那么闹心。server|数据|数据库|数据库毗连
SQLServer2000数据库毗连
目次
1SQLServer2000服务和实例...1
2SQLServer2000数据库使用布局...2
3SQLServer2000平安办理...2
3.1服务组件的启动帐户....2
3.2客户端毗连用户办理...2
4SQLServer2000数据库毗连罕见妨碍及处置办法...3
4.1SQLServer不存在或会见被回绝...3
4.2用户上岸失利...6
4.3超时已过时...6
4.4版本兼容性成绩...6
5SQLServer2000数据库毗连妨碍与下层使用程序毛病辨析...7
6总结...10
1SQLServer2000服务和实例
SQLServer2000的服务组件是以Windows服务(WindowsServices)体例运转的。SQLServer2000一般包括四种Windows服务(不思索OLAP):
●MSSqlServer—供应一样平常的数据库功效,如文件办理、查询处置、数据存储等
●DTC(DistributedTransactionCoordinator)—散布式事件和谐器,撑持超过两
个或多个服务器的更新操纵来包管事件的完全性
●SQLServerAgent—卖力SQLServer主动化事情,假如必要SQLServer在指准时
间实行某一个存储历程,就必要用到这个服务
●SearchService—全文查询服务,卖力全文检索方面的事情。
在理论中我们大概安装一切的服务组件,也大概只安装个中的一部分,这一组SQLServer2000服务即称SQLServer2000实例。安装SQLServer服务组件,就是创立一个新的SQLServer实例或是在原有实例中增减服务组件。
SQLServer2000同意在统一个操纵体系中创立多个实例。
●假如只安装一个SQLServer实例,不必要在SQLServer安装时指定实例称号,主动利用默许称号。那末在Windows域里盘算机的称号就是SQLServer实例的称号;利用TCP/IP协定毗连SQLServer实例时,能够用IP地点暗示SQLServer2000实例。
●假如一个操纵体系中安装了多个SQLServer2000的实例,则必要在SQLServer安装时指定实例称号。在Windows域里能够用“盘算机称号实例称号”的情势标记SQLServer2000实例;利用TCP/IP协定毗连SQLServer实例时,能够用“IP地点实例称号”暗示SQLServer2000实例。
2SQLServer2000数据库使用布局
SQLServer2000数据库使用通常为C/S布局,SQLServer2000实例作为服务器,供应引擎,用户操纵界面工具则是客户端,二者相反相成。客户端对服务器的数据库毗连实践上是客户端使用程序会见SQLServer2000实例的毗连。
3SQLServer2000平安办理3.1服务组件的启动帐户
把SQLServer服务器组件作为Windows服务程序,次要是由于Windows服务程序可以在Windows用户没有登录的情形下利用。那末既然是服务体例运转,依据Windows体系的请求就必要为服务设定Windows启动帐户。
在安装中安装程序会请求用户为服务设定启动帐户,界面以下:
假如安装时没有可以准确设置,或是前期必要修正,则能够经由过程Windows的服务办理器对响应的服务的对应设置举行修正。
3.2客户端毗连用户办理
SQLServer的用户分为分歧用户组,分歧用户组的用户能够具有分歧的数据库会见操纵权限。SQLServer默许供应用于对SQLServer用户身份举行办理受权的超等用户组SystemAdministrators,SQLServer超等用户SA则是这个组的固有效户,也是数据库会见操纵权限最年夜的用户。这个组在一般安装的情形下,还默许具有<当地呆板名>Administrator用户和<当地呆板名>Administrators用户。用户能够依据使用需求本人在SQLServer中创立新的用户组和用户,并赋之以得当的权限。
SQLServer2000对客户端毗连用户的平安办理有两种形式:
●Windows用户身份考证形式
●夹杂形式(Windows用户身份考证形式和SQLServer身份考证)
前者实践上是在SQLServer的用户库中创建对应的Windows体系用户,当客户端倡议毗连时间接以客户端登录Windows体系的用户的正当性来反省断定客户端毗连用户的权限。
后者则同时撑持SQLServer自界说用户平安战略,客户端倡议毗连时必需供应SQLServer用户名和登录口令。
假如但愿对客户端毗连用户办理接纳SQLServer身份考证,在安装时必需指定其登录体例为第二种形式。界面以下:
安装完成后,体系对应注册表注册项HKEY_LOCAL_MACHINEOFTWAREMicrosoftMSSQLServerMSSQLServerLoginMode的值决意了SQLServer将接纳何种身份考证形式:
●1暗示利用"Windows身份考证"形式
●2暗示利用夹杂形式(Windows身份考证和SQLServer身份考证)
假如前期必要修正身份考证形式,能够修正并保留对应值后从头启动SQLServer服务。
4SQLServer2000数据库毗连罕见妨碍及处置办法
SQLServer毗连中最多见毛病有四种:
●SQLServer不存在或会见被回绝
●用户上岸失利,没法毗连到服务器
●毗连超时
●版本兼容性成绩
4.1SQLServer不存在或会见被回绝
SQLServer不存在或会见被回绝的成绩是最多见的,一般也是最庞大的,毛病产生的缘故原由对照多,必要反省的方面也对照多。
办理这个成绩时,我们起首要分离反省服务器和客户真个收集设置。
客户端与服务器的连通必要通信库的撑持,SQLServer2000的通信库NET-LIBRARY收集协定通讯库撑持多种收集协定,但一样平常来讲都是选择TCP/IP或定名管道协定通讯库。
关于复杂的收集来讲,服务器和客户端利用统一种通信协定便可,而关于庞大的收集则意味着服务器上必需同时撑持TCP/IP或定名管道;客户端则一般选择个中一种。
反省服务器真个收集设置是不是启用了定名管道,是不是启用了TCP/IP协定等等。我们能够使用SQLServer自带的服务器收集利用工具来举行反省。
点击:程序->MicrosoftSQLServer->服务器收集利用工具,翻开该工具后看到的画面以下图所示:
从这里我们能够看到服务器启用了哪些协定。一样平常而言,我们启用定名管道和TCP/IP协定。
进一步反省SQKServer服务默许端口的设置,我们能够点中TCP/IP协定,选择"属性",以下图所示:
一样平常而言,我们利用SQLServer默许的1433端口。关于"埋没服务器"选项,只是限定客户端经由过程列举服务器来列举这台服务器,仅是回护功效,不影响毗连。
客户端毗连服务器是也是经由过程NET-LIBRARY收集协定通讯库完成的,微软的MDAC组件供应了NET-LIBRARY收集协定通讯库,如DBNMPNTW.DLL——定名管道协定和DBMSSOCN.DLL——TCP/IP协定,其下层的数据库会见基础组件ADO、OLEDB、ODBC、DB-LIBRARY等都是在此基本上完成与服务器的数据会见通信的。
完成MDAC的安装后(假如安装SQLServer2000服务器组件或是其客户端工具组件则NET-LIBRARY收集协定通讯库会内置在SQLServer2000的安装中举行,无需自力供应安装),经由过程对体系注册表注册项:
HKEY_LOCAL_MACHINEOFTWAREMicrosoftMSSQLServerClientConnectTo
上面各设置项的检察和修正能够完成对客户端收集利用属性的设置。
这个设置节点上面的设置项实践上该客户端能够毗连的服务器别号列表。服务器的别号是客户端使用程序用来毗连的服务器的伪称号,其毗连属性参数中的服务器是真实的服务器称号,二者能够不异或分歧。这关于客户端使用程序编程来讲十分有效,如许开辟者就能够用流动的伪称号(服务器别号)而不用依附现场实践服务器的称号来界说数据库毗连参数,使得软件具有通用性。详细公布时只必要在客户端上经由过程上述服务器别号的界说使得必要会见的服务能够映照到实在的服务器上。服务器别号的界说划定规矩以下:
<服务器别号>=<收集协定通讯库>,<毗连属性>
收集协定通讯库界说毗连该服务器时利用的通信协定,毗连属性则指明该别号真正毗连的对端SQLServer服务的属性信息,如服务器名、实例名、毗连端口等。
假定我们有一个SQLSERVER2000服务器SQL_SERVER,具有实例TESTDATA,IP地点为10.10.10.10,界说其别号为DATASERVER,服务器上同时撑持定名管道协定和TCP/IP协定,且TCP/IP的默许端口为1433(服务器具体设置办法拜见上文相干内容)。
关于定名管道协定,则别号设置以下:
DATASERVER=DBNMPNTW,SQL_SERVERTESTDATA
或
DATASERVER=DBNMPNTW,10.10.10.10TESTDATA
注重,这里的服务器呆板名SQL_SERVER和服务器IP地点10.10.10.10是等价的。偶然候客户端和服务器不在统一个局域网内里,这时候候极可能没法间接利用服务器称号来标识该服务器,这时候候我们可使用IP地点来间接指定;这与下文将要说起的HOST文件体例有殊途同归的地方。
关于TCP/IP协定,则别号设置以下:
DATASERVER=DBMSSOCN,10.10.10.10TESTDATA,1433
注重,这里利用服务器的IP地点10.10.10.10,同时指定的1433端口坚持和服务器的端口设置分歧。
在猎取或准确设置了服务器和客户真个收集利用参数后,我们将从物理收集上起首确保服务器和客户端连通。
利用PING命令反省物理收集毗连
ping<服务器IP地点>大概ping<服务器称号>
假如ping<服务器IP地点>失利,申明物理毗连有成绩,这时候候要反省硬件设备,如网卡、HUB、路由器等。另有一种多是因为客户端和服务器之间安装有防火墙软件酿成的,好比ISAServer。防火墙软件大概会屏障对ping、telnet等的呼应,因而在反省毗连成绩的时分,我们要先把防火墙软件临时封闭,大概翻开一切被关闭的端口。
假如ping<服务器IP地点>乐成而ping<服务器称号>失利,则申明名字剖析有成绩,这时候候要反省DNS服务是不是一般。偶然候客户端和服务器不在统一个局域网内里,这时候候极可能没法间接利用服务器称号来标识该服务器,这时候候我们可使用HOSTS文件来举行名字剖析,详细的办法是:
1、利用记事本翻开HOSTS文件(一样平常情形下位于C:WINNTystem32driversetc).2、增加一条IP地点与服务器称号的对应纪录,如:172.168.10.24myserver
也能够对客户端收集利用参数举行设置,详细拜见上文利用定名管道协定的别号设置部分。
总而言之,要确保物理收集毗连。
确保物理收集毗连无缺后,还要确保服务器SQLServer2000实例处于一般的服务形态,最初针对利用通信协定库的分歧再举行响应的反省项目。
对利用TCP/IP协定通信库的客户端来讲,必要利用telnet命令反省SQLServer服务器事情形态:
telnet<服务器IP地点>1433
假如命令实行乐成,能够看到屏幕一闪以后光标在左上角一直明灭,这申明SQLServer服务器事情一般,而且正在监听1433端口的TCP/IP毗连;假如命令前往"没法翻开毗连"的毛病信息,服务器端没启用TCP/IP协定,大概服务器端没有在SQLServer默许的端口1433上监听。云云则必要对服务器的收集利用设置举行响应的修改。
而关于利用TCP/IP协定通信库的客户端来讲还要包管客户机已具有会见服务器资本的权限,能够间接毗连SQLServer。最复杂的测试是对服务器举行共享会见,假如回绝则必要对服务器和客户端举行响应的受权。
至此,经由过程以上几个方面的反省,我们基础上能够办理年夜多半的SQLServer不存在或会见被回绝的成绩。
4.2用户上岸失利
用户登录失利的成绩通常为因为用户名或口令分歧法。假如确认用户名和口令切合毗连请求,则成绩一样平常出在SQLServer2000平安办理形式的设置成绩上。人人能够参考上文SQLServer2000平安办理形式一节中的设置办法举行修正和设置。
4.3超时已过时
产生这个毛病,一样平常而言暗示客户端已找到了这台服务器,而且能够举行毗连,不外是因为毗连的工夫年夜于同意的工夫而招致堕落.
要办理如许的毛病,能够修正客户端使用历程的毗连超时设置。详细的修正办法,可参考响应客户端使用历程的软件利用申明或接洽软件供给商办理。
4.4版本兼容性成绩
这类成绩产生的几率对照低,可是SQLServer自己也有很年夜开展,从SQLServer6.5到SQLServer2000乃至SQLServer2003都有不小的变动。假如客户端和服务器利用的接口版本兼容性存在成绩,则也会形成SQLServer数据库毗连妨碍。这一点必要提示人人不要粗心疏忽了版本兼容性这个基础成绩。
5SQLServer2000数据库毗连妨碍与下层使用程序毛病辨析
一样平常来讲,呈报数据库毗连失利不会是SQLServer2000数据库服务的告警,一般都是客户端使用历程上报出来的妨碍,这里就存在妨碍定位的辨析成绩,由于妨碍的激发纷歧定是SQLServer自己的设置成绩,下层使用程序也有大概存在妨碍。
实践上,这类辨析事情仍是很简单举行的。那就是抛开使用历程,在客户端上经由过程ODBC设置中的测试功效另建一个客户端毗连,假如测试经由过程则成绩在使用历程,不然反之。详细操纵办法,请人人参考上面的界面操纵:
至此假如存在SQLServer自己的设置成绩,则会弹出相似上面的妨碍告警框:
不然则SQLServer毗连乐成,不存在自己的设置成绩。
6总结
SQLServer2000数据库毗连妨碍成绩是一个十分庞大的成绩,联系关系到良多节点和常识点。不是一个或是几个全面的尽招就能够办理的。在处置过程当中,请求必定要有坚持冷清剖析和仔细查找的才能。先确认妨碍的种别,再体系的有企图的逐一条理,逐一节点的举行核对和确认,直至追根溯源,终极确认并办理成绩。
别的,除部分实例和服务的观点和内容SQLServer2000有异于SQLServer6.5,本文尽年夜部份内容一样也合用于SQLServer6.5。
这类操作的执行过程是,1)按照新的表定义建立一个临时表tmpa,2)将原表数据拷贝到临时表,3)将原始表改名tmpb,4)将tmpa改名为原表名,5)将tmpb删除。
作者:
山那边是海
时间:
2015-1-19 21:11
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
作者:
透明
时间:
2015-2-2 12:43
索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
作者:
第二个灵魂
时间:
2015-2-7 20:01
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
作者:
谁可相欹
时间:
2015-2-23 09:27
习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
作者:
蒙在股里
时间:
2015-3-7 06:35
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
作者:
小魔女
时间:
2015-3-14 14:09
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
作者:
不帅
时间:
2015-3-21 09:36
呵呵,这就是偶想说的
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2