Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2008 Forums
 High Availability (2008)
 Mirroring with NLB

Author  Topic 

Levwinski
Starting Member

4 Posts

Posted - 2011-08-27 : 12:41:18
Hi all,

I am not a DBA so excuse my ignorance.

Two of our core applications are non-mirror aware and the connection strings are not accessible.

In light of this, I was going thinking the following configuration may work and was hoping to get ideas/opinions to avoid going down the wrong path while testing:

SQL 2008 R2 Primary with 3 NICs (SQL01)
-NIC 1 default network
-NIC 2 mirroring network
-NIC 3 nlb network

SQL 2008 R2 Mirror with 3 NICs (SQL02)
-NIC 1 default network
-NIC 2 mirroring network
-NIC 3 nlb network

SQL 2008 R2 Witness with 2 NICs (SQL03)
-NIC 1 default network
-NIC 2 mirroring network

My assumption is that if my connections are set up to connect to the shared nlb ip and nlb is setup up 100/0 in favour of SQL01, then all nlb traffic will go to SQL01 unless it fails. In the event of this failure, both Mirroring and nlb failovers will ensure that SQL02 is receiving nlb traffic and has also become primary.

Is this viable?

Regards.


robvolk
Most Valuable Yak

15732 Posts

Posted - 2011-08-27 : 13:08:56
I'm not sure it's viable, and even if the networking works as expected, mirroring by IP address is not recommended. In fact, it doesn't appear to be supported by the witness at all:

http://sqlblog.com/blogs/adam_machanic/archive/2007/06/13/database-mirroring-fqdns-are-your-friends.aspx

You'd have to point the DNS entry for SQL01 to the shared IP. You'd also need to ensure that a NIC failure or pulled cable affects the mirror failover correctly, as different failures may or may not warrant it.

I've not tested this kind of scenario myself (except the IP/FQDN requirement) so I could be wrong, but I don't think it's supported by SQL Server. Can you contact the vendor(s) for the applications and see if they can modify it to support mirroring?
Go to Top of Page

Levwinski
Starting Member

4 Posts

Posted - 2011-08-27 : 13:55:06
Hi, thanks for responding.

Sorry for the confusion, i was a bit careless with my last post when I wrote nlb ip.

I would make entries in dns for all the nics;
-nic 1 would have its listing as the machines name on the domain (i.e SQL01.domain.com, SQL02.domain.com)
-nic 2 would be given a suitable fqdn for the mirror endpoints (i.e. DBM1.domain.com, DBM2.domain.com)
-nic 3 would have a suitable fqdn that is pointed to the shared ip of the nlb connection (i.e. SQL.domain.com)
Go to Top of Page

robvolk
Most Valuable Yak

15732 Posts

Posted - 2011-08-27 : 17:27:15
The problem I see there is that in order for the app to work as desired, it would have to access the NLB FQDN, but the database mirroring would have to use the mirror FQDNs. That also may not be compatible with database mirroring since they don't match the actual machine name (this may not matter, as DNS aliases may be used for mirroring, but don't be surprised if it doesn't work like you expect)

Even if that does work, failure of 1 of the NICs could either initiate an inappropriate failover, or cause the app to connect to the wrong server. It comes down to two independent systems that have to fail over in a coordinated fashion, without a built-in mechanism to do so. If what you're trying to accomplish is strictly hardware redundancy, you'd be better off setting up those machines as a failover cluster and configuring SQL Server as a clustered instance. It's designed specifically to accomplish that.
Go to Top of Page

Levwinski
Starting Member

4 Posts

Posted - 2011-08-28 : 07:11:54
Hi,

We do not have shared storage so clustering is not an option for us.

I take your point completely about two independent systems and the quirks this may throw up (i.e. if the sql service stops, the db will failover but the nlb will keep sending traffic that way because the machine itself is still giving a heart beat - barring some method of service health check).

However, if there is no inherent incompatibility between mirroring and nlb on the same machine which is really what I was trying to find out, then despite its imperfections I am inclined to give it a test.

Thanks for your time.
Go to Top of Page

robvolk
Most Valuable Yak

15732 Posts

Posted - 2011-08-28 : 13:05:21
You can use 3rd party disk replication to keep independent disks in sync so that they appear as shared storage to a Windows cluster. My company has been using this product in a clustered environment and it works very well:

http://us.sios.com/products/steeleye-datakeeper-windows/

I can't speak to whether there is a genuine incompatibility between NLB and mirroring, I've just never heard of anyone using it like you describe.
Go to Top of Page

Levwinski
Starting Member

4 Posts

Posted - 2011-09-04 : 05:36:05
Hi,

I pursued your replication suggestion and after some testing found that DoubleTake was well suited for us.

Thanks again for your help.
Go to Top of Page
   

- Advertisement -