Sample Header Ad - 728x90

SQL Server Multi-Instance IP Configuration - Service Doesn't Start

4 votes
1 answer
2134 views
I have run into an issue whilst configuring a multi-instance SQL Server when assigning a specific IP address to the fist instance. ### Dedicated IP Setup The steps I perform to configure a single instance to a dedicated IP address are: 1. Open SQL Server Configuration Manager (SSCM) 2. Navigate down the tree to: SQL Server Configuration Manager (local) +-- SQL Server Network Configuration +-- Protocols for 3. In the right pane I then doubl-click on **TCP/IP** which open the **Properties of TCP/IP** in the tab **Protocol** 4. I then ensure that **Enabled** is set to **yes** and the option for **Listen All** is set to **No**. 5. I switch tabs into the **IP Addresses** and ensure that - **Enabled** is set to **No** for all IPv4 and IPv6 addreses, except for the IP address that I want to assign to this instance. For this IP address I set the setting to **Yes**. - The **TCP Dynamic Ports** is empty for all IP addresses. - For the IP address that I want to assign to this instance I assign the **TCP port 1433**. 6. I then close all windows and SSCM displays the standard message: --------------------------- Warning --------------------------- Any changes made will be saved; however, they will not take effect until the service is stopped and restarted. --------------------------- OK --------------------------- 7. I restart the specific instance and it will generally allow connections to my instance via the dedicated IP address. 8. I test the instance is listening on the given IP address and port with: c:\> netstat -abon > TCP 10.58.212.112:1433 0.0.0.0:0 LISTENING 2172 > [sqlservr.exe] Above results are from a working server So far so good. I have done this for the umpteenth time and never had any issues. ### Case Two days ago the SQL Server service for a freshly configured instance on a **test** server wouldn't start after configuring the 10.58.194.5 address for the instance. I tried the following steps to fix the "broken" **test** instance: 1. Repair Shared Tools 2. Repair Instance 3. Deinstall and Reinstall SQL Server 4. Run a ProcMon to figure out where things were broken. But nothing has helped so far. The relevent output from the ERRORLOG file is as follows: > 2021-12-17 08:00:03.76 spid17s Error: 26024, Severity: 16, State: 1. > 2021-12-17 08:00:03.76 spid17s Server failed to listen on 10.58.194.5 1433. Error: 0x2741. > To proceed, notify your system administrator. > 2021-12-17 08:00:03.76 spid17s Error: 17182, Severity: 16, State: 1. > 2021-12-17 08:00:03.76 spid17s TDSSNIClient initialization failed with error 0x2741, status code 0xa. > Reason: Unable to initialize the TCP/IP listener. > 2021-12-17 08:00:03.76 spid17s Error: 17182, Severity: 16, State: 1. > 2021-12-17 08:00:03.76 spid17s TDSSNIClient initialization failed with error 0x2741, status code 0x1. > Reason: Initialization failed with an infrastructure error. Check for previous errors. > 2021-12-17 08:00:03.76 spid17s Error: 17826, Severity: 18, State: 3. > 2021-12-17 08:00:03.76 spid17s Could not start the network library because of an internal error in the network library. > To determine the cause, review the errors immediately preceding this one in the error log. > 2021-12-17 08:00:03.76 spid17s Error: 17120, Severity: 16, State: 1. > 2021-12-17 08:00:03.76 spid17s SQL Server could not spawn FRunCommunicationsManager thread. > Check the SQL Server error log and the operating system error log for information about possible related problems. This is the first time that I am unable to configure/set a SQL Server instance to a specific IP address. ### Event Log Entries The following errors are logged in the Application Event Log of Windows when trying to start the service (newest first): > Level | Date / Time | Source | Event ID > Error | 17.12.2021 11:00:45 | MSSQL$ | 17120 > Error | 17.12.2021 11:00:45 | MSSQL$ | 17826 > Error | 17.12.2021 11:00:45 | MSSQL$ | 17182 > Error | 17.12.2021 11:00:45 | MSSQL$ | 17182 > Error | 17.12.2021 11:00:45 | MSSQL$ | 26024 These Event IDs resemble the information from the ERRORLOG. Additional entry in the System Event Log is: > Level | Date / Time | Source | Event ID > Error | 17.12.2021 11:00:45 | Service Control Manager | 7024 The details being: > The service "SQL Server ()" has been stopped with the following error: > The requested address is invalid in this context. The XML details being: > - > - > > 7024 > 0 > 2 > 0 > 0 > 0x8080000000000000 > > 15418 > > > System > SERVER.DOMAIN.TLD > > > - > SQL Server () > %%10049 > 4D005300530051004C00240041004C004C00470045004D00450049004E000000 > > ### Network Interface Card Configuration There is only one NIC configured on the **test** server. And it is a virtual one at that. The name is **Ethernet0** and the type is **Ethernet Adapter for vmxnet3**. The network is configured as follows: > IP address: 10.58.194.4 > Subnet mask: 255.255.255.192 > Standard gateway: 10.58.194.2 The additional IP addresses that we are using for the SQL Server instances are: > 10.58.194.5 / 255.255.255.192 > 10.58.194.6 / 255.255.255.192 > 10.58.194.7 / 255.255.255.192 > 10.58.194.28 / 255.255.255.192 > 10.58.194.29 / 255.255.255.192 The single NIC is configured to accept connections for the six IP addresses. ### Question Does anybody have an idea how I can fix this problem? ----- ### Additional Information via Comments If I set the **Listen All** option to **Yes** in the TCP/IP configuration, then the instance will start. But this is not what I am seeking. I am unable to connect to the instance using the alias or the IP address. The sqlserver.exe process is then no longer listening on port 1433. After contemplating my observation that _the sqlserver.exe process is then no longer listening on port 1433_ it seems like the server is unable to bind the IP address to port 1433 for my first instance. After configuring **Listen All** to **yes** and the IP address to have port 1433 , then sqlserver.exe doesn't listen on any IP address (0.0.0.0) for port 1433. It's like the configuration setting for the input box for the port number is corrupt. SQL Server ERRORLOG displays: > 2021-12-17 16:27:36.35 spid17s Error: 26058, Severity: 16, State: 1. > 2021-12-17 16:27:36.35 spid17s A TCP provider is enabled, but there are no TCP listening ports configured. > The server cannot accept TCP connections.` ---- ### Side Notes I was able to set up and configure a **productive** server, that I received the same day, to use a specific IP without any issues. The only difference was maybe that the six IP addresses I received for the **productive server**, were in **sequential order** like this: > 10.xx.xxx.111 / 255.255.255.0 -- server > 10.xx.xxx.112 / 255.255.255.0 -- instance_1 > 10.xx.xxx.113 / 255.255.255.0 -- instance_2 > 10.xx.xxx.114 / 255.255.255.0 --... > 10.xx.xxx.115 / 255.255.255.0 > 10.xx.xxx.116 / 255.255.255.0
Asked by John K. N. (18863 rep)
Dec 17, 2021, 08:51 AM
Last activity: Dec 23, 2021, 07:22 AM