SQL Versions:
Primary: SQL 2005 Standard
Mirror: SQL 2005 Standard
Witness: SQL 2005 Express
For reasons not related to SQL I had to rebuild the Witness server. When I attempted to bring the Witness server back into the mirror via the SQL mirror management tool I got the following error message:
The ALTER DATABASE command could not be sent to the remote server instance 'TCP://SQLWitness.domain.local:5022'. The database mirroring configuration was not changed. Verify that the server is connected, and try again. (Microsoft SQL Server, Error: 1456)
I looked at all of the default settings and everything looked good. I could telnet to port 5022 on both the Primary and the Mirror server but NOT the Witness server. This is an issue. Port 5022 should be available on the Witness for this to work. (Yes, I verified that there was no firewall blockage).
When I ran "SELECT name, port FROM sys.tcp_endpoints" against the Witness server I received the following. Notice that there is no mention of it's role as a witness. This is a problem.
Resolution:
I ran the following against the Witness server to recreate the endpoint:
Use Master
GO
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING (ROLE=WITNESS);
GO
Now when I run "SELECT name, port FROM sys.tcp_endpoints" I see the following:
Now this time I went into the SQL Server Mirror Manager I was able to add the Witness server with no problems.
Details:
http://msdn.microsoft.com/en-us/library/ms190456%28v=sql.90%29.aspx
No comments:
Post a Comment
Please leave a comment if you find this helpful. Thanks!