SQL Server Forum / Other Technologies / Clustering / March 2008
cluster and tempdb on c:\
|
|
Thread rating:  |
Leon McCalla - 28 Mar 2008 11:08 GMT I'm trying to boost SQL server 2000's speed at running some of my long queries.Is it a good idea to put the tempDB on a physically separate HD subsystem in the interest of speed? I want to do this but......
Server: Msg 5184, Level 16, State 1, Line 1 Cannot use file 'c:\MSSQL\data\tempdb.mdf' for clustered server. Only formatted files on which the cluster resource of the server has a dependency can be used.
since hte temp DB is re-created every time SQL starts, this should not be a requirement. Any thoughts???
Leon
Tom Moreau - 28 Mar 2008 12:59 GMT It is a good idea to have tempdb on a separate disk from your data. However, in a clustered system, any data or log files *must* be on a clustered drive - not a local one.
 Signature Tom
---------------------------------------------------- Thomas A. Moreau, BSc, PhD, MCSE, MCDBA, MCITP, MCTS SQL Server MVP Toronto, ON Canada https://mvp.support.microsoft.com/profile/Tom.Moreau
I'm trying to boost SQL server 2000's speed at running some of my long queries.Is it a good idea to put the tempDB on a physically separate HD subsystem in the interest of speed? I want to do this but......
Server: Msg 5184, Level 16, State 1, Line 1 Cannot use file 'c:\MSSQL\data\tempdb.mdf' for clustered server. Only formatted files on which the cluster resource of the server has a dependency can be used.
since hte temp DB is re-created every time SQL starts, this should not be a requirement. Any thoughts???
Leon
Hank Arnold (MVP) - 30 Mar 2008 13:32 GMT > It is a good idea to have tempdb on a separate disk from your data. > However, in a clustered system, any data or log files *must* be on a > clustered drive - not a local one. I have a SQL server with 3 RAID drives:
C: (Boot) 36GB RAID 1 D: (Log files) 36GB RAID 1 E: (Databases) 146 GB RAID 10
All drives are 15K RPM SCSI. Which would be best to store TempDb?
 Signature Regards, Hank Arnold Microsoft MVP Windows Server - Directory Services
Andrew J. Kelly - 30 Mar 2008 19:54 GMT Hank,
I am not sure why you posted this to the clustering group. Is this a cluster? If so then it must be on one of the cluster resources which I would assume to be D: & E:. But since I rarely see D: as a drive in a cluster I am not sure which way you have it. In any case how many disks are there in the Raid 10 and how much activity do you have in the user dbs and tempdb?
 Signature Andrew J. Kelly SQL MVP Solid Quality Mentors
>> It is a good idea to have tempdb on a separate disk from your data. >> However, in a clustered system, any data or log files *must* be on a [quoted text clipped - 7 lines] > > All drives are 15K RPM SCSI. Which would be best to store TempDb? Aaron Bertrand [SQL Server MVP] - 28 Mar 2008 15:19 GMT > I'm trying to boost SQL server 2000's speed at running some of my long > queries.Is it a good idea to put the tempDB on a physically separate HD > subsystem in the interest of speed? Yes.
> I want to do this but...... > > Server: Msg 5184, Level 16, State 1, Line 1 > Cannot use file 'c:\MSSQL\data\tempdb.mdf' for clustered server. Only > formatted files on which the cluster resource of the server has a > dependency can be used. Makes sense, doesn't it? What do you think will happen to tempdb when that node goes down and the cluster fails over? Failing over should be as seamless as possible. If you had to rebuild tempdb on failover, it wouldn't really be instantaneous (especially if tempdb is large, and/or if instant file initialization is not in effect). Plus, failover is supposed to be transparent, and if you rebuild tempdb every time, then users will lose data in temp tables, possibly table variables, and even any sorting or hashing that is occurring at the time of failover.
Add a disk to the subsystem that can be shared by both nodes, and put tempdb on that. You are not going to be able to put tempdb on c:\, whether or not you think that is a nonsense requirement.
A
Linchi Shea - 28 Mar 2008 18:47 GMT > Plus, failover is supposed to be transparent, and if you rebuild tempdb > every time, then users will lose data in temp tables, possibly table > variables, and even any sorting or hashing that is occurring at the time > of failover. Wait a minute! Why would any data in tempdb be lost during a failover even if tempdb is allowed to locate on a local drive? When SQL Server restarts, nothing in tempdb is retained anyway. You won't be able to keep any table variables or sorting/hashing intermediate data.
Linchi
> > I'm trying to boost SQL server 2000's speed at running some of my long > > queries.Is it a good idea to put the tempDB on a physically separate HD [quoted text clipped - 22 lines] > > A Aaron Bertrand [SQL Server MVP] - 28 Mar 2008 20:25 GMT >> Plus, failover is supposed to be transparent, and if you rebuild tempdb >> every time, then users will lose data in temp tables, possibly table [quoted text clipped - 5 lines] > nothing in tempdb is retained anyway. You won't be able to keep any table > variables or sorting/hashing intermediate data. If tempdb is on a shared drive, why would anything from tempdb be wiped out? Technically, you're not "restarting" SQL Server.
Anyway, you may be right, I haven't explicitly checked this, it is just an assumption based on casual observation. We have some high volume systems that have failed over during busy times and did not hear a single complaint from our users, and our test harnesses (which certainly call stored procedures continuously, that make heavy use of tempdb) did not register a blip either. Maybe just coincidence that nothing was ever noticed.
Linchi Shea - 28 Mar 2008 20:59 GMT To a client app, a failover is exactly the same as a SQL instance restart on the same server. Nothing is different. Your test harness or users don't complain for exactly the same reason they would not complain with the app running against a standalone SQL instance: the stored procedure would create whatever temp tables it may use when it is executed again.
Linchi
> >> Plus, failover is supposed to be transparent, and if you rebuild tempdb > >> every time, then users will lose data in temp tables, possibly table [quoted text clipped - 15 lines] > procedures continuously, that make heavy use of tempdb) did not register a > blip either. Maybe just coincidence that nothing was ever noticed. Aaron Bertrand [SQL Server MVP] - 28 Mar 2008 21:17 GMT > To a client app, a failover is exactly the same as a SQL instance restart > on [quoted text clipped - 3 lines] > create > whatever temp tables it may use when it is executed again. But what about when the test harness is running a stored procedure that makes heavy use of tempdb and takes 40 minutes to run? Surely if the object disappeared in the middle of the run, then it would have recorded some kind of problem during failover?
Linchi Shea - 28 Mar 2008 22:12 GMT Whoever coded that test harness had proper error handling to recover from a lost connection. Think about it. When a server is hosed, all the state info in memory is gone and can't be replicated on the new node. All those table variables and hash structures that are being used but not persisted on the old node cannot possibly appear on the new node. So strictly speaking, there is no transparent failover as far as application programming is concnered, though the error handling may make it transparent to the end user (if transaction recovery doesn't take too long on restart).
Linchi
> > To a client app, a failover is exactly the same as a SQL instance restart > > on [quoted text clipped - 8 lines] > disappeared in the middle of the run, then it would have recorded some kind > of problem during failover?
|
|
|