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

MS SQL Server Discussion :

Répliquer une fois par jour une base de données 2008r2


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut Répliquer une fois par jour une base de données 2008r2
    Bonjour,

    Je n'ai pas de compétence particulière en administration de base, je suis développeur .Net.

    J'ai 2 serveurs 2008r2,
    je souhaite répliquer une fois par jour, une base d'un server vers un autre en utilisant le port sql 1433 standard (seul autorisation de mon réseau) du server source vers le server destination.

    J'ai testé l'outil d'Assistant d'importation et d'exportation SQL Server. Ça marche bien, seul problème les Vues deviennent des tables !
    Il y a 2 choix:
    copier les données à partir d'une ou plusieurs tables ou vue (c'est le choix que j'ai pris)
    Écrire une requête pour spécifier les données à transférer.

    Je suppose qu'il est facile par la suite de créer par la suite un package + un job.

    Mon problème est de savoir comment répliquer les Vues (pour ne pas qu'elles deviennent des tables sur le server de destination).
    Est ce la bonne solution d'utiliser l'exportation ?

    Merci !

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Et pourquoi pas un simple backup / restore automatisé de ta base ?

    ++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Hi mikedavem !

    J'ai des contraintes réseaux (je sens qu'on ne va pas m'accorder un repertoire partagé par exemple )

    C'est possible de le faire depuis le port SQL 1433 ?

    idéalement je souhaite une solution qui utilise le protocole 1433 de SQL... pour l'échange de données

    Merci de ta réponse rapide c'est super sympa !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Bonjour, il ne faut pas confondre les termes.

    La réplication et la migration sont deux choses distinctes.

    Quelle utilité auront les données dans la base qui les recevra?

    Transactions avec un site web ou un web service? Réplication.

    Calcul de rapports quotidiens? ETL.

    Sauvegarde des données? Backup.

    Pour la réplication, il faut simplement la configurer entre les deux serveurs et tout va se faire automatiquement avec un délai généralement de quelques millisecondes.

    Pour un ETL, utilisez SSIS au moins au début.


    Par exemple ici nous avons plusieurs environnements (dev, test, intégration, preproduction) et nous voulons avoir des données relativement récentes sur nos serveurs. J'ai construit un package SSIS qui récupère le dernier backup et fait des restore à toutes les nuits sauf exception.

    Mais nous avons aussi plusieurs serveurs en production. Un serveur sert à faire tous les changements (insert, update) alors que d'autres serveurs traitent toutes les demandes de lecture et sont des slaves du premier serveur. Quand la demande augmente, nous créons un nouveau serveur et configurons la réplication en conséquence.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    bonjour Babyneedle ! et merci

    J'ai besoin de faire un backup / restore toute les nuits en utilisant le port 1433.
    Je suppose que ta phrase:
    "J'ai construit un package SSIS qui récupère le dernier backup et fait des restore à toutes les nuits sauf exception"
    résume bien ce que je souhaite réaliser

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Le port 1433 n'a rien à voir avec la sauvegarde / restauration d'une base de données. Il est utilisé par défaut pour écouter les connexions entrantes, et l'ouverture de la connexion sur le client se fait de façon aléatoire sur un numéro de port entre 1024 et 5000.

    Seul le transfert de la capture de réplication, qui sert à initialiser une réplication (avec comme autre possibilité de réaliser cette initialisation à partir d'une sauvegarde) se fait, par défaut :

    - soit en FTP (port 21)
    - soit en HTTP (port 80)
    - soit avec le partage de fichiers Windows (ports 137 à 139)

    Donc pour ce que vous avez besoin de réaliser, comme le disait Babyneedle, il "suffit" de créer un package SSIS qui va récupérer la dernière sauvegarde de la base de données en question sur le serveur source, et suivant ce qu'il vous est possible de faire :

    - transférer le fichier sur le serveur cible, puis restaurer à partir de ce fichier, en local
    - restaurer la base de données à partir d'un partage Windows entre les deux serveurs (RESTORE DATABASE maBD FROM DISK = '\\monserveur\monPartage$\...')

    Enfin comme vous être sous SQL Server 2008, n'oubliez pas de compresser vos sauvegardes, ce que l'on peut faire pour toutes les bases de données une bonne fois pour toutes

    @++

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Merci elsuket!!
    Ma contrainte c est que je n'ai pas de répertoire partagé, seulement le port sql pour transférer les données


    j'ai essayer la fonctionnalité d export, mais ça me créé des table à la place des vue... je ne sais pas si on peut résoudre ce problème ?

  8. #8
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par alavoler Voir le message
    j'ai essayer la fonctionnalité d export, mais ça me créé des table à la place des vue... je ne sais pas si on peut résoudre ce problème ?
    Il suffit de ne pas exporter les vues. La vue ne contient pas de données donc seul le script de création de la vue est à exécuter la première fois pour créer la vue sur le serveur cible.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    oui je sais bien darkelend, merci pour ta réponse !
    Il suffit en effet de générer une seul fois les vues, puis d exporter uniquement les tables.
    C'est bien sauf que si une vue change ca la met pas à jour, si j en rajoute non plus... bref c est pas très automatisé, c est ce que je regrette !

Discussions similaires

  1. Procédure qui ne se lance qu'une fois par jour
    Par riri2938 dans le forum VBA Access
    Réponses: 6
    Dernier message: 28/02/2009, 15h16
  2. Réponses: 9
    Dernier message: 24/06/2008, 10h31
  3. [Conception] Ajout d'un crédit une fois par jour dans la bdd
    Par Dev@lone dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 06/02/2008, 14h53
  4. [Tableaux] Une fois par jour
    Par mickado dans le forum Langage
    Réponses: 10
    Dernier message: 25/01/2007, 19h59
  5. Exécuter un script, une fois par jour
    Par Poussy-Puce dans le forum ASP
    Réponses: 1
    Dernier message: 19/10/2006, 16h55

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