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 :

Dump SQL-Server vers Oracle


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut Dump SQL-Server vers Oracle
    Bonjour,

    Est il possible de faire un DUMP de plusieurs bases SQL SERVER (2005 & 2008) vers des bases Oracle ? (sans que ça pose problème).

    Cordialement,
    BIMAN

  2. #2
    Expert confirmé
    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
    Par défaut
    Bonjour,

    Non car dans la majorité des cas voir tous les cas une réécriture de code s'impose entre les 2 moteurs.

    ++

  3. #3
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut DUMP
    Merci Mikedavem pour votre réponse rapide.

    Donc j'ai un serieux problème : les applications sont sous SQL-Server et nous souhaitons faire un DUMP vers les bases Oracle (SGBD imposé).

    D'ou mon interrogation de sortir de ces principes en décidant de faire un DUMP de SQL-Server vers une autre base SQL-Server.


    Par contre, On me dit que :

    - Oracle est plus solide que SQL-Server : nous sommes sur des bases de quelques 20 millions d'enregistrements par an (purge touts les 5 ans) donc bases de 100 millions d'enregistrement (avant purge) - Est ce que SQL-Server supporte (sans problèmes) ces volumes ?

    - les fonctionnalités de Oracle sont plus poussées que sur SQL-Server. Quelques fonctionnalités nous interesse comme :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE TABLE2 AS SELECT * FROM TABLE1;
    qui à priori est disponible sous Oracle et qui permet de copier la structure + données + Index + Clé etc.

    Sur SQL-Server nous pouvons utiliser
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT *  INTO NouvelleTable FROM TableACopier
    qui à priori est disponible sous SQL-Server et qui permet de copier structure + données mais pas les clés + Index
    > Comment faire pour récupérer les Clés + Index.

    Cordialement,
    BIMAN

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par BIMAN Voir le message
    - Oracle est plus solide que Sql Server : nous sommes sur des bases de quelques 20 millions d'enregistrements par an (purge touts les 5 ans) donc bases de 100 millions d'enregistrement (avant purge) - Est ce que Sql Server supporte (sans problèmes) ces volumes ?
    100 millions d'enregistrements ne poseront de problème à aucun des deux SGBD.

    Citation Envoyé par BIMAN Voir le message
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE TABLE2 AS SELECT * FROM TABLE1;
    Ne copie que la table et les données.
    Rien au niveau des index, clefs, déclencheurs et privilèges.
    C'est donc très semblable au SELECT * INTO que vous évoquez.

  5. #5
    Expert confirmé
    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
    Par défaut
    - Oracle est plus solide que Sql Server : nous sommes sur des bases de quelques 20 millions d'enregistrements par an (purge touts les 5 ans) donc bases de 100 millions d'enregistrement (avant purge) - Est ce que Sql Server supporte (sans problèmes) ces volumes ?
    Bon le but ici n'est pas de faire un débat supplémentaire entre oracle et SQL Server mais la différence qu'il existait avant entre Oracle et SQL Server n'est plus vraiment valable maintenant. Ici vous parlez de volume en lignes de données mais il faudrait avoir le volume en Go voir To de vos données. Sachez que SQL Server peut travailler avec des volumétries de l'ordre du Téra sans problème. J'ai moi même administré une base faisant environ 2 To.

    les fonctionnalités de Oracle sont plus poussées que sur Sql Server. Quelques fonctionnalités nous interesse comme :
    Une des mes connaissances proches (qui se reconnaitra) m'a fourni dernièrement un comparatif effectué par le groupe Crimson Consulting qui compare la dernière version de SQL Server avec les autres SGBD du marché et cela confirme bien qu'en terme de fonctionnalités SQL Server n'a plus rien à envier à ses concurrents.

    CREATE TABLE TABLE2 AS SELECT * FROM TABLE1 ;
    qui à priori est disponible sous Oracle et qui permet de copier la structure + données + Index + Clé etc.

    Sur Sql server nous pouvons utiliser
    SELECT * INTO NouvelleTable FROM TableACopier
    qui à priori est disponible Sous Sql server et qui permet de copier structure + données mais pas les clés + Index
    > Comment faire pour récupérer les Clés + Index.
    Effectivement mais avec SQL Server vous pouvez tout à fait générer le script du schéma des objets de vos bases + utiliser les outils livrés avec SQL Server pour la partie données qui me semblent qd même plus propre. Pourquoi je dis cela ? Dans votre script oracle (je vous crois sur parole je ne connais pas Oracle) vous récupérez effectivement l'ensemble des éléments de votre schéma mais que se passe t'il si vous avez à faire à une clé étrangère qui référence une table qui n'existe pas ?

    ++

  6. #6
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut DUMP
    Ok. Merci WALDAR.

    J'ai une dernière question mais je ne sais pas si c'est possible

    Sur Sql Server comment puis je copier une table vers une autre avec toutes les caractéristiques (Structure + Données + Clés + Index + Droits ) de cette table sans spécifier unitairement les champs à sélectionner et ceux constituant la clé.

    (en faisant un CREATE NewTABLE SELECT * WHERE y = 1 FROM TABLE_SOURCE)

    Cordialement,
    BIMAN

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Clic droit sur la table > Générer un script de la table en tant que > CREATE TO.
    Modifiez le nom des objets.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Table2
    SELECT * FROM Table

  8. #8
    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
    Par défaut
    Bonjour,

    Pour générer le script d'une table sans ses données, voici une procédure que j'ai publié ici.

    Vous pouvez aussi générer le script d'une liste (ou toutes) les tables de votre base de données, avec leurs contraintes, triggers et indexes à l'aide du générateurs de script de SQL Server Management Studio, comme je l'ai montré ici.

    Le problème bien sûr, c'est qu'il vous faudra repasser ensuite pour modifier les instructions.

    Une autre solution peut être de générer un fichier plat de la ou les tables à migrer puis de l'intégrer avec un utilitaire d'Oracle.

    Enfin comme Mikedavem, j'administre pour un client une base de données de plus de 3TB qui supporte une charge uniquement OLTP (entre 3000 et 5000 utilisateurs aux heures de pointe), hébergée sur un serveur que je trouve pour le moins ridicule en termes de configuration hardware.

    La plus grosse table contient presque 500 millions de ligne, pour 133GB de donnés. Comme on est dans le domaine hospitalier, on garde toute les données.
    Le client a pas l'air de vraiment se plaindre

    @++

  9. #9
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    La plupart des ETL/ELT disponibles sur le marche permettent de travailler avec des sources heterogenes et peuvent donc ici vous aider a resoudre votre probleme de transfert de donnees d'un environnement a un autre.

    BTW, si Oracle est le SGBD impose comme vous le dites, faut il encore a ce moment la se poser les questions de differences de fonctionnalites entre les 2 SGBD ? Je presume que cette analyse a deja ete faite en amount.

  10. #10
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut DUMp
    Merci à vous pour vos réponses claires.

    La solution ETL est envisagée (et a été étudiée) avec comme gros avantage de solutionner le passage Sql server vers Oracle.

    Nous cherchons à proposer un autre scénario

    - Faire un DUMP des bases Sql server tous les soirs vers une autre base SQL Server. Nous souhaitons également créer sur cette base de sauvegarde quelques tables pécifiques (alimentées elles aussi tous les soirs).

    - Ces tables pécifiques seraient créées par un script sql (exécuté une fois) et alimentées tous les soirs par un autre script sql.Ce script sql d'alimentation réunierait dans un fichier tous les INSERT des différentes tables.

    Question : comment constituer ce fichier d'alimentation des tables ? (un fichier peut il contenir l'ensemble des INSERT à faire ?), quel type de fichier doit il être créé ? (Certainement un fichier ".sql" ?) Et comment faire pour que Sql Server le lise et l'exécute tous les soirs à une heure précise ?

  11. #11
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    - Faire un DUMP des bases Sql server tous les soirs vers une autre base SQL Server. Nous souhaitons également créer sur cette base de sauvegarde quelques tables pécifiques (alimentées elles aussi tous les soirs).

    - Ces tables pécifiques seraient créées par un script sql (exécuté une fois) et alimentées tous les soirs par un autre script sql.Ce script sql d'alimentation réunierait dans un fichier tous les INSERT des différentes tables.

    Question : comment constituer ce fichier d'alimentation des tables ? (un fichier peut il contenir l'ensemble des INSERT à faire ?), quel type de fichier doit il être créé ? (Certainement un fichier ".sql" ?) Et comment faire pour que Sql Server le lise et l'exécute tous les soirs à une heure précise ?
    Je ne comprends plus, vous êtes bien contraint de migrer en ORACLE non?

    Et comment faire pour que Sql Server le lise et l'exécute tous les soirs à une heure précise
    Tache planifiée, tache de maintenance de l'Agent SQL...

  12. #12
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut DUMP
    Si nous voulons rester dans un certain cadre avec une certaine organisation, nous sommes obligé de choisir Oracle comme SGBD pour la copie de base.

    Par contre nous pouvons toujours proposer (ça ne coute rien) d'autres alternatives comme de d'utiliser Sql Server.

    Question :

    L'agent Sql Server est il présent en version Standard (2008) ou faut il avoir la version entreprise de Sql server ?

    Ce fichier sql (contenant les INSERT) peut il être stocké dans un répertoire quelconque sur le réseau ?

  13. #13
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    L'agent Sql Server est il présent en version Standard (2008) ou faut il avoir la version entreprise de Sql server ?
    Oui il est présent de base

  14. #14
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Citation Envoyé par BIMAN Voir le message
    Ces tables pécifiques seraient créées par un script sql (exécuté une fois) et alimentées tous les soirs par un autre script sql.Ce script sql d'alimentation réunierait dans un fichier tous les INSERT des différentes tables.

    Question : comment constituer ce fichier d'alimentation des tables ? (un fichier peut il contenir l'ensemble des INSERT à faire ?), quel type de fichier doit il être créé ? (Certainement un fichier ".sql" ?) Et comment faire pour que Sql Server le lise et l'exécute tous les soirs à une heure précise ?

    Dans ce cas, optez pour l'option de faire des dumps de data en utilisant BCP et de les charger de la meme maniere.
    Cela vous permet d'avoir des fichiers de data sans devoir surcharges ceux-ci avec d'autres informations.
    De plus, ces RAW data peuvent etre utilise par differents systemes.

  15. #15
    Expert confirmé
    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
    Par défaut
    Quel est le but de cette copie de base ?

    ++

  16. #16
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut SQL SERVER => ORACLE
    Citation Envoyé par mikedavem Voir le message
    Quel est le but de cette copie de base ?

    ++

    Copie de base pour sauvegarde + alléger la base de production utilisée pour faire des reports.

    J'ai une dernière question:

    Dans le scénario d'une copie de base SQL Server vers Oracle , nous pouvons effecrtivement passer par des fichiers plats.

    Est ce que d'après vous cette solution est viable ? pouvons nous avoir des fichiers plats de plus de 2/3 millions d'enregistrements ? Quel est le délai d'intégration de tel fichier sous Oracle ?

  17. #17
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Les fichiers plats en tant que moyen d'échange entre deux sociétés, ça fonctionne bien et ça permet une grande traçabilité, maintenant en interne vous allez construire des étapes supplémentaires pour pas grand'chose.

    Liez vos deux serveurs Oracle et Microsoft par un linked server ou un DBLink, et faites transiter vos données par ce biais.

  18. #18
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Les fichiers plats en tant que moyen d'échange entre deux sociétés, ça fonctionne bien et ça permet une grande traçabilité, maintenant en interne vous allez construire des étapes supplémentaires pour pas grand'chose.

    Liez vos deux serveurs Oracle et Microsoft par un linked server ou un DBLink, et faites transiter vos données par ce biais.

    C'est un fonctionnement intéressant.

    Dans le cas de figure (base Sql server vers Oracle), je suppose que le "DbLink" est créé depuis Oracle vers Sql Server. Par contre est ce qu'un Db Link est fiable ? pouvons nous l'utiliser avec n'importe quel version de SGBD ? (
    Exemple en source : 1 base Oracle (versionxxxx) récupére certaines tables d'1 base Sql server 2005 et 1 base Sql server 2008 ? une supervision est elle nécessaire ?

  19. #19
    Expert confirmé
    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
    Par défaut
    Copie de base pour sauvegarde + alléger la base de production utilisée pour faire des reports.
    Dans ce cas si vous restez sur une solution Full SQL Server vous pouvez tout à fait adopter des solutions de type log shipping ou mirroring asysnchrone qui vous permettent d'avoir une copie de vos données sur un autre serveur + possibilités de reporting sur ce même serveur afin d'alléger la charge sur votre production

    ++

  20. #20
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut ETL
    Citation Envoyé par mikedavem Voir le message
    Dans ce cas si vous restez sur une solution Full SQL Server vous pouvez tout à fait adopter des solutions de type log shipping ou mirroring asysnchrone qui vous permettent d'avoir une copie de vos données sur un autre serveur + possibilités de reporting sur ce même serveur afin d'alléger la charge sur votre production

    ++
    Si on opte pour une solution Full Sql Server : je pense que nous avons assez d'éléments pour faire quelque chose de bien.

    Si on opte pour des solution avec SGBD hétérogènes et plus précisement pour l'emploi d'un ETL (informatica, talend etc.), ma question est la suivante :

    Imaginons qu'une table récupérée et envoyée vers un autre SGBD grâce à un ETL évolue (ajouts de nouvelles colonnes).

    l'ETL peut il (tout seul) détectée que la structure a évolué et envoyer les nouvelles colonnes automatiquement ?

Discussions similaires

  1. Outil de migration de SQL-Server vers Oracle
    Par impsaid dans le forum Administration
    Réponses: 2
    Dernier message: 15/07/2009, 16h24
  2. probleme transaction distribuée de sql server vers oracle
    Par funboard dans le forum Administration
    Réponses: 4
    Dernier message: 24/01/2008, 14h57
  3. Portage MS SQL Server vers Oracle 9i
    Par Gugli dans le forum SQL
    Réponses: 2
    Dernier message: 17/09/2007, 10h50
  4. Importation d'une base de donnée sql server vers oracle
    Par delphy456 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/01/2006, 14h44
  5. migration de données de sql server vers oracle
    Par delphy123 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/09/2005, 13h46

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