The remote server is not defined as a subscription server.

Details
Product: SQL Server
Event ID: 14010
Source: MSSQLServer
Version: 10.0
Component: SQL Server Database Engine
Message: The server ‘%s’ is not defined as a subscription server.
   
Explanation

Replication expects all servers in a topology to be registered using the computer name with an optional instance name (in the case of a clustered instance, the SQL Server virtual server name with the optional instance name). For replication to function properly, the value returned by SELECT @@SERVERNAME for each server in the topology should match the computer name or virtual server name with the optional instance name.

Replication is not supported if you have registered any of the SQL Server instances by IP address or by Fully Qualified Domain Name (FQDN). If you have any of the SQL Server instances registered by IP address or by FQDN in SQL Server Management Studio when you configured replication, this error could be raised.

   
User Action

Verify that all SQL Server instances in the topology are registered properly. If the network name of the computer and the name of the SQL Server instance differ, either:

  • Add the SQL Server instance name as a valid network name. One method to set an alternative network name is to add it to the local hosts file. The local hosts file is located by default at WINDOWS\system32\drivers\etc or WINNT\system32\drivers\etc. For more information, see the Windows documentation.

    For example, if the computer name is comp1 and the computer has an IP address of 10.193.17.129, and the instance name is inst1/instname, add the following entry to the hosts file:

    10.193.17.129 inst1

  • Remove replication, register each SQL Server instance, and then reestablish replication. For information about removing replication, see Removing Replication. If the value of @@SERVERNAME is not correct for a non-clustered instance, follow these steps:

    sp_dropserver ”, ‘droplogins’
    go
    sp_addserver ”, ‘local’
    go

    After you execute the sp_addserver (Transact-SQL) stored procedure, you must restart the SQL Server service for the change to @@SERVERNAME to take effect.

    If the value of @@SERVERNAME is not correct for a clustered instance, you must change the name using Cluster Administrator. For more information, see Failover Clustering.

   
   
Version: 9.0
Component: SQL Server Database Engine
Message: The server ‘%s’ is not defined as a subscription server.
   
Explanation

Replication expects all servers in a topology to be registered using the computer name with an optional instance name (in the case of a clustered instance, the SQL Server virtual server name with the optional instance name). For replication to function properly, the value returned by SELECT @@SERVERNAME for each server in the topology should match the computer name or virtual server name with the optional instance name.

Replication is not supported if you have registered any of the SQL Server instances by IP address or by Fully Qualified Domain Name (FQDN). If you have any of the SQL Server instances registered by IP address or by FQDN in SQL Server Management Studio when you configured replication, this error could be raised.

   
User Action

Verify that all SQL Server instances in the topology are registered properly. If the network name of the computer and the name of the SQL Server instance differ, either:

  • Add the SQL Server instance name as a valid network name. One method to set an alternative network name is to add it to the local hosts file. The local hosts file is located by default at WINDOWS\system32\drivers\etc or WINNT\system32\drivers\etc. For more information, see the Windows documentation.

    For example, if the computer name is comp1 and the computer has an IP address of 10.193.17.129, and the instance name is inst1/instname, add the following entry to the hosts file:

    10.193.17.129 inst1

  • Remove replication, register each SQL Server instance, and then reestablish replication. For information about removing replication, see Removing Replication. If the value of @@SERVERNAME is not correct for a non-clustered instance, follow these steps:

    sp_dropserver ”, ‘droplogins’
    go
    sp_addserver ”, ‘local’
    go

    After you execute the sp_addserver (Transact-SQL) stored procedure, you must restart the SQL Server service for the change to @@SERVERNAME to take effect.

    If the value of @@SERVERNAME is not correct for a clustered instance, you must change the name using Cluster Administrator. For more information, see Failover Clustering.

   
   
Version: 8.0
Component: SQL Engine
Message: The remote server is not defined as a subscription server.
   
Explanation
Replication assumes that the local server name, the value returned by SELECT @@servername, is correctly configured to correspond to the computer name or the SQL virtual server name. If the value returned by @@servername is not the same as the computer name plus the optional instance name or the SQL virtual server name plus the optional instance name, you may see this error.

Replication expects all servers in the topology to be registered by the computer name plus the optional instance name or, in the case of a clustered instance, the SQL virtual server name (SQL Network Name) plus the optional instance name. Replication is not supported and may not work if you have registered any of the SQL Server instances by IP address or by Fully Qualified Domain Name (FQDN). If you registered any of the SQL Server instances by IP address or by FQDN in the Enterprise Manager you used to configure replication, you may see the above error.

   
User Action
For each server involved in this replication topology, verify that the value of @@SERVERNAME is correct. Execute “SELECT @@SERVERNAME” and “exec master..xp_cmdshell ‘set computername'”. When ‘set computername’ is executed from Query Analyzer or OSQL for a clustered instance, it returns the SQL virtual server name rather than the node name, and the SQL virtual server name is the value needed for replication.

  • For a nonclustered default instance, “SELECT @@SERVERNAME” should return the same value as “exec master..xp_cmdshell ‘set computername'”.
  • For a nonclustered named instance, “SELECT @@SERVERNAME” should return the value as “exec master..xp_cmdshell ‘set computername'” plus “\” plus the name of the instance.
  • For a clustered default instance, “SELECT @@SERVERNAME” should return the same value as “exec master..xp_cmdshell ‘set computername'”.
  • For a clustered named instance, “SELECT @@SERVERNAME” should return the value as “exec master..xp_cmdshell ‘set computername'” plus “\” plus the name of the instance.

If the value of @@SERVERNAME is not correct for a nonclustered instance, follow these steps:

sp_dropserver ‘{old_name}’, ‘droplogins’
go
sp_addserver ‘{new_name}’, ‘local’
go

Note: After you run the sp_addserver stored procedure, you must restart the SQL Server service for the change to @@SERVERNAME to take effect.

If the value of @@SERVERNAME is not correct for a clustered instance, then you must uninstall and reinstall the clustered instance to correct the name.

Verify that all SQL Server instances used as a Subscriber, Publisher, and/or Distributor are listed in the replication properties by their computer name or their SQL virtual server name. If they are not, you will need to remove replication, register each SQL Server instance in your local Enterprise Manager by computer name or SQL virtual server name, then reestablish replication.

For more information, see these Microsoft Knowledge Base articles: 321822 and 818334.

Related:

Leave a Reply