A voir également:
- Inyégration de bases de données.
- Reinstaller windows sans perte de données - Guide
- Effacer les données de navigation - Guide
- La zone de données passée à un appel système est insuffisante - Windows 11
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Comment sauvegarder toutes les données de mon téléphone - Guide
11 réponses
antic80
Messages postés
4785
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
27 sept. 2005 à 11:22
27 sept. 2005 à 11:22
je peut pas repondre a ta question mais je te conseille de placer ton message dans le forum programmation
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
27 sept. 2005 à 11:35
27 sept. 2005 à 11:35
Mais bon sang, pourquoi XML ?
C'est super-lourd à traiter, et c'est pas du tout adapté aux données relationnelles.
PS: Oracle est une base sql.
"sql" ? Tu veux dire "Microsoft SQL Server" ? mySQL ?
Il faut étudier le schéma des deux bases, et concevoir un schéma adapté à ton application.
Ensuite, il faut concevoir l'import des données à partir de ces deux bases dans ta nouvelle base.
C'est super-lourd à traiter, et c'est pas du tout adapté aux données relationnelles.
PS: Oracle est une base sql.
"sql" ? Tu veux dire "Microsoft SQL Server" ? mySQL ?
Il faut étudier le schéma des deux bases, et concevoir un schéma adapté à ton application.
Ensuite, il faut concevoir l'import des données à partir de ces deux bases dans ta nouvelle base.
J'ai déja fait cette étude.J'ai créé la nouvelle base et maintenant ce n'est pas toutes les tables des deux bases qui vont migrer dans la nouvelle base.Il ya quelques tables qui sont prises en charge et les applications qui utilisent les deux bases de données continuent à fonctionner mais toute modification ou mise à jour d'une donnée dans une de ces bases se répercutent automatiquement sur les données répliquées dans la nouvelle base. Ces bases sont dans des serveurs distants.Que me conseillez-vous?Merci
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
27 sept. 2005 à 12:04
27 sept. 2005 à 12:04
Il y a plusieurs solutions.
Par exemple, SQL*Loader (fourni avec Oracle) peut servir à exporter/importer les données d'une base à l'autre.
On peut aussi imaginer utiliser les systèmes de réplication inclu dans certaines bases de donnés.
On peut aussi programme ça soit-même (pour répliquer les tables à intervalles réguliers).
Par exemple, SQL*Loader (fourni avec Oracle) peut servir à exporter/importer les données d'une base à l'autre.
On peut aussi imaginer utiliser les systèmes de réplication inclu dans certaines bases de donnés.
On peut aussi programme ça soit-même (pour répliquer les tables à intervalles réguliers).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tout à l'heure j'ai parlé de XML parce qu'en fait je lis souvent des documents sur l'intégration de bases de données via XML et j'ai pensé qu'il pouvait être adapté à mon cas.
Est-ce qu'avec l'outil Oracle loader il est possible de gérer des évenements tels que la mise à jour d'une donnée dans la base déclenche automatiquement un trigger qui va modifier la donnée concernée au niveau de la nouvelle base Oracle at ainsi de suite.
Est-ce qu'avec l'outil Oracle loader il est possible de gérer des évenements tels que la mise à jour d'une donnée dans la base déclenche automatiquement un trigger qui va modifier la donnée concernée au niveau de la nouvelle base Oracle at ainsi de suite.
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
27 sept. 2005 à 14:59
27 sept. 2005 à 14:59
Est-ce qu'avec l'outil Oracle loader il est possible de gérer des évenements tels que la mise à jour d'une donnée dans la base déclenche automatiquement un trigger qui va modifier la donnée concernée au niveau de la nouvelle base Oracle at ainsi de suite.
Le déclenchement de la réplication sur un trigger, je ne te conseille pas.
Imagine si un logiciel vient écrire 5000 lignes dans la table...
Les triggers, de manière généralement, pénalisent les performances.
Il faudrait mieux prévoir un export à date/heure fixe.
Ou encore un trigger très "léger" (genre: qui va mettre un flag à 1 dans une autre table), avec un job qui va régulièrement vérifier ce flag et déclenche alors seulement SQL*Loader si le flag est changé.
Le déclenchement de la réplication sur un trigger, je ne te conseille pas.
Imagine si un logiciel vient écrire 5000 lignes dans la table...
Les triggers, de manière généralement, pénalisent les performances.
Il faudrait mieux prévoir un export à date/heure fixe.
Ou encore un trigger très "léger" (genre: qui va mettre un flag à 1 dans une autre table), avec un job qui va régulièrement vérifier ce flag et déclenche alors seulement SQL*Loader si le flag est changé.
Le probléme et que la nouvelle base de données doit être mise à jour à temps réelle. Puisque les bases auxquelles elle est liée sont transactionnelles, on va vouloir suivre certaines évolutions à partir de cette nouvelle base.De telle sorte que, par exemple, lorsqu'un client effectue une commande, les applications enregistrent cette commande dans la base SQL Server ou dans la base Oracle. Mais si le client appelle 5 minutes plus tard pour voir si commande est prise en compte, celle devra être visualisée à partir de la nouvelle base de donnée Oracle. Donc vous voyez un peu la contraine te temps réel.
J'ai pensé à un outil EAI mais c'est excessivement cher et je ne sais même ^pas si l'EAI est adapté pour féderer les données de ces deux bases dans la nouvelle.Merci
J'ai pensé à un outil EAI mais c'est excessivement cher et je ne sais même ^pas si l'EAI est adapté pour féderer les données de ces deux bases dans la nouvelle.Merci
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
27 sept. 2005 à 15:20
27 sept. 2005 à 15:20
Je vois le problème.
Dans le cadre d'une base transactionnelle, ça va être plus difficile.
Il faut essayer de taper du côté des transactions distribuées.
Je ne sais pas ce qu'il y a de disponible sous Oracle, mais sous Microsoft SQL Server, on a MSDTC qui nous permet de commiter une même transaction sur des serveurs différents.
C'est la solution la plus fiable et la plus rapide que je puisse te suggérer.
Il doit y avoir un équivalent sous Oracle.
Dans le cadre d'une base transactionnelle, ça va être plus difficile.
Il faut essayer de taper du côté des transactions distribuées.
Je ne sais pas ce qu'il y a de disponible sous Oracle, mais sous Microsoft SQL Server, on a MSDTC qui nous permet de commiter une même transaction sur des serveurs différents.
C'est la solution la plus fiable et la plus rapide que je puisse te suggérer.
Il doit y avoir un équivalent sous Oracle.
Cette solution suppose que l'on modifie le code des applications existantes. cependant le véritable probléme qui se pose est que l'une des deux applications est presque une boite noire. C'est à dire que la base de données a été achetée et l'application a été fournie avec.Ce qui va rendre difficile la modification de l'application.
j'avais pensé à votre solution mais cette contrainte m'a fait changer d'idée.
Par ailleurs il se peut qu'une donnée contenue dans la base Oracle soit également (et ce n'est pas toujours le cas) dans la base sql server, par exemple l'adresse du client.Ainsi, si son adresse est modifiée par une application de la base Oracle, cette modification se répercute au niveau de la nouvelle base . de même la base SQL doit aussi utiliser la donnée mise à jour lorsque ses application solliciterons cette même adresse. Pensez vous que ceci peut-être géré en temps réel? Quel peut-être la solution?
j'avais pensé à votre solution mais cette contrainte m'a fait changer d'idée.
Par ailleurs il se peut qu'une donnée contenue dans la base Oracle soit également (et ce n'est pas toujours le cas) dans la base sql server, par exemple l'adresse du client.Ainsi, si son adresse est modifiée par une application de la base Oracle, cette modification se répercute au niveau de la nouvelle base . de même la base SQL doit aussi utiliser la donnée mise à jour lorsque ses application solliciterons cette même adresse. Pensez vous que ceci peut-être géré en temps réel? Quel peut-être la solution?
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
27 sept. 2005 à 15:51
27 sept. 2005 à 15:51
boite noire
Garg.
Ok.
Je comprend le problème.
Pensez vous que ceci peut-être géré en temps réel?
C'est possible, mais les performances risquent d'être mauvaises si le trigger sur la base Oracle va mettre immédiatement à jour la base SQL Server (délai du temps de connexion + mise à jour, etc.).
Si un délai est acceptable, on peut prévoir une réplication à intervalles réguliers (par exemple toutes les minutes).
La réplication imposera très peu de perte de performance sur la base source.
Soit en utilisant les outils de réplication (entre Oracle et SQL Server, ça risque de ne pas être évident, mais je ne suis pas un spécialiste de la réplication).
Soit en bricolant soi-même une réplication (par exemple un import DTS dans SQL server schédulé, ou encore un SQL*Loader pour exporter, puis un BCP pour importer dans SQL Server.)
Garg.
Ok.
Je comprend le problème.
Pensez vous que ceci peut-être géré en temps réel?
C'est possible, mais les performances risquent d'être mauvaises si le trigger sur la base Oracle va mettre immédiatement à jour la base SQL Server (délai du temps de connexion + mise à jour, etc.).
Si un délai est acceptable, on peut prévoir une réplication à intervalles réguliers (par exemple toutes les minutes).
La réplication imposera très peu de perte de performance sur la base source.
Soit en utilisant les outils de réplication (entre Oracle et SQL Server, ça risque de ne pas être évident, mais je ne suis pas un spécialiste de la réplication).
Soit en bricolant soi-même une réplication (par exemple un import DTS dans SQL server schédulé, ou encore un SQL*Loader pour exporter, puis un BCP pour importer dans SQL Server.)
je ne comprend bien ce que vous voulez dire ici:
"La réplication imposera très peu de perte de performance sur la base source"
En fait, je crois qu'un délai trés court peut être accepté. Mais on ne cherche pas à faire communiquer les deux bases traditionnelles de façon directe.C'est la nouvelle base Oracle qui va être la référence, elle contient toujours les données fiables.Que la mise à jour données proviennent de la base traditionnelle Oracle ou de la base traditionnelle SQL Server. C'est comme si les bases traditionnelles pointent sur la nouvelle base Oracle.
J'aimerai que tu m'eclaircisses un peu sur le bricolage 'une réplication dont tu m'as parlé avec l'utilisation de DTS ou Sql loader. Ne penses tu pas que j'aurais besoin d'un outil logiciel pour interconnecter les bases de données?
"La réplication imposera très peu de perte de performance sur la base source"
En fait, je crois qu'un délai trés court peut être accepté. Mais on ne cherche pas à faire communiquer les deux bases traditionnelles de façon directe.C'est la nouvelle base Oracle qui va être la référence, elle contient toujours les données fiables.Que la mise à jour données proviennent de la base traditionnelle Oracle ou de la base traditionnelle SQL Server. C'est comme si les bases traditionnelles pointent sur la nouvelle base Oracle.
J'aimerai que tu m'eclaircisses un peu sur le bricolage 'une réplication dont tu m'as parlé avec l'utilisation de DTS ou Sql loader. Ne penses tu pas que j'aurais besoin d'un outil logiciel pour interconnecter les bases de données?
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
27 sept. 2005 à 16:47
27 sept. 2005 à 16:47
"La réplication imposera très peu de perte de performance sur la base source"
Un trigger va obliger à faire une opération SQL sur un autre serveur pour chaque ligne insérée ou modifiée dans la table.
5000 INSERT = 5000 connexion à un autre serveur et 5000 INSERT/UPDATE.
C'est trop important.
La réplication se contente de recopier soit l'intégralité de la table, soit juste les données modifiées, mais ça reste de la lecture.
(ça ne pénalise par les INSERT/UPDATE de la boîte noire).
j'aurais besoin d'un outil logiciel pour interconnecter les bases de données?
Je ne connais pas bien Oracle, mais il y a des outils d'import/export.
Il faut regarder la documentation.
SQL Serveur est fourni avec divers outils pour importer/exporter (DTS, BCP, etc.).
Je ne peux pas te dire quels outils seront les meilleurs pour la tâche.
Un trigger va obliger à faire une opération SQL sur un autre serveur pour chaque ligne insérée ou modifiée dans la table.
5000 INSERT = 5000 connexion à un autre serveur et 5000 INSERT/UPDATE.
C'est trop important.
La réplication se contente de recopier soit l'intégralité de la table, soit juste les données modifiées, mais ça reste de la lecture.
(ça ne pénalise par les INSERT/UPDATE de la boîte noire).
j'aurais besoin d'un outil logiciel pour interconnecter les bases de données?
Je ne connais pas bien Oracle, mais il y a des outils d'import/export.
Il faut regarder la documentation.
SQL Serveur est fourni avec divers outils pour importer/exporter (DTS, BCP, etc.).
Je ne peux pas te dire quels outils seront les meilleurs pour la tâche.
Ok, Je crois que vous avez raison avec les triggers.Cependant pour éviter de se connecter et se reconnecter à chaque événement, je pense qu'on peut utiliser les bus d'intégration tels que les ESB(Entreprise Service Bus) ou les bus XML et ainsi régler le probléme liée à la connexion au serveur distant. car dans ce cas toutes les bases vont se connecter directement au bus d'intégration. qu'en pensez vous?
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
>
Marielle
28 sept. 2005 à 09:16
28 sept. 2005 à 09:16
Je n'ai jamais essayé ces bus d'intégration, mais ça peut fonctionner.
à tester...
à tester...
Marielle
>
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
28 sept. 2005 à 10:11
28 sept. 2005 à 10:11
Merci de votre aide qui m'a permis de voir certaines failles par rapport à mon étude.A bientot