Mac De Oracle (Cross Platform Transportable Tablespace) #5 Tweet
続きです。今回は、以下、”→”部分の操作を行う。
3.トランスポートセットを利用し、ターゲット・データベースへ表領域をプラグインする。
1)データファイルのendianの確認。MacOSX と Windows(32bit)では、endianが異なる。プラットフォーム毎の endianを確認しておく。 | |
2)データファイルのendianの変換及び、変換後データファイルの配置。 | |
→ | 3)メタデータのインポート。 |
→ | 4)プラグインした表領域をread/write可能に変更する。 |
参考資料:
「Oracle Database 管理者ガイド10g リリース 2(10.2)」の「データベース間での表領域のトランスポート」
3)メタデータのインポート。
ディレクトリオプジェクトに対応するディレクトリに配置したダンプファイルをもとに、メタデータをターゲットデータベースにData Pump Importを利用してインポートする。Data Pump Importのパラメータ等、詳細は、「Oracle Database ユーティリティ10g リリース2(10.2)」の「Data Pump Import」を参照のこと。
Data Pump Importで利用するダンプファイルの位置を確認しておく。Data Pump Importもディレクトリオブジェクトに対応するディレクトリに置かれたダンプファイルを利用する。
C:¥external_dir>sqlplus /nolog
SQL*Plus: Release 10.2.0.2.0 - Production on 木 9月 7 22:14:53 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
> conn system/xxxx
接続されました。
SYSTEM> set linesize 120
SYSTEM> col directory_path for a40
SYSTEM> col directory_name for a14
SYSTEM> col owner for a20
SYSTEM> select * from dba_directories where directory_path='C:¥external_dir';
OWNER DIRECTORY_NAME DIRECTORY_PATH
-------------------- -------------- ----------------------------------------
SYS TRANSPORT_DIR C:¥external_dir
SYSTEM>
impdpコマンドが改行しているように見えるかもしれないが、改行しないで入力する必要がある。尚、"$"は、SQL*Plusの"host"コマンドと等価である。
SYSTEM> $ impdp system/catfish directory=transport_dir dumpfile=transport.dmp
transport_datafiles='F:¥oracle¥proct¥10.2.0¥oradata¥catfish¥TRANSPORTABLE01.DBF'
Import: Release 10.2.0.2.0 - Production on 木曜日, 07 9月, 2006 22:19:26
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_IMPORT_TRANSPORTABLE_01"は正常にロード/アンロードされました
"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"を起動しています:
system/******** directory=transport_dir dumpfile=transport.dmp
ransport_datafiles='F:¥oracle¥product¥10.2.0¥oradata¥catfish¥TRANSPORTABLE01.DBF'
オブジェクト型TRANSPORTABLE_EXPORT/PLUGTS_BLKの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/TABLEの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINTの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLKの処理中です
ジョブ"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"が22:19:32で正常に完了しました
SYSTEM>
SYSTEM>
これで、プラグインは終了である。但し、プラグインした表領域は読み込み専用でプラグインされる。読み込み専用で利用する場合にはこれで不都合はないのだが、書き込みも行いたい場合には、read/write可能にする必要がある。
4)プラグインした表領域をread/write可能に変更する。
プラグイン直後は読み込み専用表領域となっている。
SYSTEM> col tablespace_name for a20
SYSTEM> select
2 tablespace_name,
3 block_size,
4 status,
5 extent_management,
6 segment_space_management,
7 bigfile,
8 contents
9 from
10 dba_tablespaces
11 where
12 tablespace_name='TRANSPORTABLE';
TABLESPACE_NAME BLOCK_SIZE STATUS EXTENT_MANAGEMENT SEGMENT_SPAC BIGFIL CONTENTS
-------------------- ---------- ------------------ -------------------- ------------ ------ ------------------
TRANSPORTABLE 8192 READ ONLY LOCAL AUTO NO PERMANENT
SYSTEM>
プラグインした表領域を読み込み/書き込み可能に変更する。
SYSTEM> alter tablespace transportable read write;
表領域が変更されました。
SYSTEM>
SYSTEM> select
2 tablespace_name,
3 block_size,
4 status,
5 extent_management,
6 segment_space_management,
7 bigfile,
8 contents
9 from
10 dba_tablespaces
11 where
12 tablespace_name='TRANSPORTABLE';
TABLESPACE_NAME BLOCK_SIZE STATUS EXTENT_MANAGEMENT SEGMENT_SPAC BIGFIL CONTENTS
-------------------- ---------- ------------------ -------------------- ------------ ------ ------------------
TRANSPORTABLE 8192 ONLINE LOCAL AUTO NO PERMANENT
SYSTEM>
プラグインした表領域に読み込み/書き込み可能であるか確認しておく。
SYSTEM> conn scott
パスワードを入力してください:
接続されました。
SCOTT>
SCOTT> desc hoge
名前 NULL? 型
----------------------------------------- -------- ------------------------
ID NOT NULL NUMBER
NAME VARCHAR2(40)
SCOTT> col name for a40
SCOTT> select * from hoge where id < 11 order by id;
ID NAME
---------- ----------------------------------------
1 〜−○あいうえおabc‾:1
2 〜−○あいうえおabc‾:2
3 〜−○あいうえおabc‾:3
4 〜−○あいうえおabc‾:4
5 〜−○あいうえおabc‾:5
6 〜−○あいうえおabc‾:6
7 〜−○あいうえおabc‾:7
8 〜−○あいうえおabc‾:8
9 〜−○あいうえおabc‾:9
10 〜−○あいうえおabc‾:10
10行が選択されました。
SCOTT>
SCOTT> begin
2 for i in 10001..11000 loop
3 insert into hoge values(i,'〜−○かきくえこ‾^:'||to_char(i));
4 end loop;
5 end;
6 /
PL/SQLプロシージャが正常に完了しました。
SCOTT> commit;
コミットが完了しました。
SCOTT> select * from 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行が選択されました。
SCOTT>
ということで、Oracle10g EE R1 10.1.0.3.0 for MacOSX Serverから、Oracle10g EE R2 10.2.0.2.0 for Windows(32bit)への表領域プラグインは可能なようだ。下位リリースから上位リリースなので問題はないだろうと想像はしていたが。。
補足情報であるが、Oracle10g EE R1 10.1.0.3.0 for MacOSX ServerからOracle10g EE R1 10.1.0.2.0 for Windows(32bit)への表領域プラグインも問題なく行えた。
次回からは、いままでとは逆に、Windows環境のOracle10g R1/R2からMacOSX環境のOracle10g R1への表領域プラグインを試すことにする。
聞いている曲:
Little Big Bee - WATERMAN - Story still continues


| 固定リンク | 0
コメント