标签: network

Oracle 数据库机的网络设计注意事项

随着 Oracle 工程系统的引入,DBA 在某种程度上更接近于基础设施设计决策,并且期望至少对数据库的网络设计要求有一些意见。至少这是我发现自己的情况:)

部署 ODA 进行测试后,我发现自己采用了当前设置:

系统控制器 0 具有连接到典型边缘交换机 Catalyst 2960 系列的公共绑定接口 (bond0)。管理接口 (bond1) 连接到相同类型的第二个边缘交换机。

类似地,系统控制器 1 的公共接口连接到第二个交换机,而管理接口连接到第一个交换机。

这样,如果其中一个开关出现故障,操作员将能够通过公共界面或管理界面到达每个系统控制器以促进诊断。

在 Cisco 端,为 ODA 的 4 个绑定接口配置了 EtherChannel 组。这两个交换机单独连接到网络的其余部分,两者之间没有直接链接。

乍一看,这确实是一个合理的设计,但我对不同故障场景的思考越多,我似乎提出的问题就越多。

考虑到这些边缘型交换机本身并不是冗余的,集群能够处理由于电源故障导致的一台交换机不可用,或者一台交换机无法转发数据包似乎是相当重要的。

数据库客户端(在本例中为 Zend 服务器应用程序服务器)每个都类似地通过绑定接口连接到两个交换机中的一个。这就带来了一些关于负载均衡的问题:我对11gR2 RAC的理解,简单的连接到SCAN地址,很可能让客户端走很长一段路到主网,然后通过另一个交换机回来,这几乎不能考虑要非常有效率。

如果交换机出现故障或停止转发数据包,会发生什么情况?连接会通过 SCAN 找到可访问的 VIP 侦听器吗?RAC 是否会以某种方式检测网络故障并将 SCAN 和 VIP 移动到具有工作且可访问的公共接口的系统控制器?老实说,我看不出它会如何。

虽然客户端在故障转移场景中通过核心网络并返回很长一段路是可以接受的,但在正常生产中避免它肯定会很好。

我确信 Oracle 对这一切应该如何协同工作有一个非常清晰的认识,但恐怕我并没有那么清楚地看到这一切。

边缘级/非冗余交换机是否可以实现完全冗余?我们能否以某种方式对客户端连接在生产和故障转移情况下的路由位置添加一些控制?也许有一种很好的方法可以将两台交换机互连,以允许一台交换机上的客户端和另一台上的数据库侦听器之间直接进行通信?

在这一点上,我正在寻找应应用于典型高可用性 ODA 实现的任何最佳实践和基本网络设计注意事项。

希望这对任何面临为其 ODA 制定网络设计决策的 DBA 有用:)

更新:

ODA 在主动备份配置中配置了绑定。我认为这可能允许设置绑定上的每个接口都连接到不同的交换机,而无需任何交换机端配置。

有谁知道是不是这种情况?

[root@oma1 ~]# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: …
Run Code Online (Sandbox Code Playgroud)

oracle oracle-11g-r2 network rac oracle-database-appliance

7
推荐指数
1
解决办法
3817
查看次数

对链接服务器的某些查询的通信链接失败

当对链接服务器运行一些查询时,我在 SSMS(服务器安装了 Windows Server 2008 和 Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1)中看到以下错误,特别是长时间运行的查询。

跨链接服务器从表中进行简单选择工作正常。这是一个新问题,当已经工作多年的 SP 开始出现故障时,人们注意到了这个问题。

我在服务器上运行了 Wireshark 捕获,捕获到链接服务器主机上端口 1433 的数据包。在捕获的尾部,我看到许多 (10) 个 TCP Keep-Alives 被发出(在关于错误校验和的消息之后),然后是一个 RST 数据包。RST 数据包与以下返回给客户端的错误相关。

我们网络上还有其他数据库服务器,其中链接服务器的配置相同,不会出现此问题。

我找到了一些文章,例如thisthis。我们正在使用受牵连的 Broadcom NIC。烟囱卸载状态设置在服务器上启用。

我们将尝试禁用。关于故障排除的其他想法将不胜感激。

OLE DB provider "SQLNCLI10" for linked server "myServer" returned message "Protocol error in TDS stream".
OLE DB provider "SQLNCLI10" for linked server "myServer" returned message "Communication link failure".
Msg 65535, Level 16, State 1, Line 0
Session Provider: Physical …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 network linked-server

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

更改 SQL Server 2008 R2 的 IP 地址

我想知道在更改SQL Server 2008 R2盒子的IP地址之前是否有任何危险或相关预防措施。

我们使用 Windows Server 2008 R2 和 SQL Server 2008 R2 构建了一台虚拟 PC。这台机器的目的是运行一个作业来恢复备份文件(由不同的服务器复制),操作它,再次备份它,然后将它复制到其他服务器。我们已经在我们的测试/开发 DMZ 中运行了几次,现在正在考虑部署。

最简单的选择是重新 IP。服务器名称将保持不变。我的问题是一位同事建议这是不安全的(重新 ip 一个 SQL Server)。我的问题是

a) 对于我正在使用的操作系统和 SQL,这是真的吗?(赢得 2008 R2 和 SQL 2008 R2?)

b) 对于 OS 和/或 SQL 的任何其他组合是否如此?

c) 在准备过程中,我们有什么特别需要做的吗?

到目前为止,我的研究表明它会很好,但我比那些社交 MSDN 人员更信任 DBA StackExchange 的人。

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/9844e0c1-b57e-4e0c-88cf-7cb51cc55e07/change-sql-server-ip-address

http://www.sqlservercentral.com/Forums/Topic1164450-391-1.aspx

sql-server sql-server-2008-r2 network tcpip

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

能否将 SQL Server 配置为通过单独的 NIC 备份到网络共享?

我们正在将我们的 SQL Server 实例备份到网络共享,但我们的网络管理员想要尝试通过不同的网段从备份中转移带宽。我很好奇是否可以将 SQL Server 配置为通过辅助 NIC 运行所有备份?

我们的大多数服务器都是虚拟化的(因此提供 NIC 不是问题),并且我们的整个基础架构都在 SQL Server 2008 R2、2012 和 2014 上运行。

sql-server backup sql-server-2008-r2 network

7
推荐指数
1
解决办法
860
查看次数

具有高可用性组的多宿主 SQL Server

我们有两台服务器(SQL-ATL01、SQL-ATL02)组成故障转移群集,每台服务器都作为 SQL Server 高可用性组 (HAG) 的一部分运行。每个服务器有两个网卡。一个是直接连接到另一台服务器的 10Gbit 卡,用于同步 192.168.99.x 子网上的 HAG。另一个是 1Gbit 卡,用于将 DB 服务器连接到交换机,以便与 10.0.0.x 子网上的应用服务器进行通信。侦听器指向 192.168.99.x 子网。

我们想在集群的另一个物理位置添加第三台服务器 (SQL-NYC01) 并将其作为 HAG 的异步副本部分运行,但 VPN 仅路由 1Gbit 网络子网上的流量。

有没有办法设置故障转移集群和高可用性组告诉它:

  • 通过 192.168.99.x 发送 SQL-ATL01 <--> SQL-ATL02 的同步副本流量
  • 在 10.0.0.x 上为 (SQL-ATL01, SQL-ATL02) <--> SQL-NYC01 发送异步副本流量

或者我们是否必须让所有副本流量在同一个 IP 地址/子网上进出?

sql-server network high-availability

7
推荐指数
1
解决办法
203
查看次数

是否需要为具有静态 TCP 的命名实例打开 UDP 端口 1434?

我构建了一个在静态端口 50101 上运行的命名实例。

网络人员已打开防火墙上的端口以允许传入连接。我也要求他们打开 UDP 端口 1434,因为我相信 SQL 浏览器服务在此端口上运行,并且需要将命名实例的正确端口传递回请求连接。即使命名实例在静态 TCP 端口上运行。

那是对的吗?

SQL Browser / UDP 1434 不只是用于动态端口,对吧?

如果连接字符串中的端口不是明确的,它需要打开吗?

真的需要结束这场争论!

议员

sql-server network dynamic-ports

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

连接字符串的 CNAME 别名是个好主意吗?

为了非常灵活并更轻松地将数据库移动到不同的服务器,我们提出了为每个数据库使用别名的想法。因此,通过简单地更改 DNS 条目,我们可以将所有查询路由到不同的数据库服务器,而无需更改连接字符串或重新部署相应的客户端应用程序。

澄清:

每个数据库我们都会有一个别名。因此,如果将数据库移动到不同的服务器,只需更改其 DNS 别名。

例如:

  • db1-alias.mydomain.com 指向某个随机服务器上的 db1。
  • db2-alias.mydomain.com 指向在其他一些随机服务器上执行 db2。

因此,假设 db1 已从 server1 移至 server2,则无需更改连接字符串。只需要更改 DNS 别名条目,转发到 server2 而不是 server1。

这有什么已知的缺点吗?

sql-server network dns connections

6
推荐指数
1
解决办法
1145
查看次数

用于 ping SQL 服务器的命令或查询

我在一个非常高的安全域上有两台 Windows 7 机器,一台充当服务器,另一台充当客户端。

每个盒子都有一个 SQL Server Express 2005 数据库和应用程序“A”,但是我只使用其中一个来存储数据(服务器),客户端计算机仅使用应用程序“A”和一个系统数据源来连接到服务器机器数据库。

我的问题是应用程序“A”表现得很有趣,我想看看数据从服务器计算机数据库到达客户端计算机需要多长时间。

我通常只是从客户端 ping 服务器,但由于这个高安全域上的 GPO 限制,我无法...

显然存在防火墙例外,允许从服务器 -> 客户端进行连接。我可以从客户端计算机运行查询来提供响应时间/任何其他有用的数据吗?

sql-server-2005 network sql-server-express connectivity

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

存储 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
查看次数

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
查看次数