« iTunes7 また、面白いことしてくれました。 | トップページ | re : iTunes7 また、面白いことしてくれました。 »

2006年9月14日 (木) / Author : Hiroshi Sekiguchi.

Mac De Oracle (Cross Platform Transportable Tablespace) #6

続きです。
さて、MacOSXのOracle10g EE R1 10.1.0.3.0からWindowsのOracle10g EE R2 10.2.0.2.0へ表領域をトランスポートできることは確認できた。では、その逆、WindowsのOracle10g EE R2の表領域をMacOSXのOracle10 EE R1へトランスポートすることはできるのだろうか?
マニュアルを見たところ、”明確”な記述が見つからない。ありがちなパターンだ!。
試してみるのが近道なので早速取りかかる。

作業は手順は、MacOSX から Windowsへのトランスポートと全く同じであるが、違う点は、WindowsからMacOSXへトランスポートするという点だけである。

1.Windows側でトランスポートセットを作成する。

 1)トランスポート対象表領域を read only に変更する。

 2)トランスポート対象表領域のメタデータをエクスポートする。
   (Data Pump Exportを使用する)
 
 3)トランスポート対象表領域に対応するデータファイルをコピーする。

 4)トランスポート対象表領域を read/write に変更する。
 
2.MacOSX側でトランスポートセットを取り込む。



1.Windows側でトランスポートセットを作成する。

1)トランスポート対象表領域を read only に変更する。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:¥Documents and Settings¥Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.2.0 - Production on 金 9月 8 12:05:48 2006

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

> conn system/xxxxxx
接続されました。

SYSTEM> alter tablespace transportable read only;

表領域が変更されました。

SYSTEM> select
2 tablespace_name,
3 status
4 from
5 dba_tablespaces
6 where
7 tablespace_name='TRANSPORTABLE';

TABLESPACE_NAME STATUS
------------------------------------------------------------ ------------------
TRANSPORTABLE READ ONLY

SYSTEM>

念のためにデータを確認しておく。
SYSTEM>
SYSTEM> select * from scott.hoge where id between 10990 and 11000 order by id;

ID NAME
---------- ----------------------------------------
10990 〜−○かきくえこ‾^:10990
10991 〜−○かきくえこ‾^:10991
10992 〜−○かきくえこ‾^:10992
10993 〜−○かきくえこ‾^:10993
10994 〜−○かきくえこ‾^:10994
10995 〜−○かきくえこ‾^:10995
10996 〜−○かきくえこ‾^:10996
10997 〜−○かきくえこ‾^:10997
10998 〜−○かきくえこ‾^:10998
10999 〜−○かきくえこ‾^:10999
11000 〜−○かきくえこ‾^:11000

11行が選択されました。

SYSTEM>


2)トランスポート対象表領域のメタデータをエクスポートする。

MacOSX上で行ったように、ディレクトリオブジェクトに対応するディレクトリ上で作業を行うことにする。(後続する作業が行い易いため)

ということで、まずは、カレントディレクトリの位置がディレクトリオブジェクトで指定したディレクトリであることを再確認しておく。
尚、 "$" は、SQL*Plusの "HOSTコマンド" と等価である。

SYSTEM> $ dir

ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 74FF-06A4 です

C:¥external_dir のディレクトリ

2006/09/08 12:18 <DIR> .
2006/09/08 12:18 <DIR> ..
2005/12/13 10:24 92 external_table_data.csv
1 個のファイル 92 バイト
2 個のディレクトリ 10,198,302,720 バイトの空き領域

SYSTEM>

メタデータのエクスポートは、Data Pump Exportで行う。(コマンドは改行しないで入力する必要があるので注意すること)
SYSTEM>
SYSTEM> $ expdp system/catfish directory=transport_dir dumpfile=transport4mac.dmp
transport_tablespaces=transpable transport_full_check=y

Export: Release 10.2.0.2.0 - Production on 金曜日, 08 9月, 2006 12:20:48

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

接続先: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining options
"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"を起動しています: system/********
directory=transport_dir dumpfile=transport4mamp transport_tablespaces=transportable
transport_full_check=y
オブジェクト型TRANSPORTABLE_EXPORT/PLUGTS_BLKの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/TABLEの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINTの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKの処理中です
マスター表"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"は正常にロード/アンロードされました
******************************************************************************
SYSTEM.SYS_EXPORT_TRANSPORTABLE_01に設定されたダンプ・ファイルは次のとおりです:
C:¥EXTERNAL_DIR¥TRANSPORT4MAC.DMP
ジョブ"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"が12:21:26で正常に完了しました

SYSTEM>


3)トランスポート対象表領域に対応するデータファイルをコピーする。

SYSTEM>
SYSTEM> $ copy F:¥oracle¥product¥10.2.0¥oradata¥catfish¥TRANSPORTABLE01.DBF .¥
1 個のファイルをコピーしました。

SYSTEM> $ dir

ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 74FF-06A4 です

C:¥external_dir のディレクトリ

2006/09/08 12:25 <DIR> .
2006/09/08 12:25 <DIR> ..
2006/09/08 12:21 1,100 export.log
2005/12/13 10:24 92 external_table_data.csv
2006/09/08 12:21 81,920 TRANSPORT4MAC.DMP
2006/09/08 12:25 5,251,072 TRANSPORTABLE01.DBF
4 個のファイル 5,334,184 バイト
2 個のディレクトリ 10,192,875,520 バイトの空き領域

SYSTEM>


4)トランスポート対象表領域を read/write に変更する。

SYSTEM>
SYSTEM> alter tablespace transportable read write;

表領域が変更されました。

SYSTEM> select
2 tablespace_name,
3 status
4 from
5 dba_tablespaces
6 where
7 tablespace_name='TRANSPORTABLE';

TABLESPACE_NAME STATUS
------------------------------------------------------------ ------------------
TRANSPORTABLE ONLINE

SYSTEM>


2.MacOSX側でトランスポートセットを取り込む。(ここからはMacOSX側での作業)

なぜ、MacOSX側へトランスポートセットを転送すると書かなかったのか? 
以前の記事を読んでもらうとわかるのだが、Windows側の共有フォルダをMacOSX側と共有しているため、Windows側からMacOSX側にデータ転送できる環境にはなっていないためだ。

ということで、Windowsの共有フォルダにあるトランスポートセットをMacOSX側でコピーした。以下は、GUIで作業中の画面のスナップショットである。
(尚、このような環境にしなければならないという事ではなく、私の都合でこのような環境にしてあるだけである。念のため。)

まずは、Windowsの共有フォルダをマウントして、、、
P1

P2

P3

P4

対象ファイルをDrag &l Dropするだけ!
P5

P6


今日はここまで。次回は、MacOSX側でデータファイルのエンディアン変換を行う。



聞いている曲:RHINOCEROS - Funk on the Railload RHINOCEROS - Funk On the Railroad - Funk On the Railroad
RHINOCEROS - Funk On the Railroad - Funk On the Railroad

Wikipedia(参考情報) 
当時、爆風銃のライブで、ほーじんのベース聞いたときは、鳥肌たちましたよ〜。
Wikipedia - RHINOCEROS

Wikipedia - 江川ほーじん
Wikipedia - 爆風銃

| |

トラックバック


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

コメント

コメントを書く