« re : iTunes7 また、面白いことしてくれました。 | トップページ | Mac De Oracle (Cross Platform Transportable Tablespace) #8 »

2006年9月15日 (金) / Author : Hiroshi Sekiguchi.

Mac De Oracle (Cross Platform Transportable Tablespace) #7

Oracle10g EE R2 10.2.0.2.0 for Windows(32bit)から、Oracle10g EE R1 10.1.0.3.0 for MacOSX Serverへ表領域をトランスポートの続き。

3.トランスポートセットを利用し、ターゲット・データベースへ表領域をプラグインする。

1)データファイルのendianの変換及び、変換後データファイルの配置する。
2)メタデータをインポートする。
3)プラグインした表領域をread/write可能に変更する 。



1)データファイルのendianの変換及び、変換後データファイルの配置。

Windowsで行ったようにデータファイルのエンディアン変換には、RMANを利用する。以下のように問題なく終了する。

G5Server:~ oracle$ 
G5Server:~ oracle$ cd /Volumes/DiscusWork/temp
G5Server:/Volumes/DiscusWork/temp oracle$ ll
total 10560
-rw-r----- 1 oracle oinstall 81920 Sep 8 12:21 TRANSPORT4MAC.DMP
-rw-r----- 1 oracle oinstall 5251072 Sep 8 12:25 TRANSPORTABLE01.DBF
G5Server:/Volumes/DiscusWork/temp oracle$
G5Server:/Volumes/DiscusWork/temp oracle$
G5Server:/Volumes/DiscusWork/temp oracle$ rman target / nocatalog

Recovery Manager: Release 10.1.0.3.0 - Production

Copyright (c) 1995, 2004, Oracle. All rights reserved.

ターゲット・データベース: TIGER (データベースID=3592155834)に接続されました
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています

RMAN> convert datafile '/Volumes/DiscusWork/temp/TRANSPORTABLE01.DBF'
2> from platform = 'Microsoft Windows IA (32-bit)'
3> db_file_name_convert =
4> '/Volumes/DiscusWork/temp/TRANSPORTABLE01.DBF',
5> '/Volumes/DiscusWork/4oracle/u02/oradata/tiger/transportable01.dbf';

backupが開始されました(開始場所: 06-09-08)
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: sid=142 devtype=DISK
チャネルORA_DISK_1: データ・ファイルの変換を開始しています
入力ファイル名=/Volumes/DiscusWork/temp/TRANSPORTABLE01.DBF
変換済データ・ファイル = /Volumes/DiscusWork/4oracle/u02/oradata/tiger/transportable01.dbf
チャネルORA_DISK_1: データ・ファイルの変換が完了しました。経過時間: 00:00:02
backupが完了しました(完了場所: 06-09-08)

RMAN> exit

Recovery Managerが完了しました。
G5Server:/Volumes/DiscusWork/temp oracle$

2)メタデータをインポートする

Data Pump Importユーティリティを利用してメタデータをインポートする。

しか〜〜〜し、「ORA-39001: 引数値が無効です」から始まる一連のエラーメッセージとともに、異常終了する。ダンプファイルに含まれているOracle10g EE R2 で拡張された何かが悪さをしているような気もするが、インポート先が単に無理矢理構築したMacOSXのOracle10g R1だからなのか定かでない

G5Server:/Volumes/DiscusWork/temp oracle$
G5Server:/Volumes/DiscusWork/temp oracle$ impdp system/xxxxx directory=transport_dir dumpfile=TRANSPORT4MAC.DMP
transport_datafiles='/Volumes/DiscusWork/4oracle/u02/oradata/tiger/transportable01.dbf'

Import: Release 10.1.0.3.0 - Production on 金曜日, 08 9月, 2006 12:50

Copyright (c) 2003, Oracle. All rights reserved.

接続先: Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-39001: 引数値が無効です
ORA-39000: ダンプ・ファイル指定が無効です
ORA-31619: ダンプ・ファイル"/Volumes/DiscusWork/temp/TRANSPORT4MAC.DMP"が無効です


G5Server:/Volumes/DiscusWork/temp oracle$

これには後日談がある。
従来のexp/impと同じように上位リリースからエクスポートしたダンプファイルを下位リリースにインポートする場合には、上位リリースのexportユーティリティではなく、下位リリースのexportユーティリティを利用してエクスポートしたダンプファイルを利用するという制限のあることを思い出した。

そこでData Pump Exportでも、Oracle10g EE R1 10.1.0.3.0 for MacOSX Server側のものを使用してエクスポートしたダンプファイルでインポートした。
結果としてはインポートできなかったものの、「ORA-00721: リリース10.2.0.1.0の変更は、リリース10.1.0.2.0では使用できません」というエラーメッセージが返された。「ORA-31619: ダンプ・ファイル"/Volumes/DiscusWork/temp/TRANSPORT4MAC.DMP"が無効です」というエラーが消えたのである。

この辺りはマニュアルには書かれていない(私が見つけられなかっただけかもしれない)ようなので、MacOSX以外のプラットフォーム間で表領域のトランスポートを行う場合にも注意が必要だろう。また、事前の動作チェックなどは必須だろう。

尚、追加で行ったことなのだが、Oracle10g R2 10.2.0.2.0 for Windowsから同一Windows上のOracle10g R1 10.1.0.2.0 for Windowsへのトランスポートでも同様のエラーとなった。同じプラットフォーム上のOracle10g であっても R2からR1へ表領域のトランスポートは行えない事が確認できたので、MacOSX版のOracle10g R1が影響しているということはなさそうである。(impdpコマンドのversionパラメータをversion=10.1.0としても結果は変わらず)


●おまけ。
従来のexport/importによるメタデータのエクスポート/インポートでも試してみたがエラーとなる。尚、Oracle10g EE R2 for Windows(32bit)のメタデータをOracle10g EE R1 for MacOSX Serverのexportユーティリティでエクスポートし、MacOSX側でインポートした結果である。(念のため)

G5Server:/Volumes/DiscusWork/temp oracle$ imp transport_tablespace=y file=transport.dmp 
datafiles=('/Volumes/DiscusWork/4oracle/u02/oradata/tiger/transportable01.dbf') tablespaces=(transportable)

Import: Release 10.1.0.3.0 - Production on 土 9月 9 20:49:47 2006

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

ユーザー名: sys/xxxxx as sysdba

接続先: Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

エクスポート・ファイルはEXPORT:V10.01.00によって従来型パス経由で作成されました
トランスポータブル表領域メタデータをインポートします...
JA16SJISTILDEキャラクタ・セットおよびAL16UTF16 NCHARキャラクタ・セットでインポートを実行します
. SYSのオブジェクトをSYSにインポートしています
IMP-00017: 次の文は、Oracleエラー721で失敗しました:
"BEGIN sys.dbms_plugts.checkCompType('COMPATSG','10.2.0.1.0'); END;"
IMP-00003: Oracleエラー721が発生しました。
ORA-00721: リリース10.2.0.1.0の変更は、リリース10.1.0.2.0では使用できません
ORA-06512: "SYS.DBMS_PLUGTS", 行2025
ORA-06512: 行1
IMP-00000: エラーが発生したためインポートを終了します。
G5Server:/Volumes/DiscusWork/temp oracle$

今日はここまで。次回からは、MacOSX、Windows側ともに、Oracle10g R1同士でトランスポートできるか試してみることにする。




聞いている曲? 今日は無し。 m(_ _)m

| |

トラックバック


この記事へのトラックバック一覧です: Mac De Oracle (Cross Platform Transportable Tablespace) #7:

コメント

コメントを書く