Jump to content
gastao

[Resolvido] Copia Base de Dados superior a 1,5gb erro

Recommended Posts

gastao

boas tou a executar uma rotina para fazer o backup de uma base de dados so que se a base de dados for superior a 1,5 gb da erro.

tou a usar o seguinte codigo:

 ProgressBar1.Maximum = 2
ProgressBar1.Step = 1

ProgressBar1.PerformStep()
Dim strIniFile As String = My.Application.Info.DirectoryPath & "\config.ini"
'Le qual o caminho das Facturas escrito no Ini
Dim bdsql As String = GetIniSetting("CaminhoBaseDados", "BackupsSQL", strIniFile)
Dim bdnome As String = GetIniSetting("NomeBaseDados", "BackupsSQL", strIniFile)
Dim bduser As String = GetIniSetting("User", "BackupsSQL", strIniFile)
Dim bdpass As String = GetIniSetting("Password", "BackupsSQL", strIniFile)
Dim caminhobk As String = GetIniSetting("Caminho", "BackupsSQL", strIniFile)

ProgressBar1.PerformStep()
Dim consql As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection("Data Source='" & bdsql & "'; Integrated Security=false; User Id='" & bduser & "';Password='" & bdpass & "';")
Dim comando As New SqlCommand()
comando.Connection = consql
comando.CommandText = "BACKUP DATABASE " & bdnome & " to Disk = '" & caminhobk + "\SBACKUP.bak" & "'"
consql.Open()
comando.ExecuteNonQuery()
consql.Close()

Timer1.Enabled = True
MsgBox("Backup Realizado com Sucesso.", MsgBoxStyle.Information)

Edited by Rechousa

Share this post


Link to post
Share on other sites
gastao

Tempo limite expirou. O período de tempo limite esgotou-se antes da conclusão da operação ou o servidor não está a responder.

The backup or restore was aborted.

eu ao fazer o backup da base de dados com tamanhos pequenos da sem problemas

Tempo limite expirou. O período de tempo limite esgotou-se antes da conclusão da operação ou o servidor não está a responder.

The backup or restore was aborted.

Share this post


Link to post
Share on other sites
NunoDinis

Experimenta fazer sem a ProgressBar.

E qual é o erro que te dá? Não será falta de espaço em disco?

Foi a primeira coisa em que pensei, mas pelos vistos não é :)

Edited by NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
gastao

nao nao tem nada a ver mesmo com a progressbar, isso tem a ver com o timeout do SQL quase de certeza, pois eu com base de dados de 100mb e 200mb ate 700mb faço backup's na boa, agora bases de dados mais puxadas ta me a dar erros...

Share this post


Link to post
Share on other sites
Caça

Tens de aumentar o TimeOut da tua Connection, por defeito deve estar a 30 e basta que o backup demore mais de 30 segundos a executar que dá-te um timeout.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
gastao

caça fiz da seguinte maneira

comando.commandtimeout = 6000
comando.ExecuteNonQuery()

e da me a mesma situação...

Edited by apocsantos
geshi

Share this post


Link to post
Share on other sites
gastao

da me uma dica como poderei fazer??

o que eu andei a pesquisar era aquilo que coloquei...

Edited by gastao

Share this post


Link to post
Share on other sites
Caça

Tens de colocar mais um parâmetro na tua ConnectionString, tipo

Connection Timeout=x

Onde tem x coloca os segundos que queres.

Acho que se colocares 0 nunca dá TimeOut mas não tenho a certeza..

Edited by apocsantos
geshi

Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
gastao

vou testar ja te dou feedback...

mas acho que tambem se colocar

commando = CommandTimeout = 600 (+- 10 min) 

nao rebenta e funciona tou a testar ja te dou feedback

sim com o

commando = Commandtimeout = 600
comando.executenonquery()

funciona 5*

Edited by apocsantos
geshi

Share this post


Link to post
Share on other sites
Caça

Funciona com isso se tiver na ConnectionString o que te indiquei, ou não?

Mostra o teu código actual.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
gastao

desta forma está a funcionar ok:

Dim consql As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection("Data Source='" & bdsql & "'; Integrated Security=false; User Id='" & bduser & "';Password='" & bdpass & "';")


Dim comando As New SqlCommand()
comando.Connection = consql
comando.CommandText =

"BACKUP DATABASE " & bdnome & " to Disk = '" & caminhobk + "\Backup.bak" & "'"
consql.Open()
comando.CommandTimeout = 600
comando.ExecuteNonQuery()
consql.Close()

Edited by apocsantos
geshi

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.