Showing posts with label mirroring. Show all posts
Showing posts with label mirroring. Show all posts

Monday, March 12, 2012

Hardware issues for database mirroring

Hi guys, can I know for mirroring, is it both principal and mirror server's hardware spec needed to be same in order to best performance during mirroring? I am just curious about it. Thx.

Best Regards,

Hans

NO, they don't have to be

Although you might want them to be, as the mirror server should be capable enough to be your primary server when needed

Plus, you can set them up identically, or try different settings to see how performance changes

It's likd RAID, you don't necessarily need same brand, same model, same size HDDs, but people always recommends it

|||Also, depending on the version of SQL2005, only the enterprise edition supports "high-performance" in asynchronous mode for mirroring. The standard edition only supports synchronous - so a gigabit or fibre channel is recommended. The speed between servers should also be considered for best mirroring performance, depending on your situation.

Friday, March 9, 2012

Hardware configuration

Hi i'm doing mirroring on 2 servers

each has 6 disks.

what is the recommended configuration for each server?

Option 1: 2 disks (mirror) for OS and 4 disks (RAID5) for SQL

Option 2: 2 disks (mirror) for OS, 2 disks (mirror) for SQL & Data, 2 disks (mirror) for SQL Logs.

or maybe other suggestion ? maybe some logical partitions ... (TempDB ...)

thanks,

I'd say definitely option 2

every article I read suggests log/temp db on separate physical DRIVE (not partition) than data

|||

It is recommended that you separate log from data and other activities.

It all depends upon the throughput of your disks and the response requirements of your application.

Monday, February 27, 2012

handling failover at the application level with Sql2005 Mirroring

We're in the process of writing an application that we want to work with a
synchronous mirrored Sql 2005 database and a witness.
As I currently understand it the best way to handle failover with this setup
is to catch the server not available error and then retry the operation.
Any open transaction will be rolled back (in effect) so we need to retry the
entire transaction.
We have complicated transactional processes at our business logic layer, so
we have quite a few places where we begin a transaction, carry out a number
of operations that may involve multiple database calls, and then commit or
rollback on error.
In order to add this retry functionality it looks like I need to add a
try-catch around every call at the business logic layer as it needs to wrap
the transaction. This is possible, but messy.
Is there a better way of doing this? Ideally the handing of the retry
should be at the data access layer, but as the transaction in progress when
the failover happens will be lost it doesn't look possible to handle this in
individual data commands.
Any ideas?
Keith Henry
This isn't unique to Database Mirroring. You would have to do that in every
case where you are dealing with a failover configuration. There is no logic
that basically says "retry". You have to code this all yourself.
When the mirror fails over, you will get a disconnect and any transactions
in flight will be rolled back. The only thing your applications can take
advantage of if they are using the new MDAC library. In this situation,
there is code carried that will cache both the principal and mirror. Your
application can simply reconnect to the principal and the MDAC layer will
transparently redirect the connection and requests to the mirror.
Mike
http://www.solidqualitylearning.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference.
"Keith Henry" <k.henry@.link-hrsystems.com> wrote in message
news:u2mk5jjLGHA.984@.tk2msftngp13.phx.gbl...
> We're in the process of writing an application that we want to work with a
> synchronous mirrored Sql 2005 database and a witness.
> As I currently understand it the best way to handle failover with this
> setup is to catch the server not available error and then retry the
> operation. Any open transaction will be rolled back (in effect) so we need
> to retry the entire transaction.
> We have complicated transactional processes at our business logic layer,
> so we have quite a few places where we begin a transaction, carry out a
> number of operations that may involve multiple database calls, and then
> commit or rollback on error.
>
> In order to add this retry functionality it looks like I need to add a
> try-catch around every call at the business logic layer as it needs to
> wrap the transaction. This is possible, but messy.
>
> Is there a better way of doing this? Ideally the handing of the retry
> should be at the data access layer, but as the transaction in progress
> when the failover happens will be lost it doesn't look possible to handle
> this in individual data commands.
> Any ideas?
> Keith Henry
>
|||Thanks,
I guess we'll have to go with the retry from the top level then.
Keith Henry
"Michael Hotek" <mike@.solidqualitylearning.com> wrote in message
news:udYhiKnLGHA.208@.tk2msftngp13.phx.gbl...
> This isn't unique to Database Mirroring. You would have to do that in
> every case where you are dealing with a failover configuration. There is
> no logic that basically says "retry". You have to code this all yourself.
> When the mirror fails over, you will get a disconnect and any transactions
> in flight will be rolled back. The only thing your applications can take
> advantage of if they are using the new MDAC library. In this situation,
> there is code carried that will cache both the principal and mirror. Your
> application can simply reconnect to the principal and the MDAC layer will
> transparently redirect the connection and requests to the mirror.
> --
> Mike
> http://www.solidqualitylearning.com
> Disclaimer: This communication is an original work and represents my sole
> views on the subject. It does not represent the views of any other person
> or entity either by inference or direct reference.
>
> "Keith Henry" <k.henry@.link-hrsystems.com> wrote in message
> news:u2mk5jjLGHA.984@.tk2msftngp13.phx.gbl...
>

Sunday, February 19, 2012

HA / DR technology for SQL,Oracle,DB2

Does anyone have any reference to some of the terms used by the different
RDBMS vendors for the different HA/DR technology ?
For eg: I think Mirroring on SQL is Data Guard on Oracle and HADR on DB2A quick readup on IBM's HADR at http://www.dbazine.com/db2/db2-disa...ou
los19 show that it
is basically the same thing as database mirroring. They seem to have three m
odes (asynchronous,
near-synchronous, and synchronous) compared to SQL Server's two modes. But t
he technology behind
this are both based on re-playing log records on a standby server.
It seems like Oracle's Data Guard also is similar in implementation to Datab
ase Mirroring but with
two options. You either run it same thing as database mirroring. Or, you can
have it implemented
pretty much the same way as Transaction Replication (re-generating SQL state
ments from the log
instead of sending the physical log records), allowing fro different physica
l database schema on
standby server. http://www.oracle.com/technology/de...rdOverview.html
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://sqlblog.com/blogs/tibor_karaszi
"Hassan" <hassan@.hotmail.com> wrote in message news:%23DUxW%239RHHA.4028@.TK2MSFTNGP03.phx.gb
l...
> Does anyone have any reference to some of the terms used by the different
RDBMS vendors for the
> different HA/DR technology ?
> For eg: I think Mirroring on SQL is Data Guard on Oracle and HADR on DB2
>
>