|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: Thursday, May 02, 2013 9:14 AM
Points: 19,
Visits: 171
|
|
How does SQL get the logs that it will transfer to mirrored server? Does SQL "scrape" the log files for unsent logs? Are the unsent logs marked or stored seperately?
We have 30 databases that we want to mirror. Over the past few weeks, we have been mirroring these databases, all in asynchronous mode. One day, we mirrored the 10 remaining databases, some of the smallest and least transactional databases we have. At that point, we started seeing odd performance. We are getting timeouts from stored procedures that never timeout. We are experiencing higher than normal signal wait times; however, we are not experiencing higher than normal blocking. The only thing we have noticed is that before the signal wait times jump, our writelog waits increase. We are wondering if the log file is being locked while SQL is checking for logs that need to be sent to the mirror.
|
|
|
|
|
SSC-Dedicated
           
Group: General Forum Members
Last Login: Yesterday @ 12:59 PM
Points: 37,640,
Visits: 29,895
|
|
No to scraping the log file, no to separate locations. The log records are written to the log file and sent to the mirror at the time they're created. No file reading, no file locks.
30 DBs is quite a lot to be mirroring on a single instance, that's going to be a fair bit of overhead on the principal.
Gail Shaw Microsoft Certified Master: SQL Server 2008, MVP SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter We stand on the bridge and no one may pass
|
|
|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: Thursday, May 02, 2013 9:14 AM
Points: 19,
Visits: 171
|
|
| Thank you. Do you have any thoughts on why we would be seeing higher writelogs waits just before the signal waits get high, even though there is little to no blocking happening?
|
|
|
|
|
SSC-Dedicated
           
Group: General Forum Members
Last Login: Yesterday @ 12:59 PM
Points: 37,640,
Visits: 29,895
|
|
Check your IO subsystem? Could also be that CPU is being used elsewhere and the writing to the log file is getting delayed because the CPU is trying to process something else, probably the mirroring transmissions
Gail Shaw Microsoft Certified Master: SQL Server 2008, MVP SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter We stand on the bridge and no one may pass
|
|
|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: Thursday, May 02, 2013 9:14 AM
Points: 19,
Visits: 171
|
|
|
|
|
|
SSCertifiable
       
Group: General Forum Members
Last Login: Yesterday @ 9:27 PM
Points: 6,695,
Visits: 11,711
|
|
If you had a large CPU workload in the first place the worker threads used by the additional mirroring sessions (not negotiable) could have pushed you beyond a tipping point on your instance. I agree, 30 databases is quite a few to mirror from one instance, but there are some things you can do to tune your instance besides adding more CPUs.
Mirroring a Large Number of Databases in a Single SQL Server Instance
__________________________________________________________________________________________________ There are no special teachers of virtue, because virtue is taught by the whole community. --Plato
Believe you can and you're halfway there. --Theodore Roosevelt
Everything Should Be Made as Simple as Possible, But Not Simpler --Albert Einstein
The significant problems we face cannot be solved at the same level of thinking we were at when we created them. --Albert Einstein
1 apple is not exactly 1/8 of 8 apples. Because there are no absolutely identical apples. --Giordy
|
|
|
|