記事カテゴリ

ユーザー機能


 2024年5月 5日(日) 14:10 JST

Oracle 10g XE インストール。再インストール?

  • 投稿者:
  • 表示回数
    30,262

繋がった。繋がらなかった原因は、Windowsファイアウォールだった。(前回のトラブル内容)
原因が分かったのでコントロールパネル!Windowsファイアウォールで例外ポートを指定する。例外ポートはTCP1521。

今度はデータベースのデータを移行しようとがんばってみる。
とあるサーバからデータを頂いてくることにする。とあるサーバはLinux上で動いている。
ここですでにExportされたデータを、新しいマイデータベースサーバに頂くという寸法。
このデータを頂こうとすると、なぜかいろいろエラーがでる。IMPでデータをIMPORTしようとすると、エラーが表示される。

imp.exe USER/PASS FROMUSER=USER FILE=\*********.dmp tables=*** TOUSER=USER IGNORE=Y
IMP-00058: Oracleエラー 12560が発生しました。
ORA-12560: TNS:プロトコル・アダプタ・エラー
IMP-00000: エラーが発生したためインポートを終了します。

接続先を指定していないので、仕方が無いのか...
IMP HELP=Y でコマンドの内容を見てみる。しかし、接続先の指定方法はない。
苦し紛れに ユーザ/パスワード の部分を ユーザ/パスワード@接続文字列 に変更してみる。
すると、エラーメッセージが変わった。一歩進んだようだ。
次のエラーは、このような感じだった。

imp.exe USER/PASS/hoge FROMUSER=USER FILE=\*********.dmp tables=*** TOUSER=USER IGNORE=Y
IMP-00067: サーバのキャラクタ・セットのハンドルを変換できません。
IMP-00000: エラーが発生したためインポートを終了します。

バージョンが違うダンプファイルは取り込み不可なんでしょうか?
で、ネットをぐぐってみる...オラクル通信:お知恵を拝借! OTN-JフォーラムのQ&Aからで旧バージョンをdmpファイルを新バージョンに取り込むのは問題が無いという。
IMPのバージョンが問題かなとOracle10のクライアントCDを探す。CD管理者に尋ねた際に、必要な原因を話してると、キャラクタセットが異なるからと言う話で、Oracleの設定を確認してみる。
(くろねこは、dmpファイルもdatabaseもSJISだと思っていた。管理者は、dmpファイルはEUCで、databaseはSJISだと思っていた。)
確認してみると、意外なことがわかった。dmpファイルはSJIS。データベースがUTF-8だったのです。
ヾ(・・;)ォィォィ スキーマ(=ユーザ)から作り直しかよ...
ちなみにキャラクタセットは、管理|データベースのバージョン情報|各国語サポートでNLS_CHARACTERSETの値を見るとわかります。
コマンドの場合は、以下で調べることが出来ます。

SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'

ここで、OracleだからSQLで変更できるだろうと、下記のようにやってみる。

 

update nls_database_parameters SET VALUE='JA16SJIS' WHERE parameter = 'NLS_CHARACTERSET'

下記のように表示されてうまくいかなかった。

ORA-01733: ここでは仮想配列は使用できません。

この前の記憶領域のコマンドもあやふやなので、もう一度再インストールしようかなとも思ったんですが...
インストール時にキャラクタセットを指定できるところがなかった。OTZ

今日はこの辺で...

トラックバック

このエントリのトラックバックURL:
https://www.blackcat.xyz/trackback.php/060407_oracle_10g_xe

以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。