Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Oracle 9.2 - Tablespace ändern bei Datenimport bzw. -export

Frage Entwicklung Datenbanken

Mitglied: haegar4020

haegar4020 (Level 1) - Jetzt verbinden

14.06.2007, aktualisiert 15.06.2007, 12200 Aufrufe, 5 Kommentare

Schema Kopie per exp und imp soll in andere Tablespaces

Hallo!

Bei unserer Oracle 9.2.0.6 speichert eine Applikation alle Daten unter dem Schema/dem User PROD in der Instanz db01. Die DB-Objekte des Schemas sind in 3 verschiedenen Tablespaces (TS1,TS2,TS3) abgelegt.

Nun möchte ich aus Testzwecken eine Testumgebung erstellen und dazu eine Kopie des Schemas in der gleichen Instanz erstellen. Ich exportiere dazu zuerst die Daten per exp.exe von User PROD:

01.
exp system@db01 file=c:	empprod.dmp owner=PROD consistent=y buffer=20000000
Danach mache ich ein DROP auf den Testuser TEST und erstelle ihn neu mit Default-Tablespace TSTEST.

01.
imp system@db01 file=c:	empprod.dmp fromuser=PROD touser=TEST buffer=20000000

Soweit funktioniert es auch noch. Nur liegen die Tabellen im Schema TEST in den gleichen Tablespaces wie die aus dem Schema PROD (TS1-3), und nicht komplett - nämlich überhaupt nicht - in Tablespace TSTEST.

Gibt es dafür eine Lösung?


Klaus
Mitglied: Biber
14.06.2007 um 10:45 Uhr
Moin haegar4020,

willkommen im Forum.


Ich verstehe Dein Problem in zweifacher Hinsicht nicht:
  • die "kopierten" Daten liegen doch in einem anderen Schema ("Test"). Und jedes Schema, also auch das "Original" ("Prod") verwaltet doch eigene Tablespaces. Dann gibt es doch keine Kollisionen zwischen PROD.TS1 und TEST.TS1 ?
  • und WTF sollte Oracle oder sonst irgendjemand auf die Idee kommen, die "importierten" Daten in einen Tablespace namens TSTEST zu stellen? Da verstehe ich Deine Erwartungshaltung nicht ganz

Grüße
Biber
Bitte warten ..
Mitglied: Bolle97
14.06.2007 um 11:38 Uhr
Hallo,

irgendwo hat Biber schon recht.
Ich kann Dich aber auch verstehen, manchmal möchte man die Tabellen/Indizes halt in einen anderen Tablespace haben.
Ich sehe daher zwei Möglichkeiten:

1. CREATE TABLE TEST.xxx AS SELECT * FROM PROD.xxx;
Vorher dem User TEST den gewünschten Tablespace als Default geben, Indizes, Constraints und Rechte alle
manuell anlegen oder vorab Skripte schreiben.

2. Zwei Exports machen, einen mit, einen ohne Daten (ROWS=N). Den ohne Daten importieren,
Tabellen werden angelegt (im "falschen" TS),
diese mit ALTER TABLE xxx MOVE TABLESPACE xxxx; verschieben und dann den vollen Export (mit Daten) mit der Option
IGNORE=Y importieren.

Gruß - René
Bitte warten ..
Mitglied: haegar4020
14.06.2007 um 14:19 Uhr
Erstmal danke für die Anregungen.

@Biber:
ad 1. Als in meinem Oracle gibt es den TS1 nur einmal, und sowohl Tabellen vom Schema PROD als auch vom Schema TEST sind darin enthalten.

ad 2. Nunja, meine Erwartung war, dass der Default-Tablespace (TSTEST) des Schemas greift und die importierten Daten allesamt darin landen.

@René:
ad 1. Da die Tabellen aus einer zugekauften Applikation sind habe ich für die ca. 3000 Tabellen, Views, Constraints etc. keine CREATE Skripts. Mir ist auch kein Verfahren bekannt, wie ich die CREATE Skripts aus einer bestehenden DB erstellen könnte, PHPMyAdmin geht ja nicht für Oracle.

ad 2. wäre ev. noch einen Versuch Wert, die DBObjekte müsste ich ja als Liste aus irgendwelchen Oracle-Systemviews/tables bekommen, dann noch ein regexp-Ersetzen und die ALTER-Statements sollten dastehen.


Ich inzwischen selber noch rumgesucht und bin auch auf einen anderen Lösungsvorschläge gestoßen:

Wie unter Orafaq.com zu lesen ist, wird soll man dem neuen User/Schema keinen UNLIMITED TABLESPACE zugestehen, und auf die alten TS - in meinem Fall die der Produktivdatenbank - keine Quota geben. Danach sollte ein Import mit ignore=y die Objekte im Default-Tablespace des Schemas anlegen. Leider funktioniert das in meinem Fall aber nicht mit allen Objekten. Einige Tabellen hat das imp-Util mit expliziten CREATE TABLE [...] TABLESPACE TS1 etc. anzulegen versucht, ist dann aber an den fehlenden Rechten des Users TEST gescheitert, womit die Daten dann nicht vollständig waren.

Hilft mir vielleicht dieser ominöse transportable tablespace Modus vom imp/exp Utility? Kann ich damit irgendwie den Tablespace beim Import umbiegen?

Klaus
Bitte warten ..
Mitglied: Bolle97
15.06.2007 um 08:26 Uhr
Hallo,

nein, der "Transportable Tablespace"-Modus wird Dir nicht helfen, TTS ist für den Transport zwischen 2 Datenbanken gedacht.
Ein neuer Ansatz:
Bei 3000 Objekten solltest Du mal über eine eigene Testdatenbank auf einem eigenen Server nachdenken oder einen zweite Instanz auf deinem Server erstellen. Somit hättest Du mit Import und Export kein Problem mehr.
Noch eine weitere Sache, es gibt bei Oracle ein Package, welches die Definitionen von alles Objekten liefert, der Name fällt mir im Moment nicht ein, ich melde mich nochmal.

Gruß - René
Bitte warten ..
Mitglied: Bolle97
15.06.2007 um 09:23 Uhr
Hallo,

das Package nennt sich DBMS_METADATA .

Gruß - René
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Erkennung und -Abwehr
Lokale Virenprüfstation : Windows 10: Ändern von Einstellungen verhinden (5)

Frage von TryAndSolve zum Thema Erkennung und -Abwehr ...

Windows Server
gelöst Word 2010 : Absatz - Abstand per GPO ändern (3)

Frage von johanna-p zum Thema Windows Server ...

Exchange Server
Exchange 2013, Outlook 2010 Standard-Absendeadresse ändern (4)

Frage von ingoue zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...