Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

How do I automate SQL server restart daily?

Posted on 2007-12-04
10
Medium Priority
?
759 Views
Last Modified: 2008-02-01
Hi,

How can I create a job to have SQL Server restart at a particular point in time daily?  Thx.
0
Comment
Question by:skip1000
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
10 Comments
 
LVL 17

Expert Comment

by:Chris Mangus
ID: 20407472
It's pretty risky to automate restarting SQL Server since you never know what is going on in your database at the time.

What is the reason for a scheduled restart?  Perhaps we can look at that and see why it's needed.
0
 
LVL 17

Accepted Solution

by:
Chris Mangus earned 800 total points
ID: 20407486
Most SQL MVP's will strongly advise against doing an automated restart, but, here is some code that will do it.

Again, it's a pretty risky idea...
Code Snippet--recycle sqlserver
declare @s sysname, @cmd nvarchar(1000)
 
set @s=case when serverproperty('instancename') is not null then N'mssql$'+cast(serverproperty('instancename') as nvarchar(15)) else N'MSSQLSERVER' end
 
set @cmd=N'net stop '+@s+' /y && net start '+@s+' /y'
exec master..xp_cmdshell @cmd

Open in new window

0
 

Author Comment

by:skip1000
ID: 20407606
it is a test environment and the space is limited.  the tempdb grows to 22gb after a few days and server runs out of room.  i'm not sure which process causes tempdb to grow too big, but i need to keep server available w/ resources which is why i'm looking at auto restarting sql server.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
LVL 17

Expert Comment

by:Chris Mangus
ID: 20407624
I can see why you'd want to do the restart.  You may need to encapsulate this code in some others that will check for running transactions and user connections to make sure you don't restart it while someone is in the middle of something.
0
 

Author Comment

by:skip1000
ID: 20407689
true.  since this a dev server w/ few users, not many ppl will be impacted I think.  just need to do this until i can figure out which process is causing the tempdb to grow to 22gb and how quickly it grows to that size.
0
 
LVL 17

Expert Comment

by:Chris Mangus
ID: 20407711
Well, put the code in a job and let 'er rip!
0
 
LVL 143

Assisted Solution

by:Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3] earned 200 total points
ID: 20409184
you cannot get a sql job to start sql server, because once it stopped, the job will be aborted automatically, as the sql agent is also stopped, resp looses connection...

so, you would need a windows scheduled job to do that, simply.
however, I agree with above that you should not need to do that. if you have the tempdb filling up, there is either
* a job that does not properly commit
* a job that does excessive temp table creation during run... if that is the case, stopping+starting the server will not help, except for 1 day, and the same process that filled up the tempdb will run again, and blow up the tempdb.
  -> result, you will make those operations slower, as the tempdb file has to grow for it...

so: solve the original problem, and you solved 2-3 problems at once.
0
 
LVL 17

Expert Comment

by:Chris Mangus
ID: 20411704
angellll, the code I posted will stop and restart SQL Server...give it a try...
0
 
LVL 18

Expert Comment

by:ShogunWade
ID: 20413854
"I can see why you'd want to do the restart.  " ?   If tempdb growth is the problem firstly you should try and identify why as angel says.    However in the interim, why not simply schedule a tempdb shrinkrather than a restart?
0
 
LVL 17

Expert Comment

by:Chris Mangus
ID: 20414385
You can't just run DBCC SHRINKFILE or SHRINKDATABASE on tempdb.  If ANY process is using tempdb then the shrink will fail.  See:  http://support.microsoft.com/kb/307487

Unfortunately, while skip1000 is troubleshooting why tempdb is growing so large he will without a doubt have to restart his SQL Server.
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What if you have to shut down the entire Citrix infrastructure for hardware maintenance, software upgrades or "the unknown"? I developed this plan for "the unknown" and hope that it helps you as well. This article explains how to properly shut down …
When trying to connect from SSMS v17.x to a SQL Server Integration Services 2016 instance or previous version, you get the error “Connecting to the Integration Services service on the computer failed with the following error: 'The specified service …
Via a live example, show how to set up a backup for SQL Server using a Maintenance Plan and how to schedule the job into SQL Server Agent.
Via a live example, show how to shrink a transaction log file down to a reasonable size.

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question