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 2005 Forums
 High Availability (2005)
 Can it be done?

Author  Topic 

coolerbob
Aged Yak Warrior

841 Posts

Posted - 2007-05-09 : 10:31:15
Background Info:

We have two buildings next door to each other.
Currently we have a 64-bit Database Server with 16 gig of memory in one building.
We use a program called Double-Take to do disk level replication to another Server with similar hardware in the other building [
over a 1 gigabit (10 times as fast as your standard Ethernet) cable].
The idea is that if one building "goes down", the other one can keep things going.

Problem is, the second server is passive - all the services are stopped. All that hardware of the second server is going to waste. There's also no seamless switchover in the event of a disaster. The Services would have to be started on the passive server and the cache will be cold. No maintenance tasks would ever have run on it either.

Next time our hardware gets upgraded, I'll have to put my recommendations forward. I'll probably be required to continue to support this idea of one building having servers that replicate what is in the other one (with one building holding all the passive servers). But I would hope to offer some improvements. How about this?

Both buildings have a 64-bit server that plugs in to their own SAN (with one SAN being passive).
The 2 Servers (one in each building) get clustered into one logical server in order to utilize all the available processing power.
If one building goes down, you are down to one server. If it's the Active Building that went down, the Passive Server needs to know to look at the Passive SAN.

What you recon? Is that a good or viable plan?

rmiao
Master Smack Fu Yak Hacker

7266 Posts

Posted - 2007-05-09 : 11:02:45
Clustering doesn't give you load balancing, passive node in the cluster does nothing.
Go to Top of Page

coolerbob
Aged Yak Warrior

841 Posts

Posted - 2007-05-09 : 16:27:20
True, so to correct:

Both buildings have a 64-bit server that plugs in to their own SAN (with one SAN being passive).
The 2 Servers (one in each building) get load balanced into one logical server in order to utilize all the available processing power.
If one building goes down, you are down to one server. If it's the Active Building that went down, the "Passive" Server needs to know to look at the Passive SAN.

Can that be done?
Go to Top of Page

Michael Valentine Jones
Yak DBA Kernel (pronounced Colonel)

7020 Posts

Posted - 2007-05-09 : 17:34:14
SQL Server does not support clusters that have the same database active on multiple nodes at the same time. You can have a cluster where multiple nodes have databases active, but only one server can have a particular database active at any one time.

The high availability solutions that SQL Server supports are clustering and database mirroring, but they are not solutions for balancing the workload across multiple servers, except for distributing active databases across multiple nodes. Clustering depends on shared storage, so I don’t see the place for the “passive SAN” in this setup. Database mirroring mirrors the database with SQL Server, so I don’t think there is a place there for the SAN to SAN replication that you describe. I cannot think of any benefit the passive SAN gives, except as a very expensive way to mirror your backups offsite.

These seem like things that should have been resolved before installing this setup.







CODO ERGO SUM
Go to Top of Page

Kristen
Test

22859 Posts

Posted - 2007-05-10 : 04:20:42
"We use a program called Double-Take to do disk level replication ..."

is that real-time replication of all disk writes? or a somewhat after-the-fact duplication of changes?

Kristen
Go to Top of Page

coolerbob
Aged Yak Warrior

841 Posts

Posted - 2007-05-10 : 13:02:24
quote:
Originally posted by Kristen

"We use a program called Double-Take to do disk level replication ..."

is that real-time replication of all disk writes? or a somewhat after-the-fact duplication of changes?

Kristen



real-time. it's quite slick
Go to Top of Page

coolerbob
Aged Yak Warrior

841 Posts

Posted - 2007-05-10 : 13:06:06
quote:
Originally posted by Michael Valentine Jones
These seem like things that should have been resolved before installing this setup.



How right you are!
Unfortunately, I was not involved in the decision process.

Back to the challenge at hand: Are you saying there is no way of having a real-time replicated site that makes use of the passive server's processing power while both sites are up?
Go to Top of Page

dinakar
Master Smack Fu Yak Hacker

2507 Posts

Posted - 2007-05-10 : 13:08:48
No built-in solutions, I think. Perhaps you can be creative and code your application to use multiple servers? Its a long shot, probably not even worth it

Dinakar Nethi
SQL Server MVP
************************
Life is short. Enjoy it.
************************
http://weblogs.sqlteam.com/dinakar/
Go to Top of Page

Kristen
Test

22859 Posts

Posted - 2007-05-10 : 13:27:00
"real-time. it's quite slick"

OK, I believe you!

However, doesn't the gigabit network create a bottleneck compared to the CPU-to-Controller-to-Disks link?

Kristen
Go to Top of Page

tkizer
Almighty SQL Goddess

38200 Posts

Posted - 2007-05-10 : 13:59:04
Why not scrap your SAN replication and just use synchronous database mirroring? You could leverage both SANs and both servers with this scenario.

ServerA: Database1 (principal), Database2 (mirror), ...
ServerB: Database1 (mirror), Database2 (principal), ...

Tara Kizer
http://weblogs.sqlteam.com/tarad/
Go to Top of Page

Michael Valentine Jones
Yak DBA Kernel (pronounced Colonel)

7020 Posts

Posted - 2007-05-10 : 16:06:37
quote:
Originally posted by coolerbob

quote:
Originally posted by Michael Valentine Jones
These seem like things that should have been resolved before installing this setup.



How right you are!
Unfortunately, I was not involved in the decision process.

Back to the challenge at hand: Are you saying there is no way of having a real-time replicated site that makes use of the passive server's processing power while both sites are up?



SAN to SAN replication is just a volume level raw block copy, so how could the passive server be updating it while it is being replicated from another site? The database is updating data via the file system, and has no knowledge of this low level process.

SQL Server has no facility for two servers to be able to update the same database at the same time. In order to do this, it would need a distributed lock manager at either the SQL Server or Windows level. DEC inplemented this in the RDB database under the VMS OS using an OS level distributed lock manager in 1984, so it has be done by other vendors. I believe that Oracle supports databases active on multiple nodes with an add on-clustering feature (double the price!).

What Microsoft calls clustering is a real misuse of the term. It is really just a server fail-over facility to quickly make a backup server active when the primary fails.





CODO ERGO SUM
Go to Top of Page

rmiao
Master Smack Fu Yak Hacker

7266 Posts

Posted - 2007-05-10 : 16:38:14
Or you can set peer to peer replication to have two active sql instances, but need to figure out how to distribute users between them.
Go to Top of Page

dinakar
Master Smack Fu Yak Hacker

2507 Posts

Posted - 2007-05-10 : 16:50:58
quote:
Originally posted by coolerbob
Problem is, the second server is passive - all the services are stopped. All that hardware of the second server is going to waste. There's also no seamless switchover in the event of a disaster. The Services would have to be started on the passive server and the cache will be cold. No maintenance tasks would ever have run on it either.




There are high availability solutions but in all of them, the secondary server is just stand-by and you cannot leverage its power to load balance your primary server.


Dinakar Nethi
SQL Server MVP
************************
Life is short. Enjoy it.
************************
http://weblogs.sqlteam.com/dinakar/
Go to Top of Page

coolerbob
Aged Yak Warrior

841 Posts

Posted - 2007-05-11 : 07:05:33
quote:
Originally posted by tkizer

Why not scrap your SAN replication and just use synchronous database mirroring? You could leverage both SANs and both servers with this scenario.

ServerA: Database1 (principal), Database2 (mirror), ...
ServerB: Database1 (mirror), Database2 (principal), ...

Tara Kizer
http://weblogs.sqlteam.com/tarad/



I understand what everyone else has remarked other than the suggestion you have made here Tara. Could someone elaborate on this idea a bit? I don't quite follow.
Go to Top of Page

rmiao
Master Smack Fu Yak Hacker

7266 Posts

Posted - 2007-05-11 : 09:49:05
If you like to leverage both server's power, can setup db mirroring like said. Some dbs are live on servera while others are live on serverb, they all have mirrored copy on the other server.
Go to Top of Page

tkizer
Almighty SQL Goddess

38200 Posts

Posted - 2007-05-11 : 12:14:15
In my example Database1 would be live on ServerA and Database2 would be live on ServerB. You'd mirror these databases to the other server for HA needs. You could either split these databases into separate instances or have them be on the same instance. Database mirroring doesn't care.

Tara Kizer
http://weblogs.sqlteam.com/tarad/
Go to Top of Page

coolerbob
Aged Yak Warrior

841 Posts

Posted - 2007-05-11 : 17:09:20
OK thanks Tara, I'll read up more on this approach.
Go to Top of Page

coolerbob
Aged Yak Warrior

841 Posts

Posted - 2007-05-16 : 03:50:12
Tara, if I'm understanding this right, this approach has little benefit over our Double Take solution: The principle is live and the mirror is passive. All that makes it better is that instead of the whole Server being Passive (Double Take), you can have just an individual database be passive (SQL Server Mirroring).
I presume that when the database is passive, you can't access it - not until you have done your failover.
If that is the case, this particular situation wont help in our case because we have quite a few cross-database joins. If we are joining from Database1 (principle) to Database2 (mirror), you wouldn't be able to.

If I'm right, we'll bin this idea of trying to load balance. Instead, we will use many-to-one Double Take replication. So everyone accesses our 2 live database servers (OLTP & Reporting/OLAP) in Building A. But we replicate the Two Active Database Servers (Building A) to One Passive Database Server (Building B). We then just accept that performance wont be as good in the event of a failover.
Go to Top of Page

rmiao
Master Smack Fu Yak Hacker

7266 Posts

Posted - 2007-05-16 : 10:15:28
You'll not get load balance with db mirroring. In face, ther is no good load balancing solution for sql server unless the db is read only.
Go to Top of Page

Hitesh Shah
Yak Posting Veteran

80 Posts

Posted - 2007-06-19 : 03:54:20
Can't the mirrored database be readonly for reporting application in a high availability clustering solution .

If I were to use the mirrored database for reading , are there any other options .
Go to Top of Page

Hitesh Shah
Yak Posting Veteran

80 Posts

Posted - 2007-06-19 : 03:57:40
Also if i were to use analysis services , build cubes , browse the same in mirrored server , can it be done .
Go to Top of Page
    Next Page

- Advertisement -