繋がった。繋がらなかった原因は、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'
update nls_database_parameters SET VALUE='JA16SJIS' WHERE parameter = 'NLS_CHARACTERSET'
下記のように表示されてうまくいかなかった。
ORA-01733: ここでは仮想配列は使用できません。
この前の記憶領域のコマンドもあやふやなので、もう一度再インストールしようかなとも思ったんですが...
インストール時にキャラクタセットを指定できるところがなかった。OTZ
今日はこの辺で...
コメント (0件)