IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Windows Discussion :

backup sql timeout


Sujet :

Développement Windows

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 2
    Points
    2
    Par défaut backup sql timeout
    Bonjour à vous tous

    Je viens vers vous pour exposer mon problème sur une sauvegarde SQL 2008

    J'ai fait un petit programme qui me permet de sauvegarder des bases SQL automatiquement ou manuellement et ça fonctionne sauf sur une base.
    Mon fichier de sauvegarde va dans un repertoire que je définis dans un textbox
    Lorsque je lance la sauvegarde, j'ai un message au bout de quelques dizaines de seconde qui dit " Timeout expired. The timeout elapsed prior to completion of the operation or the server is not responding.
    La sauvegarde ou la restauration a été abandonnée".

    Quand je lance cette sauvegarde je vois que mon fichier commence à aller dans le repertoire de sauvegarde et disparait lorsque ce message apparait.

    Je tiens à rajouter cette base fait pas loin de 7 Go donc je pense que ça doit venir de ça le temps de la copie doit durée trop long.

    Ma question peut-on définir dans mon programme d'attendre plus longtemps

    Cordialement et encore merci pour une futur aide

  2. #2
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Salut,
    Un petit tour sur la documentation
    On lit bien la section "Notes".

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Bonjour à toi et merci

    J'ai vu la fonction connection timeout pour augmenter qui est apparemment sur 30s par défaut
    Mon souci c'est le placer dans mon code
    Que voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub btnexecute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnexecute.Click
            Dim dDate As String = Date.Today.ToString("dddd")
     
            Dim ext As String = ".bak" 'extension du fichier
            If TextBoxFichierBackup.Text = "" Then
                MessageBox.Show("Vous devez Renseigner le repertoire de stockage de la sauvegarde !", "Erreur de Chemin", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Return
            End If
            Dim Connection As New SqlConnection()
     
            Dim nomserveur, nomuser, passuser, connbase As String
     
            nomserveur = txtsqlname.Text 'Nom du serveur SQL
            nomuser = txtidsql.Text      'Utilisateur SQL
            passuser = txtpasssql.Text   ' Mot de passe User SQL
            connbase = txtbaseconn.Text  ' Nom de la base ou se connecter
            Connection.ConnectionString = "Data source=" & nomserveur & " ;Database= " & connbase & ";User ID=" & nomuser & ";Password=" & passuser & ";"
     
            Connection.Open()
            'sauvegarde de la base dans un repertoire personnaliser
            Try
                Dim SQLCmd As New SqlCommand()
                SQLCmd.Connection = Connection
     
     
                SQLCmd.CommandText = "BACKUP DATABASE " & connbase & " TO DISK = '" & TextBoxFichierBackup.Text & TextBoxbaseBackup.Text & "_" & dDate & ext & "'" & "with init"
     
     
                SQLCmd.ExecuteNonQuery()
                MessageBox.Show("sauvegarde réussi", "OK")
     
            Catch exp As SqlException
                MessageBox.Show(exp.Message)
            Finally
     
                Connection.Close()
            End Try
     
        End Sub
    Encore merci

  4. #4
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    J'ai pourtant bien préciser de bien lire la section "Notes" de la page de documentation, non ?
    (Au passage il existe un objet pour construire une chaine de connexion SQL Serveur plutôt que de faire de la concaténation plus ou moins hasardeuse)
    Et comme je le redis à chaque post contenant des requêtes SQL : ON MET DES USING AUTOUR DES CONSTRUCTION D'OBJETS DISPOSABLE !!!!

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Merci ctxnop pour tes liens qui me seront très utiles pour faire évoluer mon appli.
    Pour les concaténations cela me permet de mettre sur différent serveur qui ne sont pas forcément paramétrer pareil mais je suis sur qu'il y a d'autres moyen de faire.
    Pour l'instant vu mon expériences dans le domaine je n'ai trouvé que ça.

    Sinon j'ai réussi à placer le timeout et cela à l'air de fonctionner
    je te fais voir mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     Private Sub btnexecute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnexecute.Click
            Dim dDate As String = Date.Today.ToString("dddd")
    
            Dim ext As String = ".bak" 'extension du fichier
            If TextBoxFichierBackup.Text = "" Then
                MessageBox.Show("Vous devez Renseigner le repertoire de stockage de la sauvegarde !", "Erreur de Chemin", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Return
            End If
            Dim Connection As New SqlConnection()
            Dim timeout As SqlCommand = New SqlCommand
            timeout.CommandTimeout = 0
    
            Dim nomserveur, nomuser, passuser, connbase As String
    
            nomserveur = txtsqlname.Text 'Nom du serveur SQL
            nomuser = txtidsql.Text      'Utilisateur SQL
            passuser = txtpasssql.Text   ' Mot de passe User SQL
            connbase = txtbaseconn.Text  ' Nom de la base ou se connecter
            Connection.ConnectionString = "Data source=" & nomserveur & " ;Database= " & connbase & ";User ID=" & nomuser & ";Password=" & passuser & ";"
    
            Connection.Open()
            'sauvegarde de la base dans un repertoire personnaliser
            Try
                Dim SQLCmd As New SqlCommand()
                SQLCmd = timeout
    
                SQLCmd.Connection = Connection
    
                TProgressbar.Enabled = True
                ProgressBar1.Visible = True
    
                SQLCmd.CommandText = "BACKUP DATABASE " & connbase & " TO DISK = '" & TextBoxFichierBackup.Text & TextBoxbaseBackup.Text & "_" & dDate & ext & "'" & "with init"
                     
                SQLCmd.ExecuteNonQuery()
                MessageBox.Show("sauvegarde réussi", "OK")
    
    
            Catch exp As SqlException
                MessageBox.Show(exp.Message)
            Finally
    
                Connection.Close()
            End Try
     
        End Sub
    Ce que j'ai mis en rouge c'est que j'ai changé si quelqu'un peux corriger
    encore merci pour ton aide

  6. #6
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Voilà comment faire, c'était expliqué dans mes liens

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Private Sub btnexecute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnexecute.Click
    	Dim dDate As String = Date.Today.ToString("dddd")
     
    	Dim ext As String = ".bak" 'extension du fichier
    	If TextBoxFichierBackup.Text = "" Then
    		MessageBox.Show("Vous devez Renseigner le repertoire de stockage de la sauvegarde !", "Erreur de Chemin", MessageBoxButtons.OK, MessageBoxIcon.Error)
    		Return
    	End If
     
    	Dim cnxStringBuilder as New SqlConnectionStringBuilder()
    	builder.DataSource = txtsqlname.Text
    	builder.InitialCatalog = txtbaseconn.Text
    	builder.UserID = txtidsql.Text
    	builder.Password = txtpasssql.Text
    	builder.ConnectTimeout = 3600 ' Pas de TimeOut de 0, comme indiqué dans la doc, j'ai mis 1h, ca commence déjà à faire beaucoup.
     
    	'sauvegarde de la base dans un repertoire personnaliser
    	Try
    		' On met la création et ouverture de session dans le Try/Catch, ça peut échouer...
    		' Il y a un constructeur pour la chaine de connexion, autant l'utiliser
    		Using cnx As New SqlConnection(cnxStringBuilder.ConnectionString) ' Disposable => Using
    			cnx.Open()
     
    			Dim query As String = "BACKUP DATABASE " & connbase & " TO DISK = '" & TextBoxFichierBackup.Text & TextBoxbaseBackup.Text & "_" & dDate & ext & "'" & "with init"
     
    			' La encore, un constructeur qui fait tout, autant l'utiliser
    			Using cmd As New SqlCommand(query, cnx) ' Disposable => Using
    				cmd.ExecuteNonQuery()
    			End Using
    			MessageBox.Show("sauvegarde réussi", "OK")
    		End Using
     
    	Catch exp As SqlException
    		MessageBox.Show(exp.Message)
    	End Try
    End Sub

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour la correction

    Juste un souci
    sur ce point "connbase" il me sert plus à rien ou pas
    cela servait dans mon exemple à savoir sur quelle base se connecter et là du coup dans ta correction j'ai un message d'erreur sur ça

    encore merci de tes efforts pour m'aider

  8. #8
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    connbase == InitialCatalog
    J'ai probablement fait une ou deux erreur de frappe ou de syntaxe.
    J'ai tout fait de mémoire sur notepad, sans compilo ni coloration syntaxique...

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    je suis désolé de t'embêter encore

    parce que dans la ligne backup database.

    sur connbase j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	1	'connbase' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.
    merci

  10. #10
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    J'ai probablement fait une ou deux erreur de frappe ou de syntaxe.
    J'ai tout fait de mémoire sur notepad, sans compilo ni coloration syntaxique...
    c'est déjà beaucoup de m'aider je comprend bien que c'est pas forcément facile de répondre à des questions comme les miennes

    J'ai remplacé connbase par txtbaseconn.Text et là j'ai plus l'erreur et la sauvegarde ce fait
    je vais essayer sur la base réel pour voir

Discussions similaires

  1. [C#]Backup SQL Server
    Par genki dans le forum Accès aux données
    Réponses: 3
    Dernier message: 12/04/2010, 19h41
  2. [ASE][T-SQL]Timeout sur procedure stockee
    Par Le Tchetche dans le forum Sybase
    Réponses: 3
    Dernier message: 06/11/2006, 11h05
  3. Backup SQL delocalisé besoin d'aide.
    Par stef228 dans le forum Administration
    Réponses: 3
    Dernier message: 13/07/2006, 08h54
  4. Backup SQL serveur 2K
    Par bart64 dans le forum Administration
    Réponses: 2
    Dernier message: 01/06/2006, 18h58
  5. Backup SQL 2000 en SQL7
    Par nbl dans le forum Administration
    Réponses: 8
    Dernier message: 25/08/2005, 12h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo