2010-11-25 14 views
8

Wir bekamen eine Dump-Datei von einem anderen Team, die für den Rest des Jahres verschwunden sind. Wenn wir versuchen, die Sicherung in unsere eigene Datenbank zu importieren, wir die folgende Fehlermeldung erhalten:Ermitteln der NLS_LANG-Einstellung für eine vorhandene Oracle-Datenbank-Dump-Datei

IMP-00038: Could not convert to environment character set's handle

Nach einigen Recherchen, unsere Spekulation ist, dass wir eine Diskrepanz zwischen der NLS_LANG Einstellung der Quellmaschine und unseren lokalen Rechnern haben. Wir haben derzeit keine Möglichkeit zu überprüfen, was der Wert von NLS_LANG auf dem Quellrechner ist.

Wenn Sie also nur eine Dump-Datei in unseren Händen haben, gibt es eine Möglichkeit, den NLS_LANG-Wert herauszufinden, mit dem der Export durchgeführt wurde? So wie es aussieht, sollten wir in der Lage sein, die Umgebungsvariable NLS_LANG vor dem Ausführen des Import-Clients (imp) zu überschreiben.

Eine andere Sache ist, der Dump wurde von einer 11g-Instanz gemacht und unsere Imp-Version ist 10. Ich habe gelesen, dass Imp ist nicht vorwärtskompatibel. Könnte dies hier das Problem sein (anstelle der NLS_LANG Mismatch)?

Antwort

6

einfachste Weg, auf Unix ist:

#>imp username/password file=test.dmp show=y 

Import: Release 10.2.0.3.0 - Production on Fri Nov 26 08:38:47 2010 

Copyright (c) 1982, 2005, Oracle. All rights reserved. 


Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production 
With the Partitioning, OLAP and Data Mining options 

Export file created by EXPORT:V10.02.01 via conventional path 
import done in US7ASCII character set and AL16UTF16 NCHAR character set 
import server uses WE8ISO8859P1 character set (possible charset conversion) 

Version exp/imp ist ein Problem: ich in der Regel die V10 verwenden Programm exportieren und es mit der V11-Datenbank verbinden. Stellen Sie sicher, dass Sie einen Alias ​​für dev11 in Ihrer tnsnames.ora in oracle_home von dev10 haben.

hostname{oracle}# . oraenv 
ORACLE_SID = [oracle] ? dev10 
hostname{oracle}# 
hostname{oracle}#>exp username/[email protected] full=y dumpfile=dump.exp 
+0

Ist es möglich, show = y nur mit einer Oracle-Client-Installation zu verwenden? Damit ich keinen Benutzernamen/Passwort brauche? – guerda

2

Obwohl die Datei binär ist, gibt es einige lesbare Textauszüge. Ich sah die folgenden Zeichenfolgen in dort, und ich denke, das beantwortet meine Frage:

 
<CHARSET>AL32UTF8</CHARSET><NCHARSET>AL16UTF16</NCHARSET> 
... 
NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' 
10

Ates, versuchen impdp - manchmal, dass :-)

+6

Die Verwendung von 'imp' zum Importieren einer Dumpdatei, die mit' expdp' exportiert wurde, kann ebenfalls zu diesem Fehler führen. –

+0

können Sie ein impdp dmp über den Kopf der dmp-Datei identifizieren (z. B. get-content abc.dmp - First 10) und dann nach "system.your_schema" suchen. Siehe: http://www.acehints.com/2013/04/how-to-identify-check-find-out-oracle.html – timB33

1

Another thing is, the dump was done from an 11g instance and our imp version is 10. I read that imp is not forward compatible. Could this be the issue here (instead of the NLS_LANG mismatch)?

A helfen könnte: Du hast recht; Sie können eine mit einem bestimmten Oracle-Client erstellte Speicherabbilddatei nicht importieren, da der Oracle-Client Ihrer Ziel-Oracle-Datenbank älter ist.

Obwohl ist es nicht empfohlen wird, können Sie eine neuere Quelle Oracle Database (dh 10 g +) mit einem älteren Oracle Client (zB 10 g) exportieren, da Sie die gleiche Oracle Client-Version verwenden in importieren Ihre ältere Ziel Oracle-Datenbank (dh 10g).

Annahme: Die Oracle-Client-Version Ihrer Quelldatenbank ist die gleiche oder neuere Version wie Ihre Oracle-Zieldatenbankversion. Beachten Sie, dass Mischwerkzeuge Datapump (11g) und imp (-10g) Import-Dienstprogramm nicht funktioniert.

Interessant Link Using Different Releases and Versions of Export

1

wurde Vielleicht expdp exportiert mit .... versuchen impdp .... das ist, was ich sah, als Google-Suche und wirklich funktionierte es für mich für das gleiche Problem.