Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

gastao

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

Mensagens Recomendadas

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)

Editado por Rechousa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 é :)

Editado por NunoDinis

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

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gastao

caça fiz da seguinte maneira

comando.commandtimeout = 6000
comando.ExecuteNonQuery()

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

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gastao

da me uma dica como poderei fazer??

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

Editado por gastao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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..

Editado por apocsantos
geshi

Pedro Martins

Não respondo a duvidas por PM

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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*

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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()

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.