Anybody Geschrieben 8. September 2006 Teilen Geschrieben 8. September 2006 Hallo Ich habe folgendes Problem. Ich habe in einer Datenbank zwei Schemen. Mit einem wird gearbeitet und das andere ist zum testen da. So, nun möchte ich in dem Testschema die Daten von dem Produktivschema abgleichen. Es soll auch nicht alles aktuallisiert werden sondern nur ein paar Tabellen. Das ganze soll zu einem bestimmten Zeitpunkt ausgeführt werden. Ich habe auch schon Ewigkeiten danach gesucht, aber nicht wirklich was passendes gefunden. Wäre hilfreich wenn jemand eine Anleitung oder einen Lösungsvorschlag parat hätte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mme Geschrieben 9. September 2006 Teilen Geschrieben 9. September 2006 du meinst tatsächlich einen abgleich über die Daten und nicht über die Strucktur der Schemata??? Nein da kenne ich kein Tool... Je nach menge der Daten kann das auch eine ziemlich lange Laufzweit haben... Es ist aber nicht so schwer ein Script dafür zu schreiben. Du musst die identischen Tabellen der beiden Schemata über alle Spalten joinen als left (oder rigth) outer join und dann dir nur die anzeigen lassen wo der jeweils andere NULL ist. Dann das ganze in die andere Richtung und du hast alle unterschiedlichen Datensätze. Wenn du das ganze noch aufgrund von dba_tables und dba_col_coulumns (heißt die View so? habe hier gerade kein System zum nachschauen) dynamisierst läuft dein Script automatisch alle Tabellen durch. Folgendes nicht dynamisierte Statement als Beispiel: create table schema1.Tab1 (a varchar2(10), b number(22), c varchar2(33)); create table schema2.Tab1 (a varchar2(10), b number(22), c varchar2(33)); select * from schema1.tab1 s1, schema2.tab1 s2 where s1.a(+) = s2.a and s1.b(+) = s2.b and s1.c(+) = s2.c and s1.a is null und andersherum... Vieleicht mal als Ansatz einer Idee.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 9. September 2006 Teilen Geschrieben 9. September 2006 Dumb ziehen und Dumb aufspielen geht nicht ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
root@localhost Geschrieben 10. September 2006 Teilen Geschrieben 10. September 2006 hi, mit exp und imp, bzw. beim import mit imp kannst du mit den parametern FROMUSER und TOUSER den dump für einen anderen user ( in ein anderes schema ) importieren. beispiele hier: http://www.datenbank-export.de/beispiele.htm um eine möglichst gute performance dabei zu erreichen würde ich außerdem die parameter BUFFER=20480, DIRECT=Y und ANALYZE=N setzen. Vorsicht bei ANALYZE=N, das frisch importierte schema muss danach manuell analyzed werden, damit die indexe wieder aktuell sind. der import an sich wird mit ANALYZE=N aber merkbar beschleunigt. falls du eine komplette datenbank spiegeln willst, würde ich dir "duplicate database" mit RMAN empfehlen, ist sehr komfortabel. gruss jay Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Anybody Geschrieben 10. September 2006 Autor Teilen Geschrieben 10. September 2006 Die beiden Schemen existieren bereits und die es sind auch Daten in beiden drin. Ich suche lediglich eine Möglichkeit die Daten upzudaten. Also ist ein Dump nicht wirklich geeignet Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 11. September 2006 Teilen Geschrieben 11. September 2006 innerhalb einer PROCEDURE, welche regelmässig von einem JOB aufgerufen wird, mittels PL/SQL die daten von SCHEMA1.TAB1 nach SCHEMA2.TAB1 schaufeln - unter zuhilfenahme von JOIN-klauseln, wie mme bereits vorgeschlagen hat. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
root@localhost Geschrieben 11. September 2006 Teilen Geschrieben 11. September 2006 Die beiden Schemen existieren bereits und die es sind auch Daten in beiden drin. Ich suche lediglich eine Möglichkeit die Daten upzudaten. Also ist ein Dump nicht wirklich geeignet hi, es ist egal ob die schemen bereits existieren, mit exp/imp und dem TABLES=(MYSCHEMA.MYTABLE) parameter kannst du nur bestimmte tabellen importieren und mit IGNORE=YES werden auch daten importiert wenn die tabelle bereits existiert, aber ein truncate oder drop table; davor, geht ja auch. ooooder: DROP TABLE testschema.table1; CREATE TABLE testschema.table1 TABLESPACE test_tbs AS SELECT * FROM liveschema.table1; gruss jay Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Anybody Geschrieben 11. September 2006 Autor Teilen Geschrieben 11. September 2006 Habs jezt anders gelöst. Bin dabei mir einen Dienst zu schreiben der mir das macht. Da kann ich dann tun und lassen was ich will. Des mit dem Dropwär zwar nett, klappt aber nicht wegen den Constraints die die Tabelle hat. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.