2013年8月13日 (火)

Cross Platform Transportable Tablespace #12

ネタとしては地味ですがOracle Database 12cのTransportalbe tablespaceも軽めにチェック

以前のエントリ..2009年か〜〜遠い目
Cross Platform Transportable Tablespace #11


あれ、ちょいとズレてるけどご愛嬌:)

06:59:36 SYS@orcl12c> select * from v$version;

BANNER CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production 0
PL/SQL Release 12.1.0.1.0 - Production 0
CORE 12.1.0.1.0 Production 0
TNS for Linux: Version 12.1.0.1.0 - Production 0
NLSRTL Version 12.1.0.1.0 - Production 0

プラットフォームの情報も変化はない。Mac OSの文字もそのまま..

06:52:31 SYS@pdborcl> select * from v$transportable_platform;

PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT CON_ID
----------- ----------------------------------------------------------------------------------------------------- -------------- ----------
1 Solaris[tm] OE (32-bit) Big 0
2 Solaris[tm] OE (64-bit) Big 0
7 Microsoft Windows IA (32-bit) Little 0
10 Linux IA (32-bit) Little 0
6 AIX-Based Systems (64-bit) Big 0
3 HP-UX (64-bit) Big 0
5 HP Tru64 UNIX Little 0
4 HP-UX IA (64-bit) Big 0
11 Linux IA (64-bit) Little 0
15 HP Open VMS Little 0
8 Microsoft Windows IA (64-bit) Little 0
9 IBM zSeries Based Linux Big 0
13 Linux x86 64-bit Little 0
16 Apple Mac OS Big 0
12 Microsoft Windows x86 64-bit Little 0
17 Solaris Operating System (x86) Little 0
18 IBM Power Based Linux Big 0
19 HP IA Open VMS Little 0
20 Solaris Operating System (x86-64) Little 0
21 Apple Mac OS (x86-64) Little 0

20行が選択されました。


con_idはお約束で追加されていますが、ビューは大きく変わってないようですね。

12cで試している方のエントリを見つけたのでメモ:
Oracle 12c: Transport tablespaces across platforms




Cross Platform Transportable Tablespace #11

| | | コメント (0) | トラックバック (0)

2009年9月16日 (水)

Cross Platform Transportable Tablespace #11

twitterで呟かれていたリトルエンティアン、ビッグエンディアンで思い出したので、久々にトランスポータブル表領域について。
Oracle database 11gが登場したり、MacがPowerPCからIntelに移行したりしたのでその辺りの情報も追加されているんだろうな〜。と思い$transportable_platformの内容を比較してみた。

まず、Oracle10g R2の頃のv$transportable_platformの情報。(以前載せたものを再掲載

SYS> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
PL/SQL Release 10.2.0.2.0 - Production
CORE 10.2.0.2.0 Production
TNS for Linux: Version 10.2.0.2.0 - Production
NLSRTL Version 10.2.0.2.0 - Production

SYS> SYS> l
1 select
2 endian_format
3 ,platform_name
4 from
5* v$transportable_platform
SYS> /

ENDIAN_FORMAT PLATFORM_NAME
---------------------------- -----------------------------------------
Big Solaris[tm] OE (32-bit)
Big Solaris[tm] OE (64-bit)
Little Microsoft Windows IA (32-bit)
Little Linux IA (32-bit)
Big AIX-Based Systems (64-bit)
Big HP-UX (64-bit)
Little HP Tru64 UNIX
Big HP-UX IA (64-bit)
Little Linux IA (64-bit)
Little HP Open VMS
Little Microsoft Windows IA (64-bit)
Big IBM zSeries Based Linux
Little Linux 64-bit for AMD
Big Apple Mac OS
Little Microsoft Windows 64-bit for AMD
Little Solaris Operating System (x86)
Big IBM Power Based Linux

17行が選択されました。

SYS>


次に、Oracle11g R2のv$transportable_platformの内容
黒太字部分は名称が変っただけですね。for AMDからx86と変更されている。
また、赤太字のHP IA Open VMSとSolaris Operating System (x86-64)が追加されている。

SYS> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production

SYS> l
1 select
2 endian_format
3 ,platform_name
4 from
5* v$transportable_platform
SYS> /

ENDIAN_FORMAT PLATFORM_NAME
-------------- --------------------------------------------------
Big Solaris[tm] OE (32-bit)
Big Solaris[tm] OE (64-bit)
Little Microsoft Windows IA (32-bit)
Little Linux IA (32-bit)
Big AIX-Based Systems (64-bit)
Big HP-UX (64-bit)
Little HP Tru64 UNIX
Big HP-UX IA (64-bit)
Little Linux IA (64-bit)
Little HP Open VMS
Little Microsoft Windows IA (64-bit)
Big IBM zSeries Based Linux
Little Linux x86 64-bit
Big Apple Mac OS
Little Microsoft Windows x86 64-bit
Little Solaris Operating System (x86)
Big IBM Power Based Linux
Little HP IA Open VMS
Little Solaris Operating System (x86-64)

19行が選択されました。


SYS>


最後は、先日リリースされたOracle11g R2のv$transportable_platformの内容。
赤太字で示した通り、Intel Macが追加されている。PowerPC版のMacはBig eneianだったがIntel版ではLittle endian。

SYS> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

SYS>
SYS> l
1 select
2 endian_format
3 ,platform_name
4 from
5* v$transportable_platform
SYS> /

ENDIAN_FORMAT PLATFORM_NAME
-------------- --------------------------------------------------
Big Solaris[tm] OE (32-bit)
Big Solaris[tm] OE (64-bit)
Little Microsoft Windows IA (32-bit)
Little Linux IA (32-bit)
Big AIX-Based Systems (64-bit)
Big HP-UX (64-bit)
Little HP Tru64 UNIX
Big HP-UX IA (64-bit)
Little Linux IA (64-bit)
Little HP Open VMS
Little Microsoft Windows IA (64-bit)
Big IBM zSeries Based Linux
Little Linux x86 64-bit
Big Apple Mac OS
Little Microsoft Windows x86 64-bit
Little Solaris Operating System (x86)
Big IBM Power Based Linux
Little HP IA Open VMS
Little Solaris Operating System (x86-64)
Little Apple Mac OS (x86-64)

20行が選択されました。

SYS>

| | | コメント (0) | トラックバック (0)

2006年9月18日 (月)

Mac De Oracle (Cross Platform Transportable Tablespace) #10

これまでいくつかのパターンを試してきたが、自分でも結果を忘れてしまいそうなので、そろそろ、まとめを。。



試した組み合わせや手順に限るのだが、表領域トランスポートの可否をマトリックス化してまとめておく。(Linuxも含めればよかったかもしれないと思いつつ。。それはいずれまた)
尚、標準ブロックサイズ以外のブロックサイズを持つ表領域のトランスポートも可能ではあるが、今回は、全てのデータベースでブロックサイズを8Kとした。






































































  ソースデータベース ターゲットデータベース   ソースデータベース ターゲットデータベース
Oracle10g EE R1 10.1.0.3.0 Oracle10g EE R1 10.1.0.2.0 Oracle10g EE R1 10.1.0.2.0 Oracle10g EE R1 10.1.0.3.0
Mac OSX Server 10.4.7 Windows XP ProSP2 Windows XP ProSP2 Mac OSX Server 10.4.7
表領域の読込み専用状態へ変更
(1)○
(1)○
メタデータのエクスポート(Data Pump Export)
(2)○
(2)○
データファイルをコピー*3
(3)○
 
(4)○
データファイルのエンディアン変換
(4)○*1
(3)○*2

メタデータのインポート(Data Pump Import)


(5)○
 
(5)○
表領域をread/write可能状態へ変更
(6)○
 
(6)○
 
トランスポート可能
トランスポート可能

 








































































  ソースデータベース ターゲットデータベース   ソースデータベース ターゲットデータベース
Oracle10g EE R1 10.1.0.3.0 Oracle10g EE R2 10.2.0.2.0 Oracle10g EE R2 10.2.0.2.0 Oracle10g EE R1 10.1.0.3.0
Mac OSX Server 10.4.7 Windows XP ProSP2 Windows XP ProSP2 Mac OSX Server 10.4.7
表領域の読込み専用状態へ変更
(1)○
(1)○*4
*4
メタデータのエクスポート(Data Pump Export)
(2)○
(2)○
データファイルをコピー*3
(3)○
 
(4)○
データファイルのエンディアン変換
(4)○*1
(3)○*2

メタデータのインポート(Data Pump Import)


(5)○
 
(5)×
表領域をread/write可能状態へ変更
(6)○
 
 
トランスポート可能
トランスポート不可

 








































































  ソースデータベース ターゲットデータベース   ソースデータベース ターゲットデータベース
Oracle10g EE R1 10.1.0.2.0 Oracle10g EE R2 10.2.0.2.0 Oracle10g EE R2 10.2.0.2.0 Oracle10g EE R1 10.1.0.2.0
Windows XP ProSP2 Windows XP ProSP2 Windows XP ProSP2 Windows XP ProSP2
表領域の読込み専用状態へ変更
(1)○
(1)○*4
*4
メタデータのエクスポート(Data Pump Export)
(2)○
(2)○
データファイルをコピー*3
(3)○
 
(4)○
データファイルのエンディアン変換
(4)○*1
(3)○*2

メタデータのインポート(Data Pump Import)


(5)○
 
(5)×
表領域をread/write可能状態へ変更
(6)○
 
 
トランスポート可能
トランスポート不可

● ()内の数値は操作順を示す。

● *1:RMAN(Recovery Manager)の convert datafileコマンドを利用する。

● *2:RMAN(Recovery Manager)のconvert tablespaceコマンドを利用する。

● *3:データファイルのコピーでは、手順により、エンディアン変換前又は、

    変換後のデータファイルのいずれかをコピー対象とする。

● *4:ソースデータベース側又は、ターゲットデータベース側のData Pump Exportを

    利用し、メタデータエクスポートを行う。

● 尚、実際の操作手順については、以前の記事を参照のこと。


●おまけ
プラグインされた表領域は、DBA_TABLESPACESディクショナリビューのPLUGED_IN列の値が、 YES となるので、該当データベースで作成された表領域なのかプラグインされた表領域なのか区別することができる。

SYSTEM> col tablespace_name for a30
SYSTEM> l
1 select tablespace_name,block_size,status,plugged_in
2* from dba_tablespaces
SYSTEM> /

TABLESPACE_NAME BLOCK_SIZE STATUS PLUGGE
------------------------------ ---------- ------------------ ------
SYSTEM 8192 ONLINE NO
UNDOTBS1 8192 ONLINE NO
SYSAUX 8192 ONLINE NO
TEMP 8192 ONLINE NO
USERS 8192 ONLINE NO
EXAMPLE 8192 ONLINE YES
FLOW_1 8192 ONLINE NO
TRANSPORTABLE 8192 ONLINE YES

8行が選択されました。

SYSTEM>



聞いている曲:Shakatak - Beautiful Day Shakatak - BEAUTIFUL DAY (ビューティフル・デイ) - BEAUTIFUL DAY
Shakatak - BEAUTIFUL DAY (ビューティフル・デイ) - BEAUTIFUL DAY

| | | コメント (0) | トラックバック (0)

2006年9月17日 (日)

Mac De Oracle (Cross Platform Transportable Tablespace) #9

Oracle10g EE R1 10.1.0.2.0 for Windows(32bit)から、Oracle10g EE R1 10.1.0.3.0 for MacOSX Serverへ表領域をトランスポートする。その2 ラス前です。

2.MacOSX側(ターゲットデータベース側)でメタデータのダンプファイルとエンディアン変換後のデータファイルを取り込む。

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

1)エンディアン変換済みデータファイルを配置する。
2)メタデータをインポートする。
3)プラグインした表領域をread/write可能にする 。



2.MacOSX側(ターゲットデータベース側)でメタデータのダンプファイルとエンディアン変換後のデータファイルをWindowsの共有ディレクトリからコピーする。

この作業は前回から何度もやっているので今回は、GUIではなくTerminalから。

G5Server:/Volumes/DiscusWork/temp oracle$ 
G5Server:/Volumes/DiscusWork/temp oracle$ sudo cp /Volumes/WORKGROUP¥;CATFISH/TRANSPORT4MAC.DMP ./
Password:
G5Server:/Volumes/DiscusWork/temp oracle$ sudo cp /Volumes/WORKGROUP¥;CATFISH/TRANSPORTABLE01.DBF ./
G5Server:/Volumes/DiscusWork/temp oracle$ sudo chown oracle *.*
G5Server:/Volumes/DiscusWork/temp oracle$ ll
total 10560
-rwx------ 1 oracle oinstall 81920 Sep 9 12:24 TRANSPORT4MAC.DMP
-rwx------ 1 oracle oinstall 5251072 Sep 9 12:18 TRANSPORTABLE01.DBF
G5Server:/Volumes/DiscusWork/temp oracle$ chmod u-x,g+r *.*
G5Server:/Volumes/DiscusWork/temp oracle$ ll
total 10560
-rw-r----- 1 oracle oinstall 81920 Sep 9 12:24 TRANSPORT4MAC.DMP
-rw-r----- 1 oracle oinstall 5251072 Sep 9 12:18 TRANSPORTABLE01.DBF
G5Server:/Volumes/DiscusWork/temp oracle$

でWindowsの共有フォルダからDrag & Dropでローカルフォルダにコピーした状態がこれ。
P6_1


3.トランスポートセットを利用し、ターゲット・データベースへ表領域をプラグインする。
1)エンディアン変換済みデータファイルを配置する。

G5Server:/Volumes/DiscusWork/temp oracle$ ll
total 10560
-rw-r----- 1 oracle oinstall 81920 Sep 9 12:24 TRANSPORT4MAC.DMP
-rw-r----- 1 oracle oinstall 5251072 Sep 9 12:18 TRANSPORTABLE01.DBF
G5Server:/Volumes/DiscusWork/temp oracle$
G5Server:/Volumes/DiscusWork/temp oracle$ cp ./transportable01.dbf /Volumes/DiscusWork/4oracle/u02/oradata/tiger
G5Server:/Volumes/DiscusWork/temp oracle$

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

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 土曜日, 09 9月, 2006 13:02

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
マスター表"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"は正常にロード/アンロードされました
"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"を起動しています: system/******** directory=transport_dir
dumpfile=TRANSPORT4MAC.DMP
transport_datafiles=/Volumes/DiscusWork/4oracle/u02/oradata/tiger/transportable01.dbf
オブジェクト型TRANSPORTABLE_EXPORT/PLUGTS_BLKの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/TABLEの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINTの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLKの処理中です
ジョブ"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"が13:02で正常に完了しました

G5Server:/Volumes/DiscusWork/temp oracle$


3)プラグインした表領域をread/write可能にする

G5Server:/Volumes/DiscusWork/temp oracle$ 
G5Server:/Volumes/DiscusWork/temp oracle$ sqlplus /nolog

SQL*Plus: Release 10.1.0.3.0 - Production on 土 9月 9 13:04:08 2006

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

> conn system
パスワードを入力してください:
接続されました。
SYSTEM> select
2 tablespace_name,
3 block_size,
4 status
5 from
6 dba_tablespaces;

TABLESPACE_NAME BLOCK_SIZE STATUS
------------------------------ ---------- ---------
SYSTEM 8192 ONLINE
UNDOTBS1 8192 ONLINE
SYSAUX 8192 ONLINE
TEMP 8192 ONLINE
USERS 8192 ONLINE
EXAMPLE 8192 ONLINE
FLOW_1 8192 ONLINE
TRANSPORTABLE 8192 READ ONLY

8行が選択されました。

SYSTEM> alter tablespace transportable read write;

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

SYSTEM> conn scott/xxxx
接続されました。
SCOTT> select * from hoge where id between 1 and 10 order by id;

ID NAME
---------- ----------------------------------------
1 〜−○かきくえこ‾^:1
2 〜−○かきくえこ‾^:2
3 〜−○かきくえこ‾^:3
4 〜−○かきくえこ‾^:4
5 〜−○かきくえこ‾^:5
6 〜−○かきくえこ‾^:6
7 〜−○かきくえこ‾^:7
8 〜−○かきくえこ‾^:8
9 〜−○かきくえこ‾^:9
10 〜−○かきくえこ‾^:10

10行が選択されました。

SCOTT> l
1 begin
2 for i in 10001..11000 loop
3 insert into hoge values(i,'〜=|○あいうえおabc‾^:'||to_char(i));
4 end loop;
5* end;
SCOTT> /

PL/SQLプロシージャが正常に完了しました。

SCOTT> commit;

コミットが完了しました。

SCOTT> select * from hoge where id between 10990 and 11000 order by id;

ID NAME
---------- ----------------------------------------
10990 〜=|○あいうえおabc‾^:10990
10991 〜=|○あいうえおabc‾^:10991
10992 〜=|○あいうえおabc‾^:10992
10993 〜=|○あいうえおabc‾^:10993
10994 〜=|○あいうえおabc‾^:10994
10995 〜=|○あいうえおabc‾^:10995
10996 〜=|○あいうえおabc‾^:10996
10997 〜=|○あいうえおabc‾^:10997
10998 〜=|○あいうえおabc‾^:10998
10999 〜=|○あいうえおabc‾^:10999
11000 〜=|○あいうえおabc‾^:11000

11行が選択されました。

SCOTT>

次回、Cross Platform Transportable Tablespaceの最終回へつづく。



聞いている曲:Jaco Pastorius - Stuttgart Aria Bireli Lagrene & Jaco Pastorius - Stuttgart Aria - Stuttgart Aria I
Bireli Lagrene & Jaco Pastorius - Stuttgart Aria - Stuttgart Aria I

| | | コメント (0) | トラックバック (0)

2006年9月16日 (土)

Mac De Oracle (Cross Platform Transportable Tablespace) #8

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

今回はいままでの手順とは少々異なる。理由は後半で。(尚、ディレクトリオブジェクトや表領域及び、その表領域に含まれる表は、以前と同様な名称内容で作成済みである)

1.Windows側(ソースデータベース側)でトランスポートセットを作成する。

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

 2)トランスポート対象表領域のメタデータをエクスポートする。
   (Data Pump Exportを使用する)
 
 3)トランスポート対象表領域に対応するデータファイルのエンディアン変換した複製を作る。

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



1.Windows側(ソースデータベース側)でトランスポートセットを作成する。
1)トランスポート対象表領域を read only に変更する。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

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

SQL*Plus: Release 10.1.0.2.0 - Production on 土 9月 9 12:52:12 2006

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

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

SYSTEM> alter tablespace transportable read only;

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

SYSTEM>

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

SYSTEM> $ expdp system/glasscatfish directory=transport_dir dumpfile=transport4mac.dmp 
transport_tablespaces=transportable transport_full_check=y

Export: Release 10.1.0.2.0 - Production on 土曜日, 09 9月, 2006 13:07

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

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


SYSTEM>


3)トランスポート対象表領域に対応するデータファイルのエンディアン変換した複製を作る。

いままでは、ターゲットデータベース側のRMANでエンディアン変換していたのだが、今回は、ソースデータベース側でエンディアン変換してしまう。(ターゲットデータベース側でのエンディアン変換が失敗する場合など、状況に応じて、ターゲット又はソースデータベース側のいずれかでエンディアン変換すればいいだろう。)

尚、ソースデータベース側でエンディアン変換するには、RMANの convert tablespaceを利用する。

SYSTEM>
SYSTEM> $
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the OLAP and Data Mining optionsとの接続が切断されました。

C:¥external_dir>rman target / nocatalog

Recovery Manager: Release 10.1.0.2.0 - Production

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

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

RMAN> convert tablespace transportable
2> to platform 'Apple Mac OS'
3> format='c:¥external_dir¥transportable01.dbf'
4> ;

backupが開始されました(開始場所: 06-09-09)
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: sid=142 devtype=DISK
チャネルORA_DISK_1: データ・ファイルの変換を開始しています
入力データ・ファイルfno=00005 名前=C:¥ORACLE¥PRODUCT¥10.1.0¥TEST¥GLASSCAT¥TRANSPORTABLE01.DBF
変換済データ・ファイル = C:¥EXTERNAL_DIR¥TRANSPORTABLE01.DBF
チャネルORA_DISK_1: データ・ファイルの変換が完了しました。経過時間: 00:00:01
backupが完了しました(完了場所: 06-09-09)

RMAN> exit


Recovery Managerが完了しました。

SYSTEM>


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

SYSTEM>
SYSTEM> $ dir

C:¥external_dir のディレクトリ

2006/09/09 13:11 <DIR> .
2006/09/09 13:11 <DIR> ..
2006/09/09 13:09 1,050 export.log
2006/09/09 13:09 77,824 TRANSPORT4MAC.DMP
2006/09/09 13:06 5,251,072 TRANSPORTABLE01.DBF

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>


●手順を少々変更した理由について。

今までは、ターゲットデータベース側(トランスポート先)でデータファイルのエンディアン変換を行っていたのだが、今回はソースデータベース側で変換した。
マニュアルを読む限り変換を行うのは、どちらで行っても関係ないと受け取れるのだが、今回の場合、MacOSX側での変換は以下のように失敗する。その解決策として、ソースデータベース側でエンディアン変換することにした、というのが理由なのである。

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-09)
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: sid=147 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 09/09/2006 12:55:34
ORA-06502: PL/SQL: 数値または値のエラー: 文字列バッファが小さすぎます。が発生しました

RMAN>

今日はここまで。次回は、ターゲットデータベース側(MacOSX側)で表領域のインポートまでの操作を行う。



3連休、台風の影響で天気が悪いのかと思っていたが、今日だけは天気が持ちそうなので、久々に鎌倉ドライブでもしてきますかね。

聞いている曲:Karl Denson - Dance Lesson #2 - Who are you? Karl Denson - Dance Lesson #2 - Who Are You?
Karl Denson - Dance Lesson #2 - Who Are You?

| | | コメント (0) | トラックバック (0)

2006年9月15日 (金)

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

| | | コメント (0) | トラックバック (0)

2006年9月14日 (木)

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 - 爆風銃

| | | コメント (0) | トラックバック (0)

2006年9月13日 (水)

Mac De Oracle (Cross Platform Transportable Tablespace) #5

続きです。今回は、以下、”→”部分の操作を行う。

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 Little Big Bee - WATERMAN
Little Big Bee - WATERMAN

| | | コメント (0) | トラックバック (0)

2006年9月12日 (火)

Mac De Oracle (Cross Platform Transportable Tablespace) #4

続きです。今回は、以下、”→”部分の操作を行う。

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

1)データファイルのendianの確認。
MacOSX と Windows(32bit)では、endianが異なる。プラットフォーム毎の endianを確認しておく。
2)データファイルのendianの変換及び、変換後データファイルの配置。
3)メタデータのインポート。
4)プラグインした表領域をread/write可能に変更する。


参考資料:
「Oracle Database 管理者ガイド10g リリース 2(10.2)」の「データベース間での表領域のトランスポート」



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

データファイル(c:¥externa_dir¥transportable01.dbf)を、big endianからlittle endianへ変換し、変換後のデータファイルは、ターゲットデータベースのデータファイルを配置位置(F:¥oracle¥product¥10.2.0¥oradata¥catfish¥transportable01.db)に作成する。endianの変換には、RMAN(Recovery Manager)を利用する。RMANのパラメータの詳細は、「リカバリーマネージャ」のCONVERTコマンドを参照のこと。

尚、Oracle10g R2では、RMANにTRANSPORT TABLESPACEコマンドが追加されている、(トランスポート表領域の機能拡張のようなのでいずれ試してみるか?!。。。)

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

C:¥external_dir のディレクトリ

2006/09/07 22:09 <DIR> .
2006/09/07 22:09 <DIR> ..
2006/09/07 21:39 77,824 transport.dmp
2006/09/07 21:42 5,251,072 transportable01.dbf

C:¥external_dir>rman target / nocatalog

Recovery Manager: Release 10.2.0.2.0 - Production on 木 9月 7 22:09:24 2006

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

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

RMAN>
RMAN> convert datafile 'C:¥external_dir¥transportable01.dbf'
2> from platform = 'Apple Mac OS'
3> db_file_name_convert =
4> 'C:¥external_dir¥transportable01.dbf',
5> 'F:¥oracle¥product¥10.2.0¥oradata¥catfish¥transportable01.dbf';

backupが開始されました(開始時間: 06-09-07)
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: sid=159 devtype=DISK
チャネルORA_DISK_1: データファイルの変換を開始しています
入力ファイル名=C:¥EXTERNAL_DIR¥TRANSPORTABLE01.DBF
変換済データファイル = F:¥ORACLE¥PRODUCT¥10.2.0¥ORADATA¥CATFISH¥TRANSPORTABLE01.DBF
チャネルORA_DISK_1: データファイルの変換が完了しました。経過時間: 00:00:02
backupが完了しました(完了時間: 06-09-07)

RMAN> exit

Recovery Managerが完了しました。

C:¥external_dir>

コンバート後(載せることもないのだが、、、、)
Endian_converted


今日はここまで。次回は、メタデータのインポートを行う。



聞いている曲:
Rainbow - I Surrender Rainbow - Rainbow - I Surrender

| | | コメント (0) | トラックバック (0)

2006年9月11日 (月)

Mac De Oracle (Cross Platform Transportable Tablespace) #3

続きです。ここからは、ターゲットデータベース側である Windows上で操作を行う。

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

1)データファイルのendianの確認。

MacOSX と Windows(32bit)では、endianが異なる。プラットフォーム毎の endianを確認しておく。
2)データファイルのendianの変換及び、変換後データファイルの配置。
3)メタデータのインポート。
4)プラグインした表領域をread/write可能に変更する。


参考資料:
「Oracle Database 管理者ガイド10g リリース 2(10.2)」の「データベース間での表領域のトランスポート」



1)endianの確認。

DOSプロンプトを起動し、前回の、2.でダンプファイルとデータファイルを転送した共有フォルダへカレントディレクトリを移動する。(尚、共有フォルダへカレントディレクトリを移動したのは、後続する操作を行い易くするためだけなので、ご自分の環境に合わせて都合のよい方法にすればよいだろう。)

次にsql*plusを起動して、v$transportable_platform動的パフォーマンスビューを問い合わせる。見ての通り、MacOSXは、big endian、Windows(32bit)は、little endian であることから、big endianからlittle endianへのコンパートが必要であることがわかる。

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:¥Documents and Settings¥discus>cd C:¥external_dir

C:¥external_dir>sqlplus /nolog

SQL*Plus: Release 10.2.0.2.0 - Production on 木 9月 7 22:06:10 2006

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

> conn / as sysdba
接続されました。
SYS> col platform_name for a41
SYS> set pagesize 1000
SYS> select
2 endian_format,
3 platform_name
4 from
5 v$transportable_platform;

ENDIAN_FORMAT PLATFORM_NAME
---------------------------- -----------------------------------------
Big Solaris[tm] OE (32-bit)
Big Solaris[tm] OE (64-bit)
Little Microsoft Windows IA (32-bit)
Little Linux IA (32-bit)
Big AIX-Based Systems (64-bit)
Big HP-UX (64-bit)
Little HP Tru64 UNIX
Big HP-UX IA (64-bit)
Little Linux IA (64-bit)
Little HP Open VMS
Little Microsoft Windows IA (64-bit)
Big IBM zSeries Based Linux
Little Linux 64-bit for AMD
Big Apple Mac OS
Little Microsoft Windows 64-bit for AMD
Little Solaris Operating System (x86)
Big IBM Power Based Linux

17行が選択されました。

SYS>
SYS> exit
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining optionsとの接続が切断されました。

今日は、ここまで、次回へつづく。



聞いている曲:
Naturall 7 -レディ・II・フライ Naturally 7 - レディ・II・フライ
Naturally 7 - レディ・II・フライ

| | | コメント (0) | トラックバック (0)

2006年9月10日 (日)

Mac De Oracle (Cross Platform Transportable Tablespace) #2

前回の続き。

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

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

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

 4)トランスポート対象表領域を read/write に変更する。
 
2.Windows側へトランスポートセットを転送する。



では、早速取りかかる。

1)該当表領域を read only にする。

> conn system
パスワードを入力してください:
接続されました。

SYSTEM> alter tablespace transportable read only;

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

SYSTEM> select tablespace_name,status from dba_tablespaces where tablespace_name='TRANSPORTABLE';

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

2)表領域のメタデータをエクスポートする。(Data Pump Exportを使用する)

Data Pump Exportの各パラメータについては、Oracle Database ユーティリティガイド 10g リリース1を参照のこと。

準備作業で作成したディレクトリオブジェクト(transport_dir)に対応するディレクトリに、ダンプファイルが作成される。(画面上、expdpコマンドが改行されているように見えるかもしれないが、expdpコマンドは改行しないで入力する必要があるので注意すること。)

SYSTEM> ! expdp system/xxxxxx 
directory=transport_dir dumpfile=transport.dmp transport_tablespaces=transportable transport_full_check=y

Export: Release 10.1.0.3.0 - Production on 木曜日, 07 9月, 2006 22:38

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
"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"を起動しています: system/******** directory=transport_dir
dumpfile=transport.dmp transport_tablespaces=transportable transport_full_check=y
オブジェクト型TRANSPORTABLE_EXPORT/PLUGTS_BLKの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/TABLEの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINTの処理中です
オブジェクト型TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLKの処理中です
マスター表"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"は正常にロード/アンロードされました
******************************************************************************
SYSTEM.SYS_EXPORT_TRANSPORTABLE_01に設定されたダンプ・ファイルは次のとおりです:
/Volumes/DiscusWork/temp/transport.dmp
ジョブ"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"が22:39で正常に完了しました


SYSTEM>


3)表領域に対応するデータファイルをコピーする。

トランスポート対象表領域に対応するデータファイルを、2)で作成されたダンプファイルのあるディレクトリにコピーする。

注)
ダンプファイルと同じディレクトリにコピーしたのは、後続する操作の効率アップの為であり、必ず、ダンプファイルと、同一ディレクトリにコピーしなければならないということではない。(あくまで、私の都合でそのようにしているだけ)

SYSTEM> ! cp /Volumes/DiscusWork/4oracle/u02/oradata/tiger/transportable01.dbf /Volumes/DiscusWork/temp


4)該当表領域を read/write モードに変更する。

SYSTEM> alter tablespace transportable read write;

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

SYSTEM> select tablespace_name,status from dba_tablespaces where tablespace_name='TRANSPORTABLE';

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

SYSTEM>

これでトランスポートセットの作成は終了である。

ダンプファイルとデータファイルのあるフォルダ
001


2.Windows側へトランスポートセットを転送する。

トランスポートセット(メタデータのダンプファイルと、表領域に対応するデータファイル)を Windows側へ転送する。

転送方法はいろいろあるが、今回は、Windowsの共有ディレクトリに、ドラッグ&ドロップでコピーする。(Window側の該当ディレクトリを共有設定にし、読み込み及び書き込みができるように権限を設定しておく。)
準備ができたら各ファイルをMacOSXのフォルダからWindowsの共有フォルダへドラッグ&ドロップしてコピーする。

1)Windowsの共有フォルダを共有ボリュームとしてマウントする

002

003

004

2)ダンプファイルとデータファイルをWindows側へDrag & Dropでコピーする。

005

006

これで、MacからWindowsへのファイル転送は終了した。Windows側から見ると以下のような状態になっている。

007


今日はここまで。
次回は、Oracle10g R1 for MacOSX Serverから転送した表領域を、Oracle10g R2 for Windows へプラグイン! する。




聞いている曲:
Peace Orchestra - Peace Orchestra - Who am i? Peace Orchestra - Peace Orchestra
Peace Orchestra - Peace Orchestra

| | | コメント (0) | トラックバック (0)

2006年9月 8日 (金)

Mac De Oracle (Cross Platform Transportable Tablespace) #1

さて、予告通りクロスプラットフォーム・トランスポータブル表領域機能をMacOSX上で試す事にする。
トランスポータブル表領域は、Oracle8i からサポートされていた機能であるが、Oracle10gでは、その機能が拡張され異なるプラットフォーム間で表領域を移動することができるようになった。

Mac De Oracleでは、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.2.0 for Windows(32bit) を利用し試してみることにする。

※MacOS Xは、Big endian、Windowsは、Little endianであるため、endianの変換がポイント。


H/Wは以下の通り。


● Oracle10g EE R1 10.1.0.3.0 (無理矢理インストールはこちらから)
 Apple PowerMac G5 Dual 2.7Ghz
 Memory : 1GB
 OS : MacOSX Server Tiger 10.4.7

● Oracle10g EE R1 10.1.0.2.0 / Oracle10g EE R2 10.2.0.2.0
 AMD AthronMP Dual 2800+
 Memory : 1GB
 OS : Windows XP Professional SP2

尚、データベースキャラクタセット及び、各国語キャラクタセットは、すべて同じである。

まずは、Oracle10g EE R1 10.1.0.3.0 for MacOSX ServerからOracle10g EE R2 for Windows(32bit) へのトランスポートを行う。

クロス・プラットフォーム・トランスポートの手順は以下。

前提や制限の詳細については、管理者ガイドの「データベース間での表領域のトランスポート」に記載されているので、そちらを参照のこと。

1.ソース・データベース側で、トランスポートセットを作成する。

トランスポートセットとは、トランスポートする表領域に含まれるすべてのデータファイルと、エクスポートされたメタデータを指す。
2.ダーゲット・データベース側のあるサーバへトランスポートセットをコピーする。
   (ターゲットデータベースが別サーバにある場合)

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

●準備

ソースデータベース側(MacOSX側)でトランスポートする表領域の準備を行う。
この例では、データファイルを1つ持つ表領域を作成し、簡単なリレーショナル表を作成しておく。


・表領域の作成。この例では、transportableという表領域を作成した。

> conn system 
パスワードを入力してください:
接続されました。
SYSTEM>
SYSTEM> create tablespace transportable
2 datafile '/Volumes/DiscusWork/4oracle/u02/oradata/tiger/transportable01.dbf'
3 size 5m
4 extent management local autoallocate
5 segment space management auto
6 online;

表領域が作成されました。

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_MAN SEGMEN BIG CONTENTS
------------------------------ ---------- --------- ---------- ------ --- ---------
TRANSPORTABLE 8192 ONLINE LOCAL AUTO NO PERMANENT

1行が選択されました。


・scottユーザが表を作成できるようにquotaを割り当てる。

SYSTEM> alter user scott quota unlimited on transportable;

ユーザーが変更されました。

SYSTEM>


・scottユーザで接続後、表をトランスポート対象表領域(表領域名:transportable)に作成し、
 データを登録しておく。

SYSTEM> conn scott
パスワードを入力してください:
接続されました。
SCOTT>
SCOTT> create table hoge
2 (
3 id number primary key,
4 name varchar2(40)
5 )
6 tablespace transportable;

表が作成されました。

SCOTT> begin
2 for i in 1..10000 loop
3 insert into hoge values(i,'〜−○あいうえおabc‾:'||to_char(i));
4 end loop;
5 end;
6 /

PL/SQLプロシージャが正常に完了しました。

SCOTT> commit;

コミットが完了しました。

SCOTT> select * from hoge where rownum < 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>


・最後に、ディレクトリオブジェクト(ディレクトリオブジェクト名:transport_dir)を作成しておく。
 このディレクトリオブジェクトは、Data Pumpで利用する。

SCOTT> conn / as sysdba
接続されました。
SYS> col directory_path for a40
SYS> select * from dba_directories where directory_path='/Volumes/DiscusWork/temp';

OWNER DIRECTORY_NAME DIRECTORY_PATH
------------------------------ ------------------------------ ----------------------------------------
SYS TRANSPORT_DIR /Volumes/DiscusWork/temp


ソースデータベース側での準備はここまで。次回はトランスポートセットの作成を行う。



聞いている曲:
Public Image Limited - 9 - Warrior Public Image Limited - 9
Public Image Limited - 9

| | | コメント (0) | トラックバック (0)

2006年9月 7日 (木)

Mac De Oracle (Cross Platform Transportable Tablespace)

Oracle10g では Transportable Tablespace 機能が拡張され、Cross Platform でも Plug-in可能な表領域が利用できるようになった。 そこで、次回は、Oracle10g EE R1 for MacOSX Server から、Oracle10g EE R2 for Windows (32bit)に 表領域をプラグイン! する予定。

One little , Two little, Three little Endian ?? --> Indian でしょ?!
という妻からのツッコミにも負けず、オヤジギャグな鼻唄と共にお届け予定。(爆)



聞いている曲:
Japan - Tin Drum - The Art of PartiesJapan - Tin Drum - The Art of Parties

Japan - Tin Drum

| | | コメント (0) | トラックバック (0)