用途
CONVERT
コマンドを使用すると、異なるプラットフォーム間でのトランスポートの準備として、表領域、データファイルまたはデータベースをトランスポート先プラットフォームの形式に変換できます。
Oracle Database 10g以上のリリースでは、次の場合にCONVERT DATAFILE
またはCONVERT TABLESPACE
が必要です。
V$TRANSPORTABLE_PLATFORM.ENDIAN_FORMAT
の値が異なるプラットフォーム間でのデータファイルをトランスポートする場合。
ENDIAN_FORMAT
が同じどうかにかかわらず、プラットフォーム間でUNDOセグメントを持つ表領域(通常は、SYSTEM
表領域とUNDO
表領域、およびロールバック・セグメントを持つ表領域)をトランスポートする場合。通常、SYSTEM
表領域とUNDO
表領域が変換されるのは、データベース全体を変換するときのみです。
その他のプラットフォーム固有のデータファイルで、追加のデータファイル変換が必要な場合(hp Tru64オペレーティング・システムとの間の変換など)。
CONVERT
を使用するのは、ASMに格納されているデータベースに表領域をトランスポートするような場合です。Linuxのcp
、WindowsのCOPY
などのオペレーティング・システムのネイティブ・コマンドでは、ASMディスク・グループの読み書きができません。
関連項目: CONVERT DATAFILE、CONVERT TABLESPACEおよびCONVERT DATABASE の使用方法の詳細は、 『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』 を参照してください。 |
前提条件
プラットフォームが、CONVERT
コマンドでサポートされている必要があります。サポートされているプラットフォームは、V$TRANSPORTABLE_PLATFORM
を問い合せて確認します。プラットフォーム間の表領域トランスポートは、ソースとトランスポート先プラットフォームの両方がこのビューに含まれている場合にのみサポートされます。
ソース・データベースおよびトランスポート先データベースの両方とも、初期化パラメータCOMPATIBLE
が10.0以上に設定されて実行されている必要があります。次の互換性の前提条件に注意してください。
COMPATIBLE
の設定が11.0.0未満の場合、読取り専用の表領域またはトランスポートされた既存の表領域は、1回以上読み書き両用にされていなければ、別のプラットフォームにトランスポートできません。表領域は、読み書き両用でオープンした後、すぐに読取り専用に戻すことができます。
COMPATIBLE
が11.0.0以上の場合、読み書き両用の表領域に関する前述の制限は適用されません。ただし、トランスポートされた既存の表領域は、トランスポート前にCOMPATIBLE
が10.0に設定され読み書き両用にされた10.0の形式である必要があります。
CONVERT TABLESPACEの前提条件
CONVERT TABLESPACE
は、ソース
・データベースにTARGETとして接続し、ソース・プラットフォームで表領域を変換する場合にのみ使用できます。
ソース・データベースはマウントまたはオープン状態である必要があります。変換する表領域は、変換時に読取り専用である必要があります。ソース・データベースで表領域を変換する場合は、トランスポート先データベースの状態は関係ありません。
CONVERT DATAFILEの前提条件
CONVERT DATAFILE
は、トランスポート先
データベースにTARGETとして接続し、トランスポート先プラットフォームでデータファイルを変換する場合にのみ使用できます。
CONVERT DATABASE ON DESTINATION
で生成されたCONVERT DATAFILE
スクリプトを実行している場合は、NOMOUNT
オプションを指定してトランスポート先データベースのインスタンスを起動する必要があります。CONVERT DATABASE ON DESTINATIONで生成されたCONVERT DATAFILE
スクリプトを実行していない
場合は、トランスポート先データベースを起動、マウントまたはオープンすることができます。
トランスポート先データベースでデータファイルのコピーを変換する場合は、ソース・データベースの状態は関係ありません。ただし、トランスポート先データベースで、CONVERT DATAFILE
スクリプトをデータベース変換の一部として実行し、そのスクリプトが(NFSマウントなどにより)ソース・データベースのデータファイルに直接アクセスしている場合は、ソース・データベースは読取り専用でオープンする必要があります。
トランスポート先のホストで表領域を変換する場合は、CONVERT TABLESPACE
では、トランスポート先データベースが変換時にデータファイルを表領域に関連付けることができないので、CONVERT DATAFILE
を使用する必要があります。表領域に必要なデータファイルを変換した後は、そのファイルをトランスポート先データベースにトランスポートできます。
CONVERT DATABASEの前提条件
CONVERT DATABASE
は、ソース
・データベースにTARGETとして接続されている場合にのみ使用できます。また、ソース・データベースは読取り専用でオープンされている必要があります。CONVERT DATABASE ON DESTINATION
を実行しても、CONVERT DATABASE
の実行時、トランスポート先データベースの状態には関係ありません。
CONVERT DATABASE
はCONVERT TABLESPACE
およびCONVERT DATAFILE
と同じメカニズムでデータファイルを変換するため、表領域とデータファイルの使用上の注意と制約事項も適用されます。
CONVERT DATABASE
に追加される重要な前提条件として、ソースとターゲットの両方のプラットフォームで、同じエンディアン形式を共有する必要があるということがあります。たとえば、データベースをMicrosoft WindowsからLinux for x86(ともにリトル・エンディアン)にトランスポートしたり、HP-UXからAIX(ともにビッグ・エンディアン)にトランスポートすることはできますが、SolarisからLinux x86へはトランスポートできません。ただし、ターゲット・プラットフォームに新しいデータベースを手動で作成すると、CONVERT TABLESPACE
またはCONVERT DATAFILE
を使用して、ソース・データベースの表領域を個々にトランスポートできます。
ソース・プラットフォームとトランスポート先プラットフォームのエンディアン形式は同じでも、トランスポータブル・データベースのデータファイルは、ソース・ホストまたはトランスポート先ホストのいずれかで変換する必要があります。エンディアン形式が同じ場合は変換を行う必要がないプラットフォーム間での表領域のトランスポートとは異なり、データベース全体のトランスポートでは、UNDOセグメント内のブロックなどの特定のタイプのブロックを変換して、トランスポート先プラットフォームとの互換性を確保する必要があります。
使用上の注意
変換処理はインプレースで実行されないため、入力ファイルがCONVERT
によって変更されることはありません。かわりに、RMANによって指定された出力先に変換済ファイルが書き込まれます。
データ型の制約事項
CONVERT
では、エンディアン変換が必要なユーザー・データ型は処理されません。プラットフォーム固有のフォーマットでデータを格納する、基礎となる型に基づいて作成されたデータベースの間でオブジェクトをトランスポートするには、データ・ポンプ・インポートおよびエクスポート・ユーティリティを使用してください。
Oracle Database 10gより前のリリースでは、UTF8
などの可変幅キャラクタ・セットで作成されたCLOBは、エンディアンに依存する固定幅フォーマットで格納されていました。CONVERT
コマンドでは、これらのCLOBに対する変換は実行されません。かわりに、RMANによって、各LOB列のエンディアン形式が取得され、ターゲット・データベースに伝播されます。その後、SQLレイヤーでこのデータを読み取ると、いずれかのエンディアン形式に正確に基づいたデータが解析され、表領域が書込み可能な場合はエンディアンに依存しない方法で書き込まれます。Oracle Database 10g以上のリリースで作成されたCLOBは、プラットフォームに依存しないキャラクタ・セットAL16UTF16
で格納されます。
関連項目: 表領域のトランスポート方法については、『Oracle Database管理者ガイド』を参照してください。 |
構文
convert::=
(transportOptionList::=、convertOptionList::=)
skipSpec::=
(fileNameConversionSpec::=、formatSpec::=)
formatSpec::=
セマンティクス
この句は、変換するオブジェクト(データファイル、表領域またはデータベース)を指定します。
構文要素 | 説明 |
---|---|
DATABASE |
必要な他のデータベース・ファイルを確実に作成できるように、データファイルをトランスポート先プラットフォームの形式に変換します。
状況に応じて、ソース・プラットフォームまたはトランスポート先プラットフォームのいずれかで
|
; transportOptionList |
トランスポートを制御するオプションを指定します。
関連項目: |
[ convertOptionList ] DATAFILE ' filename ' convertOptionList |
トランスポート先データベースにトランスポートするデータファイルの名前を指定します(例2-54を参照)。
SELECT NAME FROM V$DATAFILE_COPY WHERE CONVERTED_FILE='YES';
|
TABLESPACE tablespace_name convertOptionList |
別のプラットフォーム上のトランスポート先データベースにトランスポートする予定の、ソース・データベース内の表領域の名前を指定します(例2-53を参照)。
このオプションを指定すると、指定した表領域のデータファイルが、別のトランスポート先プラットフォームのフォーマットで生成されます。変換したファイルは、トランスポート先プラットフォームにトランスポートできます。
変換するデータファイルのトランスポート先プラットフォームを指定するには
注意: ソース・ホスト上の表領域のデータファイルを変換するには、 |
convertOptionList |
変換を制御するオプションを指定します。
関連項目: |
この句は、トランスポートするデータファイル、表領域またはデータベースのオプションを指定します。
構文要素 | 説明 |
---|---|
NEW DATABASE database_name |
CONVERT DATABASE コマンドで生成された新しいデータベースにDB_NAME を指定します。 |
ON DESTINATION PLATFORM |
トランスポート先のホストで実行してデータベースを作成できるCONVERT DATAFILE コマンド(CONVERT SCRIPT パラメータを参照)の変換スクリプトを生成します。
注意: このオプションが指定されている場合、 このオプションは、変換処理に伴うソース・プラットフォームでのオーバーヘッドを回避する場合や、トランスポート先プラットフォームがわからない場合に有効です。たとえば、トランスポータブル表領域を、複数の様々なターゲット・プラットフォームで使用できるようにパブリッシュすることが必要な場合もあります。
|
CONVERT SCRIPT script_name |
CONVERT DATABASE ... ON TARGET PLATFORM によって生成された変換スクリプトを含むファイルの場所を指定します。
指定しない場合、この変換スクリプトは生成されません。 |
skipSpec |
CONVERT DATABASE による変換処理時に、アクセス不能なデータファイル、オフラインのデータファイルまたは読取り専用のデータファイルがスキップされるように指定します。 |
SKIP UNNECESSARY DATAFILES |
UNDOセグメントを持つデータファイルのみがコマンドで変換されるように指定します。トランスポート先プラットフォームで変換する場合、生成されたCONVERTスクリプトにはUNDOセグメントを持つデータファイルのみが含まれます。UNDOセグメントを持たないデータファイルは変換する必要がないため、ソース・データベースからトランスポート先データベースに直接コピーすることができます。コマンドがhp Tru64との間で変換を実行している場合、ASSMセグメント・ヘッダーを持つデータファイルも変換する必要があります。 |
TRANSPORT SCRIPT script_name |
CONVERT DATABASE によって生成された変換スクリプトを含むファイルの場所を指定します。省略した場合、この変換スクリプトは生成されません。 |
この副次句は、変換処理から除外するファイルを指定します。
この副次句は、変換の入出力オプションを指定します。
FORMAT
またはfileNameConversionSpec
引数を使用して、CONVERT
コマンドで生成される出力ファイルの名前を制御できます。いずれも指定しない場合、出力ファイルの場所を管理する規則は、BACKUP
AS COPY
操作で生成される出力ファイルを管理する規則と同じになります。この規則については、「backupTypeSpec」
を参照してください。
構文要素 | 説明 |
---|---|
fileNameConversionSpec |
文字列のペアです。ペアの最初の文字列がいずれかの入力ファイル名に含まれている場合は、含まれている場所に関係なく、常に、同じペアの2番目の文字列と置換されます。必要な数の置換文字列のペアを使用できます。一重引用符または二重引用符を使用できます。
関連項目: ASMおよびOracle Managed Filesに関連する制約事項については、「Oracle Managed Filesでの複製」を参照してください。 |
FORMAT formatSpec |
出力ファイルのネーム・テンプレートを指定します。ここで有効なフォーマット値については、BACKUP AS COPY コマンドを参照してください。
RMANが
例2-55で示すとおり、 |
FROM PLATFORM ' platform ' |
ソース・プラットフォームの名前を指定します。指定しなかった場合のデフォルトは、RMANがTARGET として接続されているデータベースのプラットフォームです。
指定するプラットフォームは、 SELECT PLATFORM_NAME, ENDIAN_FORMAT FROM V$TRANSPORTABLE_PLATFORM WHERE UPPER(PLATFORM_NAME) LIKE 'LINUX%'; |
PARALLELISM integer |
この操作で使用するチャネルの数を指定します。指定しない場合は、ディスクに対して割り当てられたチャネルまたは構成されたチャネルによってチャネルの数が決定されます。 |
TO PLATFORM ' platform ' |
トランスポート先プラットフォームの名前を指定します。指定しなかった場合のデフォルトは、RMANがTARGET として接続されているデータベースのプラットフォームです。
指定するプラットフォームは、 SELECT PLATFORM_NAME, ENDIAN_FORMAT FROM V$TRANSPORTABLE_PLATFORM WHERE UPPER(PLATFORM_NAME) LIKE 'LINUX%'; |
例2-53 ソース・プラットフォームでの表領域の変換
ソース・データベースprodlin
の表領域finance
およびhr
を、トランスポート先データベースprodsun
のプラットフォーム形式に変換するとします。finance
表領域には、データファイル/disk2/orahome/fin/fin01.dbf
および/disk2/orahome/fin/fin02.dbf
が含まれています。hr
表領域には、データファイル/disk2/orahome/fin/hr01.dbf
および/disk2/orahome/fin/hr02.dbf
が含まれています。
prodlin
データベースは、Linuxホストlin01
上で実行されます。V$DATABASE
を問い合せて、プラットフォーム名がLinux IA (32-bit)
で、リトル・エンディアン形式が使用されていることを確認します。prodsun
データベースは、Solarisホストsun01
上で実行されます。V$TRANSPORTABLE_PLATFORM
を問い合せて、SolarisホストのPLATFORM_NAME
がSolaris[tm] OE (64-bit)
で、ビッグ・エンディアン形式が使用されていることを確認します。
表領域の変換はソース・ホスト上で実行し、変換したデータファイルはホストlin01
の/tmp/transport_to_solaris/
に格納するとします。この例は、ソース・データベースのCOMPATIBLE
が10.0以上に設定されていることを前提としています。
ソース・ホストlin01
で、RMANクライアントを起動して次のコマンドを実行します。
CONNECT TARGET SYS@prodlin
target database Password: password
connected to target database: PRODLIN (DBID=39525561)
SQL 'ALTER TABLESPACE finance READ ONLY';
SQL 'ALTER TABLESPACE hr READ ONLY';
CONVERT TABLESPACE finance, hr
TO PLATFORM 'Solaris[tm] OE (64-bit)'
FORMAT '/tmp/transport_to_solaris/%U';
この結果、変換されたデータファイルのセットが、Solaris(64-bit)プラットフォーム用の正しいエンディアン順序のデータとともに/tmp/transport_to_solaris/
ディレクトリに出力されます。
ここからは、表領域トランスポートの一般的な手順に従います。構造情報ファイルをデータ・ポンプ・エクスポート・ユーティリティを使用して作成し、構造情報ファイルおよび変換済のデータファイルを/tmp/transport_to_solaris/
からトランスポート先ホストの目的のディレクトリに移動し、データ・ポンプ・インポート・ユーティリティを使用して新しいデータベースに表領域を接続します。
例2-54 トランスポート先プラットフォームでのデータファイルの変換
この例では、表領域finance
およびhr
をホストsun01
のデータベースprodsun
からトランスポート先ホストlin01
のデータベースprodlin
で使用可能な形式に変換します。変換前のデータファイルをトランスポート先ホストlin01
のディレクトリ/tmp/transport_from_solaris/
に一時的に格納し、CONVERT DATAFILE
を使用して変換を実行します。トランスポート先データベースにデータファイルをトランスポートすると、そのファイルは/disk2/orahome/dbs
に格納されます。
この例は、表領域トランスポートの準備として次の手順を実行していることを前提としています。
データ・ポンプ・エクスポート・ユーティリティを使用して、構造情報ファイル(この例ではexpdat.dmp
)を作成していること。
ソース・データベースで表領域finance
およびhr
を読取り専用に設定していること。
オペレーティング・システムのユーティリティを使用して、expdat.dmp
およびトランスポートする変換前のデータファイルを、トランスポート先ホストlin01
の/tmp/transport_from_solaris
ディレクトリにコピーしていること。データファイルは次のように保存されます。
/tmp/transport_from_solaris/fin/fin01.dbf
/tmp/transport_from_solaris/fin/fin02.dbf
/tmp/transport_from_solaris/hr/hr01.dbf
/tmp/transport_from_solaris/hr/hr02.dbf
ソース・プラットフォームの名前をV$TRANSPORTABLE_PLATFORM
を問い合せて、PLATFORM_NAME
がSolaris[tm] OE (64-bit)
であることを確認していること。
変換を実行するときは、次の点に注意してください。
データファイルは、表領域名ではなく、ファイル名で指定します。ローカル・インスタンスでは、データファイルが接続されるまで目的の表領域名を特定できません。
FORMAT
引数で、変換されたデータファイルの名前および場所を制御します。
トランスポート先ホストで変換する場合、FROM
引数を使用してソース・プラットフォームを指定する必要があります。指定しない場合、RMANは、ソース・プラットフォームが、変換が実行されるホストのプラットフォームと同じであると想定します。
RMANクライアントを起動し、TARGET
としてトランスポート先データベースprodlin
に接続します。次のCONVERT
コマンドを使用して、トランスポートするデータファイルをトランスポート先ホストの形式に変換し、/disk2/orahome/dbs
にその結果を保存します。
CONNECT TARGET SYS@prodlin
target database Password: password
connected to target database: PRODLIN (DBID=39525561)
CONVERT DATAFILE
'/tmp/transport_from_solaris/fin/fin01.dbf',
'/tmp/transport_from_solaris/fin/fin02.dbf',
'/tmp/transport_from_solaris/hr/hr01.dbf',
'/tmp/transport_from_solaris/hr/hr02.dbf'
DB_FILE_NAME_CONVERT
'/tmp/transport_from_solaris/fin','/disk2/orahome/dbs/fin',
'/tmp/transport_from_solaris/hr','/disk2/orahome/dbs/hr'
FROM PLATFORM 'Solaris[tm] OE (64-bit)';
この結果、次のデータファイルがLinux形式に変換されています。
/disk2/orahome/dbs/fin/fin01.dbf
/disk2/orahome/dbs/fin/fin02.dbf
/disk2/orahome/dbs/hr/hr01.dbf
/disk2/orahome/dbs/hr/hr02.dbf
ここからは、表領域トランスポートの概要の残りの説明に従います。データ・ポンプ・インポート・ユーティリティを使用して、変換済の表領域を新しいデータベースに接続し、可能な場合は、表領域を読み書き両用に設定します。
例2-55 CONVERT DATAFILEを使用したデータファイルとASM間のコピー
この例では、通常のストレージからASMにデータファイルをコピーする方法を示します。生成されるファイルは、ターゲット・データベースに属するデータファイル・コピーとはみなされないため、LIST DATAFILECOPY
には表示されません。
ソースおよびトランスポート先のプラットフォームを指定せずに、CONVERT DATAFILE
を使用します。出力場所は、ASMディスク・グループ+DATAFILE
を次に示すように指定します。
RMAN> CONVERT DATAFILE '/disk1/oracle/dbs/my_tbs_f1.df', '/disk1/oracle/dbs/t_ax1.f' FORMAT '+DATAFILE'; Starting conversion at 29-MAY-05 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile conversion input filename=/disk1/oracle/dbs/t_ax1.f converted datafile=+DATAFILE/asmv/datafile/sysaux.280.559534477 channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:16 channel ORA_DISK_1: starting datafile conversion input filename=/disk1/oracle/dbs/my_tbs_f1.df converted datafile=+DATAFILE/asmv/datafile/my_tbs.281.559534493 channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:04 Finished conversion at 29-MAY-05
次の例では、表領域のデータファイルを一意に生成されたファイル名でASMストレージから/tmp
ディレクトリにコピーする方法を示します。
RMAN> CONVERT TABLESPACE tbs_2 FORMAT '/tmp/tbs_2_%U.df'; Starting conversion at 03-JUN-05 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=20 devtype=DISK channel ORA_DISK_1: starting datafile conversion input datafile fno=00006 name=+DATAFILE/tbs_21.f converted datafile=/tmp/tbs_2_data_D-L2_I-2786301554_TS-TBS_2_FNO-6_11gm2fq9.df channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting datafile conversion input datafile fno=00007 name=+DATAFILE/tbs_22.f converted datafile=/tmp/tbs_2_data_D-L2_I-2786301554_TS-TBS_2_FNO-7_12gm2fqa.df channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting datafile conversion input datafile fno=00019 name=+DATAFILE/tbs_25.f converted datafile=/tmp/tbs_2_data_D-L2_I-2786301554_TS-TBS_2_FNO-19_13gm2fqb.df channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting datafile conversion input datafile fno=00009 name=+DATAFILE/tbs_23.f converted datafile=/tmp/tbs_2_data_D-L2_I-2786301554_TS-TBS_2_FNO-9_14gm2fqc.df channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting datafile conversion input datafile fno=00010 name=+DATAFILE/tbs_24.f converted datafile=/tmp/tbs_2_data_D-L2_I-2786301554_TS-TBS_2_FNO-10_15gm2fqd.df channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01 Finished conversion at 03-JUN-05
例2-56 異なるプラットフォームへのデータベースのトランスポート
CONVERT DATABASE
の引数は、データファイルの変換をソース・プラットフォームで実行するか、トランスポート先のプラットフォームで実行するかによって異なります。ソースおよびトランスポート先のプラットフォームでの変換処理の詳細および例は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。データベースの変換は、その説明を最後まで読んでから実行してください。
Linuxホスト上のデータベースprod
をWindowsホストにトランスポートするとします。データファイルは、トランスポート先のホストではなく、ソース・ホストで変換することにします。次の例では、RMANをLinuxホストのprod
データベースに接続し、CONVERT DATABASE NEW DATABASE
を実行してデータファイルを変換し、変換スクリプトを生成します。
CONNECT TARGET SYS@lin01
target database Password: password
connected to target database: PROD (DBID=39525561)
CONVERT DATABASE
NEW DATABASE 'prodwin'
TRANSPORT SCRIPT '/tmp/convertdb/transportscript'
TO PLATFORM 'Microsoft Windows IA (32-bit)'
DB_FILE_NAME_CONVERT '/disk1/oracle/dbs','/tmp/convertdb';
次の例は部分的に変更し、Linuxホストで実行されているデータベースをWindowsホストにトランスポートしますが、データファイルの変換は、ソース・ホストでなく、トランスポート先のホストで実行します。次の例では、RMANをLinuxホストのprod
データベースに接続し、CONVERT DATABASE ON DESTINATION PLATFORM
を実行します。
CONNECT TARGET SYS@lin01
target database Password: password
connected to target database: PROD (DBID=39525561)
CONVERT DATABASE
ON DESTINATION PLATFORM
CONVERT SCRIPT '/tmp/convertdb/convertscript.rman'
TRANSPORT SCRIPT '/tmp/convertdb/transportscript.sql'
NEW DATABASE 'prodwin'
FORMAT '/tmp/convertdb/%U';
Linuxデータベース上で実行されるCONVERT DATABASE ON DESTINATION PLATFORM
コマンドにより、データファイルをWindows形式に変換するためにWindowsホスト上で実行可能な変換スクリプトが生成されます。また、このCONVERT DATABASE
コマンドでは、変換スクリプトも生成されます。
例2-57 プラットフォームとストレージ・タイプが異なる場合のデータベースのトランスポート
この使用例では、sun01
というSolarisホスト上のデータベースprod
を、aix01
というAIXホストに移動することにします。Solarisデータファイルは非ASMファイル・システムに保存されていますが、このデータファイルをAIXホスト上のASMに保存するとします。
次の例では、sun01
に接続し、CONVERT DATABASE
を実行して必要なスクリプトを生成します。
CONNECT TARGET SYS@sun01
target database Password: password
connected to target database: PROD (DBID=39525561)
CONVERT DATABASE
ON DESTINATION PLATFORM
CONVERT SCRIPT '/tmp/convert_newdb.rman'
TRANSPORT SCRIPT '/tmp/transport_newdb.sql'
NEW DATABASE 'prodaix'
DB_FILE_NAME_CONVERT '/u01/oradata/DBUA/datafile','+DATA';
変換スクリプトには次の書式の文が記述されます(your_source_platformはソース・プラットフォームを表します)。
CONVERT DATAFILE '/u01/oradata/DBUA/datafile/o1_mf_system_2lg3905p_.dbf'
FROM PLATFORM 'your_source_platform'
FORMAT '+DATA/o1_mf_system_2lg3905p_.dbf';
変換時の停止時間を短縮するには、ネットワーク経由でデータファイルをコピーしたりバックアップをリストアするのではなく、NFSを使用できます。たとえば、Solarisファイル・システムは、AIXホストに/net/solaris/oradata
としてマウントできます。この場合、変換するソース・データファイルの場所としてNFSマウントのディレクトリを参照するように、次のように変換スクリプト・コマンドを編集します。
CONVERT DATAFILE '/net/solaris/oradata/DBUA/datafile/o1_mf_system_2lg3905p_.dbf'
FROM PLATFORM 'your_source_platform'
FORMAT '+DATA/o1_mf_system_2lg3905p_.dbf';
次に、RMANをトランスポート先のデータベース・インスタンス(この例では、ホストaix01
のインスタンス)に接続し、データファイルを変換します(変換中、ホストsun01のデータベースは読取り専用モードでオープンされている必要があります)。その後、SQL*Plusをaix01
のデータベース・インスタンスに接続し、変換スクリプトを実行してデータベースを作成します。