|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
目前的方案是用mysqlbinlog工具,增加一个Flashback参数,输出结果为一个新的binlog文件――姑且叫做flashbacklog,这个flashbacklog顺序执行,可制定某张表和执行到哪个pos,来实现数据库的闪回。server|毛病|办理经由过程以上几个方面的反省,毛病1产生的缘故原由基础上能够被扫除。上面我们再具体形貌怎样来办理毛病2。
当用户实验在查询剖析器内里利用sa来毗连SQLServer,大概在企业办理器内里利用sa来新建一个SQLServer注册时,常常会碰到如所示的毛病信息。该毛病发生的缘故原由是因为SQLServer利用了"仅Windows"的身份考证体例,因而用户没法利用SQLServer的登录帐户(如sa)举行毗连。办理办法以下所示:
1、在服务器端利用企业办理器,而且选择"利用Windows身份考证"毗连上SQLServer;
2、睁开"SQLServer组",鼠标右键点击SQLServer服务器的称号,选择"属性",再选择"平安性"选项卡;
3、在"身份考证"下,选择"SQLServer和Windows"。
4、从头启动SQLServer服务。
在以上办理办法中,假如在第1步中利用"利用Windows身份考证"毗连SQLServer失利,那末我们将碰到一个两难的地步:起首,服务器只同意了Windows的身份考证;其次,即便利用了Windows身份考证仍旧没法毗连上服务器。这类情况被抽象地称之为"本人把本人锁在了门外",由于不管用何种体例,用户均没法利用举行毗连。实践上,我们能够经由过程修正一个注册表键值来将身份考证体例改成SQLServer和Windows夹杂考证,步骤以下所示:
1、点击"入手下手"-"运转",输出regedit,回车进进注册表编纂器;
2、顺次睁开注册表项,扫瞄到以下注册表键:
[HKEY_LOCAL_MACHINEOFTWAREMicrosoftMSSQLServerMSSQLServer]
3、在屏幕右方找到称号"LoginMode",双击编纂双字节值;
4、将原值从1改成2,点击"断定";
5、封闭注册表编纂器;
6、从头启动SQLServer服务。
此时,用户能够乐成地利用sa在企业办理器中新建SQLServer注册,可是仍旧没法利用Windows身份考证形式来毗连SQLServer。这是由于在SQLServer中有两个缺省的登录帐户:BUILTINAdministrators和<呆板名>Administrator被删除。要恢复这两个帐户,可使用以下的办法:
1、翻开企业办理器,睁开服务器组,然后睁开服务器;
2、睁开"平安性",右击"登录",然后单击"新建登录";
3、在"称号"框中,输出BUILTINAdministrators;
4、在"服务器脚色"选项卡中,选择"SystemAdministrators";
5、点击"断定"加入;
6、利用一样办法增加<呆板名>Administrator登录。
以下注册表键
HKEY_LOCAL_MACHINEOFTWAREMicrosoftMSSQLServerMSSQLServerLoginMode
的值决意了SQLServer将接纳何种身份考证形式。该值为1,暗示利用Windows身份考证形式;该值为2,暗示利用夹杂形式(Windows身份考证和SQLServer身份考证)。
看完怎样办理前两个毛病的办法以后,让我们来看一下如所示的第三个毛病。
假如碰到第三个毛病,一样平常而言暗示客户端已找到了这台服务器,而且能够举行毗连,不外是因为毗连的工夫年夜于同意的工夫而招致堕落。这类情形一样平常会产生在当用户在Internet上运转企业办理器来注册别的一台一样在Internet上的服务器,而且是慢速毗连时,有大概会招致以上的超时毛病。有些情形下,因为局域网的收集成绩,也会招致如许的毛病。
要办理如许的毛病,能够修正客户真个毗连超时设置。默许情形下,经由过程企业办理器注册别的一台SQLServer的超时设置是4秒,而查询剖析器是15秒(这也是为何在企业办理器里产生毛病的大概性对照年夜的缘故原由)。详细步骤为:
1、在企业办理器中,选择菜单上的"工具",再选择"选项";
2、在弹出的"SQLServer企业办理器属性"窗口中,点击"初级"选项卡;
3、在"毗连设置"下的"登录超时(秒)"右侧的框中输出一个对照年夜的数字,如20。
查询剖析器中也能够在一样地位举行设置。
2、使用程序毗连失利
以上的三种毛病信息都是产生在SQLServer自带的客户端工具中,在使用程序中我们也会碰到相似的毛病信息,比方:
MicrosoftOLEDBProviderforSQLServer(0x80004005)
[DBNETLIB][ConnectionOpen(Connect()).]SpecifiedSQLservernotfound.
MicrosoftOLEDBProviderforSQLServer(0x80004005)
用户sa登录失利。缘故原由:未与信托SQLServer毗连相干联。
MicrosoftOLEDBProviderforODBCDrivers毛病80004005.
[Microsoft][ODBCSQLServerDriver]超时已过时.
起首,让我们来具体看以下的表示图来懂得一下利用ODBC和利用OLEDB毗连SQLServer有甚么分歧的地方。
从上图中,我们能够看出在实践利用中,使用程序创立和利用各类ADO工具,ADO工具框架挪用享用的OLEDB供应者。为了会见SQLServer数据库,OLEDB供应了两种分歧的办法:用于SQLServer的OLEDB供应者和用于ODBC的OLEDB供应者。这两种分歧的办法对应于两种分歧的毗连字符串,尺度的毗连字符串写法以下所示:
1、利用用于SQLServer的OLEDB供应者:
利用SQLServer身份考证:
oConn.Open"Provider=sqloledb;"&_
"DataSource=myServerName;"&_
"InitialCatalog=myDatabaseName;"&_
"UserId=myUsername;"&_
"Password=myPassword"
利用Windows身份考证(信托毗连):
oConn.Open"Provider=sqloledb;"&_
"DataSource=myServerName;"&_
"InitialCatalog=myDatabaseName;"&_
"IntegratedSecurity=SSPI"
2、利用用于ODBC的OLEDB供应者(不利用ODBC数据源):
利用SQLServer身份考证:
oConn.Open"Driver={SQLServer};"&_
"Server=MyServerName;"&_
"Database=myDatabaseName;"&_
"Uid=myUsername;"&_
"Pwd=myPassword"
利用Windows身份考证(信托毗连):
oConn.Open"Driver={SQLServer};"&_
"Server=MyServerName;"&_
"Database=myDatabaseName;"&_
"Trusted_Connection=yes"
3、利用用于ODBC的OLEDB供应者(利用ODBC数据源):
oConn.Open"DSN=mySystemDSN;"&_
"Uid=myUsername;"&_
"Pwd=myPassword"
假如碰到毗连失利的情形,我们只需依照一中所示的办法,分离程序中的毗连字符串举行反省,基础都能失掉办理。别的,另有以下几个要注重的中央:
1、设置ODBC数据源时,点击"客户端"设置选项可让我们指定毗连利用的收集库、端标语等属性,以下图所示:
2、假如碰到毗连超时的毛病,我们能够在程序中修正Connection工具的超时设置,再翻开该毗连。比方:
<%
SetConn=Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={SQLServer};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase"
Conn.Properties("ConnectTimeout")=15以秒为单元
Conn.openDSNtest
%>
3、假如碰到查询超时的毛病,我们能够在程序中修正Recordset工具的超时设置,再翻开了局集。比方:
DimcnAsNewADODB.Connection
DimrsAsADODB.Recordset
...
cmd1=txtQuery.Text
Setrs=NewADODB.Recordset
rs.Properties("CommandTimeOut")=300
一样以秒为单元,假如设置为0暗示无穷制
rs.Opencmd1,cn
rs.MoveFirst
...
3、小结
本文针对年夜部分用户在利用SQLServer过程当中罕见的毗连失利的毛病,重点会商了在利用SQLServer客户端工具和用户开辟的使用程序两种情形下,怎样诊断并办理毗连失利的毛病。看过本文今后,信任每个读者城市对SQLServer的毗连事情道理、身份考证体例和使用程序开辟等有一个较为周全而深切的毗连。本文中一切的测试大概示例均在Windows2000AdvancedServer+SQLServer2000企业版上经由过程。
虽然可以将一个droptable语句转换成先delete再删表,性能却会降低很多。这里我们用上面说道的另外一种可用数据:“操作前数据备份”。 |
|