web-dev-qa-db-ja.com

既存のOracleデータベースダンプファイルのNLS_LANG設定を決定する

今年の残りの期間、去っていった別のチームからダンプファイルが渡されました。ダンプを独自のデータベースにインポートしようとすると、次のエラーが発生します。

IMP-00038:環境文字セットのハンドルに変換できませんでした

いくつかの調査によると、ソースマシンのNLS_LANG設定とローカルマシンの間に不一致があると推測されます。現在、ソースマシンでのNLS_LANGの値を確認する手段はありません。

それで、ダンプファイルだけを手にしたので、エクスポートが行われたNLS_LANG値を把握する方法はありますか?見た目からすると、インポートクライアント(imp)を実行する前に、NLS_LANG環境変数をオーバーライドできるはずです。

もう1つは、ダンプが11gインスタンスから行われ、impバージョンが10であるということです。impには上位互換性がないことを読みました。これは(NLS_LANGの不一致ではなく)ここでの問題でしょうか?

8
Ates Goral

uNIXでの最も簡単な方法は次のとおりです。

#>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)

バージョンexp/impは問題です。私は通常、V10エクスポートプログラムを使用して、V11データベースに接続します。 dev10のOracle_homeのtnsnames.oraにdev11のエイリアスがあることを確認してください。

hostname{Oracle}# . oraenv
Oracle_SID = [Oracle] ? dev10
hostname{Oracle}#
hostname{Oracle}#>exp username/password@dev11 full=y dumpfile=dump.exp
6

Ates、impdpを試してください-時々それが役立つかもしれません:-)

11
Stephan

ファイルはバイナリの文字化けですが、人間が読めるテキストの抜粋がいくつかあります。私はそこに次の文字列を見ました、そしてこれは私の質問に答えると思います:

 <CHARSET> AL32UTF8 </ CHARSET> <NCHARSET> AL16UTF16 </ NCHARSET> 
 ... 
 NLS_LANGUAGE = 'AMERICAN' NLS_TERRITORY = 'AMERICA' 
3
Ates Goral

多分それはexpdp.... try impdp ....を使用してエクスポートされました。それは私がグーグルを検索したときに見たものであり、本当にこれと同じ問題で私のために働きました。

1
Forhad

もう1つは、ダンプが11gインスタンスから行われ、impバージョンが10であるということです。impには上位互換性がないことを読みました。これは(NLS_LANGの不一致ではなく)ここでの問題でしょうか?

A:あなたは正しいです。ターゲットOracleデータベースのOracleクライアントは古いため、特定のOracleクライアントで作成されたダンプファイルをインポートすることはできません。

推奨されていませんが新しいソースOracleデータベース(つまり10g +)をでエクスポートできます。 )olderOracle Client(ie 10g)、同じOracle Clientバージョンを使用してolderターゲットOracleデータベース(ie 10g)にインポートしているため。

前提条件:ソースデータベースのOracleクライアントバージョンは、ターゲットOracleデータベースのバージョンと同じかそれよりも新しいバージョンです。ミキシングツールDatapump(11g)とimp(-10g)に注意してくださいインポートユーティリティが機能しません。

相互リンク異なるリリースとバージョンのエクスポートを使用

1
philippeko