Caulfield 0 Denunciar post Postado Junho 20, 2011 Bom dia, Eu criei um serviço para fazer BackUp do Banco de dados do SQL Server. Só que eu queria que o serviço inicia-se num determinado horário. Como posso fazer isso? Segue o código que estou usando... Protected Overrides Sub OnStart(ByVal args() As String) ' Add code here to start your service. This method should set things ' in motion so your service can do its work. dia = Format(Now, "dd") mes = Format(Now, "MM") ano = Format(Now, "yyyy") SalvarBD = "DBSisRosset_" & dia + mes + ano & ".bak" Dim con As SqlConnection Dim cmd As SqlCommand con = New SqlConnection("Data Source=xxx;Initial Catalog=xxx;User Id=xx;Password=xxxx;") Try cmd = New SqlCommand("backup database DBSisRosset to disk='D:\PROJETOS\_BackUp MyDB\" & SalvarBD & "'", con) con.Open() cmd.ExecuteNonQuery() con.Close() Catch ex As Exception MsgBox(ex.Message) End Try Try arquivoWS = New StreamWriter("C:\BackUpSQLmyDB.log", True) arquivoWS.WriteLine("Serviço iniciado em " & DateTime.Now) arquivoWS.Flush() Catch ex As Exception End Try End Sub Protected Overrides Sub OnStop() ' Add code here to perform any tear-down necessary to stop your service. Try arquivoWS.WriteLine("Serviço encerrado em " & DateTime.Now) arquivoWS.Close() Catch ex As Exception 'não vamos tratar exceção End Try End Sub Eu tentei usar o Timer e ServiceController mas não deu certo... Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If TimeOfDay.ToLongTimeString = "10:37:00" Then ServiceController1.Start() End If End Sub Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Junho 23, 2011 Acho que é isso: http://www.codeproject.com/KB/shell/scheduler.aspx Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Caulfield 0 Denunciar post Postado Junho 24, 2011 Não entendi muito bem.... mas consegui como fazer. Segue o código. Imports System.IO Imports System.Threading Imports System.Data.SqlClient Public Class Service1 Private arquivoWS As StreamWriter Private oTimer As System.Threading.Timer Dim SalvarBD, dia, mes, ano As String Protected Overrides Sub OnStart(ByVal args() As String) Dim oCallback As New TimerCallback(AddressOf OnTimedEvent) oTimer = New System.Threading.Timer(oCallback, Nothing, 1000, 1000) End Sub Private Sub OnTimedEvent(ByVal state As Object) If TimeOfDay.ToLongTimeString = "10:19:00" Then dia = Format(Now, "dd") mes = Format(Now, "MM") ano = Format(Now, "yyyy") SalvarBD = "DBSisRosset_" & dia + mes + ano & ".bak" Dim con As SqlConnection Dim cmd As SqlCommand con = New SqlConnection("Data Source=Servidor;Initial Catalog=Nome do BD;User Id=Usuário;Password=Senha;") Try cmd = New SqlCommand("backup database Nome do BD to disk='D:\PROJETOS\_BackUp MyDB\" & SalvarBD & "'", con) con.Open() cmd.ExecuteNonQuery() con.Close() arquivoWS = New StreamWriter("c:\SimpleService.log", True) arquivoWS.WriteLine("Serviço iniciado em " & DateTime.Now) arquivoWS.Flush() Catch ex As Exception End Try Try arquivoWS.WriteLine("Serviço encerrado em " & DateTime.Now) arquivoWS.Close() Catch ex As Exception 'não vamos tratar exceção End Try End If End Sub Protected Overrides Sub OnStop() ' Add code here to perform any tear-down necessary to stop your service. End Sub End Class Só pra completar.... pra criar o serviço usando o Prompt de comando é só usar o seguinte: SC CREATE "NOME DO SERVIÇO" binpath= "caminho do serviço\Nome do arquivo.exe" - com as aspas Valeu. Acho que é isso: http://www.codeproject.com/KB/shell/scheduler.aspx Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Caulfield 0 Denunciar post Postado Junho 24, 2011 Galera quando eu estava fazendo os testes eu instalei o serviço na máquina onde eu estava e o arquivo do backup ficava com 2,54mb. Quando eu instalei no servidor e ele fez o backup o arquivo ficou com 5mb. Alguém sabe dizer pq tanta diferença? A minha máquina é Win Xp Professional e o servidor Win Server 2008. Não entendi muito bem.... mas consegui como fazer. Segue o código. Imports System.IO Imports System.Threading Imports System.Data.SqlClient Public Class Service1 Private arquivoWS As StreamWriter Private oTimer As System.Threading.Timer Dim SalvarBD, dia, mes, ano As String Protected Overrides Sub OnStart(ByVal args() As String) Dim oCallback As New TimerCallback(AddressOf OnTimedEvent) oTimer = New System.Threading.Timer(oCallback, Nothing, 1000, 1000) End Sub Private Sub OnTimedEvent(ByVal state As Object) If TimeOfDay.ToLongTimeString = "10:19:00" Then dia = Format(Now, "dd") mes = Format(Now, "MM") ano = Format(Now, "yyyy") SalvarBD = "DBSisRosset_" & dia + mes + ano & ".bak" Dim con As SqlConnection Dim cmd As SqlCommand con = New SqlConnection("Data Source=Servidor;Initial Catalog=Nome do BD;User Id=Usuário;Password=Senha;") Try cmd = New SqlCommand("backup database Nome do BD to disk='D:\PROJETOS\_BackUp MyDB\" & SalvarBD & "'", con) con.Open() cmd.ExecuteNonQuery() con.Close() arquivoWS = New StreamWriter("c:\SimpleService.log", True) arquivoWS.WriteLine("Serviço iniciado em " & DateTime.Now) arquivoWS.Flush() Catch ex As Exception End Try Try arquivoWS.WriteLine("Serviço encerrado em " & DateTime.Now) arquivoWS.Close() Catch ex As Exception 'não vamos tratar exceção End Try End If End Sub Protected Overrides Sub OnStop() ' Add code here to perform any tear-down necessary to stop your service. End Sub End Class Só pra completar.... pra criar o serviço usando o Prompt de comando é só usar o seguinte: SC CREATE "NOME DO SERVIÇO" binpath= "caminho do serviço\Nome do arquivo.exe" - com as aspas Valeu. Acho que é isso: http://www.codeproject.com/KB/shell/scheduler.aspx Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Junho 25, 2011 O banco de dados não esta maior não? A tendência é crescer mesmo. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Caulfield 0 Denunciar post Postado Junho 26, 2011 Eu acho que não pois pois eu fiz um e logo depois o outro. E o sistema está bem no começo então o uso ainda não é tão expressivo. Bom... vou fazer um teste fazendo o backup da minha máquina de novo pra ver se fica menor. Valeu. O banco de dados não esta maior não? A tendência é crescer mesmo. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites