标签: network

在不同的网络上使用 SQL Server

我在 Windows2008R2 上安装了一堆 SQL Server。目前,每个 Windows 服务器都有两个 NIC,每个都连接到不同的网络。换句话说,每个服务器都出现在每个网络上。一个网络允许应用程序访问数据库,另一个网络旨在用于在服务器之间迁移大量数据而不影响应用程序使用的网络。

我有一份工作将大量数据从一个 SQL 服务器拉入另一个。我也希望那份工作能够利用第二个网络,但我很难过。

有没有办法告诉 SQL 在与另一台服务器通信时使用特定的网络设备?

谢谢!

sql-server-2008 sql-server network

5
推荐指数
1
解决办法
1565
查看次数

我在哪里可以找到 TdsInputBufferError 数字的含义?

我们在某些 SQL 服务器上遇到了一些偶发的连接错误。我做了一些搜索,发现了 SQL 2008 R2 中的 Ring Buffer 并找到了一些信息,但我不完全确定如何弄清楚。

运行查询

SELECT  CAST(record AS XML)
FROM    sys.dm_os_ring_buffers
WHERE   ring_buffer_type = 'RING_BUFFER_CONNECTIVITY'
Run Code Online (Sandbox Code Playgroud)

给了我一些结果,其中很有趣

<Record id="4" type="RING_BUFFER_CONNECTIVITY" time="461419385">
  <ConnectivityTraceRecord>
    <RecordType>LoginTimers</RecordType>
    <Spid>0</Spid>
    <SniConnectionId>40A403B2-B860-4877-A1D3-1FA7024356B7</SniConnectionId>
    <SniConsumerError>17830</SniConsumerError>
    <SniProvider>4</SniProvider>
    <State>11</State>
    <RemoteHost>&lt;local machine&gt;</RemoteHost>
    <RemotePort>0</RemotePort>
    <LocalHost />
    <LocalPort>0</LocalPort>
    <RecordTime>5/19/2012 16:29:23.831</RecordTime>
    <TdsBuffersInformation>
      <TdsInputBufferError>109</TdsInputBufferError>
      <TdsOutputBufferError>0</TdsOutputBufferError>
      <TdsInputBufferBytes>0</TdsInputBufferBytes>
    </TdsBuffersInformation>
    <LoginTimers>
      <TotalLoginTimeInMilliseconds>18010</TotalLoginTimeInMilliseconds>
      <LoginTaskEnqueuedInMilliseconds>0</LoginTaskEnqueuedInMilliseconds>
      <NetworkWritesInMilliseconds>0</NetworkWritesInMilliseconds>
      <NetworkReadsInMilliseconds>18010</NetworkReadsInMilliseconds>
      <SslProcessingInMilliseconds>0</SslProcessingInMilliseconds>
      <SspiProcessingInMilliseconds>0</SspiProcessingInMilliseconds>
      <LoginTriggerAndResourceGovernorProcessingInMilliseconds>0</LoginTriggerAndResourceGovernorProcessingInMilliseconds>
    </LoginTimers>
  </ConnectivityTraceRecord>
  <Stack>...</Stack>
</Record>
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是,我在哪里可以找到 TDS 错误号的含义。在这种情况下<TdsInputBufferError>109</TdsInputBufferError>

sql-server-2008-r2 network

5
推荐指数
1
解决办法
3840
查看次数

跨防火墙进行 Oracle 11g 复制所需的端口?

我们有两台需要通过 Oracle 流复制数据的 Oracle 11g 企业版服务器。但是,这两个服务器位于不受信任的域中,并通过 VPN 连接。连接的一端是瞻博网络防火墙,另一端是 TMG 防火墙。

我知道侦听器在端口 1521 上运行,但是应该打开哪些其他端口或端口范围以使 Oracle 复制正常工作?

replication oracle windows oracle-11g-r2 network

5
推荐指数
1
解决办法
3987
查看次数

存储 IPv4 和 IPv6 主机和网络

我必须将 IPv4/v6 地址和网络(CIDR 表示法)存储在 MySQL 数据库中。不幸的是,我不得不使用 Mysql。

所以,我正在寻找inetPostgreSql 类型的等效项

inet 类型在一个字段中包含 IPv4 或 IPv6 主机地址,以及可选的子网。子网由主机地址中存在的网络地址位数(“网络掩码”)表示。如果网络掩码为 32,地址为 IPv4,则该值不表示子网,仅表示单个主机。在 IPv6 中,地址长度为 128 位,因此 128 位指定唯一的主机地址。

此类型的输入格式为 address/y,其中 address 是 IPv4 或 IPv6 地址,y 是网络掩码中的位数。如果缺少 /y 部分,则 IPv4 的网络掩码为 32,IPv6 的网络掩码为 128,因此该值仅表示单个主机。在显示时,如果网络掩码指定了单个主机,则 /y 部分被抑制。

我知道 Mysql 5.6 INET_ATON(), INET_NTOA(), INET6_ATON(), INET6_NTOA()的以下功能。但我使用 Mysql 5.5 ......所以,忘记 INET6_xxxx

我也知道以下问题“存储 IP 地址”,但它不涉及网络 CIDR 表示法。

您将如何inet在 Mysql 5.5 中实现等效的类型?

  • 3 列:网络(2xBIGINT)、CIDR(TINYINT)?
  • 细绳 ?(@菲尔)

mysql database-design datatypes network

5
推荐指数
1
解决办法
4438
查看次数

客户端应用程序在 10 分钟不活动后与其连接的数据库断开连接

当使用 pgAdmin 4(实际上是其他几个充当数据库客户端的程序)时,与服务器的连接在闲置 10 或 15 分钟后断开。一杯咖啡和一个电话,您会收到一条类似于“抱歉,与数据库的连接已丢失。您希望我尝试重新连接吗?”的消息。

而且pgAdmin重新连接总是需要多次尝试,并且已经展开的对象树被折叠了......所以,这有点烦人。

pgAdmin 似乎没有与该行为相关的任何参数。(似乎有一些方法可以更改某些连接超时,但它们与 pgAdmin 在服务器连接时间过长时的行为方式有关)。

可以做些什么来避免 pgAdmin 与数据库断开连接?


披露:这实际上是一个“伪问题”。它是另一个的衍生产品,最终与失去连接无关......鉴于我已经有了一个答案,我(不是很谦虚地)认为值得“问”,以防万一回答对某人有帮助。

postgresql client pgadmin network connectivity

5
推荐指数
1
解决办法
2万
查看次数

SQL Server 2014/2016 (Win2K12R2) 和 Winsock 限制 - 如何应对?

我们遇到了与 SQL Server 的连接问题,经过一周的深入研究后,我能够将其确定为 Winsock 限制。这是描述:

  • 我们在 Windows Server 2012 R2 上运行了 SQL Server 2014(和 2016)Ent 安装。虚拟化与非虚拟化。我们在两种环境中都观察到了这个问题。
  • 客户端使用连接池(请不要建议打开它,这是问题的根源,我知道,但我对此无能为力
  • 客户端以极高的速度创建和关闭新连接:通常,单个客户端每秒关闭/打开 1500 个连接。每个 SQL Server 有 20-25 个客户端同时执行此操作。

现在,在工作日的某些时间点,我们会遇到流量突发,这实质上使新连接速率飙升至每秒 2500-3500 次连接尝试,并持续大约 2-3 秒。

这就是乐趣开始的时候:客户端在相同的 2-3 秒突发期间收到连接错误。

这就是我们在所有这些连接尝试的网络跟踪中看到的: 对 SYN 的 RST,ACK 响应

我们已经确认和所做的:

  1. 不是端口耗尽,无论是在服务器上还是在客户端上。
  2. 不是SQL Server 工作线程耗尽。以下是演示它的图表: 服务器线程和 SQL Worker 线程
  3. 这是不是一个TIME_WAIT问题,由客户以前的连接是优雅与关闭FIN, ACK- ACK- FIN, ACK-ACK序列。
  4. 连接未到达 SQL Server 并被 Winsock 拒绝。这是一个演示它的 PerfMon 图: 被 Winsock 拒绝的连接
  5. 我们尝试调整 NIC 设置和 Windows TCP/IP 功能设置(RSS、TSO、缩放窗口 - …

sql-server network windows-server connectivity

5
推荐指数
1
解决办法
1086
查看次数

由于未知的网络错误 59,完全备份到网络失败

我最近看到未知 Netowrk 错误 59,它将完整备份保存到某些服务器上的文件共享。备份发生在不同的时间。

目前使用的是Ola Halengren脚本,使用的sql server版本为2012、2014企业版。

我看到有人建议在 HKLM\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters 中创建名称为“Sesstimeout”且值为 360 的 DWORD。

我的问题是我们应该在目标服务器(文件共享)还是 sql server 所在的服务器上创建它

sql-server backup network sql-server-2012 ola-hallengren

5
推荐指数
2
解决办法
8248
查看次数

命名实例的静态 DAC 端口

使用 SQL 2016 企业版

默认实例将在 1433 上侦听,DAC 端口将在 TCP 1434 上侦听。SQL 浏览器将在 UDP 1434 上侦听。任何后续命名的实例都将从 49152 到 65535 范围内的窗口动态分配端口,它们的 DAC 端口也是如此。对这些命名实例的连接请求(包括 DAC)将调用 SQL Browser 并告知端口号。

您可以使用 SQL Server 配置工具将命名实例的端口更改为静态端口号,但没有将 DAC 端口设置为静态端口号的选项。

当我向网络团队建议我希望为远程 DAC 连接开放整个端口范围时,他们并不热情。

有没有办法将 DAC 端口设置为命名实例的已知静态端口号?

sql-server network connectivity dac

5
推荐指数
1
解决办法
817
查看次数

分析 SQL Server 网络 I/O

我从客户那里得到的一个常见请求是帮助找出哪些查询或客户对 SQL Server 使以太网链路饱和的贡献最大。

理想情况下,我会查看一些计数器或 DMV,显示按查询、客户端、应用程序、数据库等聚合的网络 I/O。

由于似乎没有直接的方法来做到这一点,作为替代,我通常会查看 sys.dm_exec_query_stats 中的 *_rows 列(我认为这些列仅存在于 2008 R2+ 中),并查找似乎涉及 BLOB。

有没有更好的方法来解决这个问题?

performance sql-server network

4
推荐指数
1
解决办法
1万
查看次数

SQLdeveloper 断开连接后,Oracle 是否会运行查询以完成?

查询是一个

CREATE TABLE t as SELECT .....; 
Run Code Online (Sandbox Code Playgroud)

陈述。断开连接后,我能否可靠地指望 Oracle 完成此操作?

重新连接后,如何查看此查询的状态?

oracle oracle-sql-developer network

4
推荐指数
1
解决办法
5960
查看次数