说说SQL Server 网络配置
打开Sql Server Configuration Manager,里面显示了SQL Server的网络配置,这些到底表示什么含义呢?
图一:MSSQLSERVER的协议
这些配置选项,其实就是为了保证客户端和数据库服务器能够正确的连接,以便接下来的一系列操作。下面我用一个假想的简化的例子,来解释解释。
假设我们编写了一个小程序,叫做test1.exe,运行后,就有了进程test.exe的进程,数据库服务器的数据库引擎也运行了,也就有了相应的进程sqlservr.exe。接下来我们需要test1访问数据库服务器引擎,也就是进程test1.exe访问进程sqlservr.exe,那么进程之间通信是如何进行的呢?
1.两个进程在一台电脑上
如果两个进程在同一台电脑上,也就是说test1.exe和sqlservr.exe在同一台电脑上运行,两个进程有自己独立的系统资源,两者是隔离的。但是可以开辟一个共享内存区,也就是shared memory,两个进程可以共享,进而实现进程间的通信。可见shared memory只能应用于客户端和服务器端在一台电脑的情况,不在一台电脑上,哪来的共享内存啊。
2.两个进程不在一台电脑上
(1)两个进程同属一个局域网:我们知道两个进程不在一台电脑上,所以无法使用shared memory了,这时可以通过named pipes来实现通信。named pipes是为局域网而开发的协议。
(2)两个进程属于不同的局域网:这个时候前面的办法都不行了,也就使用最常用的TCP/IP协议,来保证客户端和服务器连接。
总结:
(1)对于客户端和服务器都在一台电脑上,可以使用shared memory,速度最快,当然也可以采用named pipes和tcp/ip,相当于在同一台电脑上,两个进程非要绕一个弯再传送“秋波”,自然效率要低些。
(2)对于客户端和服务器在同一个局域网的:可以使用named pipes,速度最快,当然也可以通过TCP/IP,效率要低些。
(3)对于客户端和服务器不在同一个局域网的:只能只用TCP/IP了。
写到这里,你已经对图一中的协议了解了,你可能会说,干脆全打开算了,多省事,我建议不要这样,而是按需打开,为什么呢?第一:全打开增加了系统开销,你想啊,每开一个协议,都需要程序里面有个while循环来检测吧,自然开销多些(可能不是很明显)。第二:全打开安全性降低,试想,客户端会通过一扇门和服务器连接,干嘛还要开一些其他的门啊。
接下来,我们再想,客户端程序要和数据库引擎通信,可以有多种方式:shared memory,named pipes,TCP/IP,那么当都可用的时候,到底用哪个协议呢,总得有个顺序吧?确实是有一个顺序的,而且我们可以进行设置,通过客户端协议来配置,如下图:
里面列出了四个协议的默认顺序(VIA协议没怎么用过),shared memory默认是第一个,因为它速度最快,可以通过右键来改变顺序。如下图
好了,最后我们再说说“别名”中的设置,可以通过新建别名,来设定当客户端连接数据库服务器时,使用特定的协议,例如在同一台电脑上的客户端程序test.exe和数据库服务器程序sqlservr.exe,默认是采用shared memory连接,而且也最快,但是如果在别名里面设置为“连接数据库服务器程序用TCP/IP协议”,那么客户端和数据库服务器就只能通过TCP/IP来进行通信了,虽然速度慢些。
对于SQL Server配置管理器里面的东西,应该认识更清楚些了吧。
(完)
文档信息
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
- 本文为原创文章,欢迎转载,后续本博客会不断更新,因此请保留该文档信息。
- 本文地址:http://www.cnblogs.com/wuguanglei/p/4220814.html
说说SQL Server 网络配置的更多相关文章
- EntityFramework.SqlServer.dll 中发生 其他信息: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)
解决方案: 1.打开Sql server 管理配置器 或者在命令行输入:SQLServerManager10.msc 2.点击MSSQLSERVER的协议,在右侧的页面中选择TCP/IP协议启用 3. ...
- Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙
原文:Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙 原文出处:http://blog.csdn.net/dba_hu ...
- 未找到或无法访问服务器 请验证实例名称是否正确并且SQL Server 已配置为允许远程连接
无法连接到sql server 2008服务器 报下错误 其他信息 在与SQL Server建立连接时出现与网络相关的或特定于实例的错误 未找到或无法访问服务器请验证实例名称是否正确并且SQL ...
- 请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)
程序异常,错误信息:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (pro ...
- SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件
SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql ...
- Ubuntu server 网络配置中遇到的问题
Ubuntu server 网络配置中遇到的问题 图片中ip地址有可能和文字不符,请不要在意太多,知道原理即可 - 1.首先就是要配置ip地址 vim /etc/network/interfaces ...
- vmworkstation安装unbuntu server 网络配置:NAT模式
之前安装虚拟机测试环境的时候,习惯了使用桥接模式或者仅主机模式:今天偶然发现,其实NAT 模式的网络配置还是挺方便的. 在新建虚拟机的时候,选择网络模式为NAT,虚拟机创建完成之后,在vmworkst ...
- 使用IP连接SQL SERVER或者配置为连接字符串失败
使用IP连接SQL SERVER或者配置为连接字符串失败 情景一:当在webconfig文件中使用 <add key="ConnectionString" value=& ...
- System.Data.SqlClient.SqlException: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错)
A network-related or instance-specific error occurred while establishing a connection to SQL Server. ...
随机推荐
- 常用的sublime text插件(很爽哦)
个人比较懒,平时喜欢用webstorm,但是因为webstorm打开实在太慢了,并且太看设备,所以本人编辑简单的文件依然会选择使用sublime,虽然网上有很多关于此类插件的分享了,但是感觉都是片段, ...
- PHP isset() empty() isnull() 的区别
<? isset - 检测变量是否设置 注意: isset 检测变量是否设置,并且不是 NULL. 若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE: empty ...
- my links
如何解決MySQL 開動不到的問題 MySQL start fail 10 BEST JQUERY FILE UPLOAD PLUGINS WITH IMAGE PREVIEWS Spring MVC ...
- Struts 2
<默认>execute -- 默认方法success -- 默认返回值 <配置><package><package name="default&qu ...
- PHP图形操作之生成图像验证码
简单的验证码其实就是在图片中输出了几个字符,通过imagestring函数就能实现. 但是在处理上,为了使验证码更加的安全,防止其他程序自动识别,因此常常需要对验证码进行一些干扰处理,通常会采用绘制一 ...
- JavaScript笔试必备语句【转】
1. document.write( " "); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document- >html- >(head,bod ...
- ubuntu的vim模式
之前想修改一个文件的内容,居然发现之前的东西又随着时间在空气中淡忘了,所以取了网上的一些摘文. 1.vim #在命令行中输入vim,进入vim编辑器 2. i #按一下i键,下端显示 --INSERT ...
- Win8.1开机黑屏一段时间才能登录
最近发现开机后有一段时间黑屏过后才能进人登录界面,并且时间越来越长,网上查询了很多方法都没有效果,只能自己找了. 网上有一种方法提到用msconfig诊断判断或者安全启动来查看是否有黑屏,于是试了一下 ...
- CICS的几个常用命令
下面是CICS的几个常用命令,仅仅几个我也是刚刚使用CICS,慢慢积累. 1. cicscli /l 是查看启动的客户机守护程序,如果没有启动客户机守护程序,会提示如下信息:CCL8001I CICS ...
- 李洪强iOS经典面试题153- 补充
李洪强iOS经典面试题153- 补充 补充 有空就来解决几个问题,已经懒癌晚期没救了... UML 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模 ...