この項では、データベースを移行するための準備の方法について説明します。この項では、次のことを想定しています。
データベースを2つのOracle ASMディスク・グループ、すなわちデータベース用の+DATA
と高速リカバリ領域用の+FRA
に移行します。
Oracle ASMストレージに移行するデータベースの名前はmydb
です。
Oracle ASMへの移行のためにデータベースの準備をする手順:
データベースのCOMPATIBLE
初期化パラメータ設定が11.0.0
未満の場合、読取り専用のトランスポータブル表領域を読取り/書込み用にします。
読取り専用トランスポータブル表領域は、RMANでバックアップできないために移行できません。
データベースは物理スタンバイ・データベースで、管理リカバリが開始されている場合、管理リカバリを停止します。
物理スタンバイ・データベースは、障害保護用に使用できる本番データベースのコピーです。
たとえば、SQL*Plusを(SYSDBA
権限ではなく)SYSBACKUP
権限でデータベースに接続して、義務のセキュリティ・モデルの分離を強制し、次の文を実行して管理リカバリを停止します。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
このターミナル・ウィンドウを開いたままにします。
サーバー・パラメータ・ファイルまたは初期化パラメータ・ファイルを一時的な保存場所にコピーします。
次の例では、オペレーティング・システム・ユーティリティを使用して、サーバー・パラメータ・ファイルをコピーします。
$ cp spfileMYDB.ora orig_spfileMYDB.ora
新しいターミナル・ウィンドウで、RMANセッションを開始し、TARGET
として移行するデータベースに接続します。必要に応じて、リカバリ・カタログに接続します。SYSBACKUP
権限で接続して、義務のセキュリティ・モデルの分離を強制します。
データファイルをOracle ASMディスク・グループにバックアップします。
次の例では、RUN
コマンドを使用して、レベル0増分バックアップを作成し、4チャネルを割り当ててバックアップ速度を速めます。レベル0増分バックアップは、バックアップ対象のデータファイルのすべてのデータ・ブロックをバックアップするRMAN増分バックアップです。レベル0の増分バックアップは、内容は全体バックアップと同じですが、全体バックアップとは異なり、増分バックアップ計画の一部とみなされます。
増分バックアップは、変更されたブロックのみをバックアップするRMANバックアップです。増分バックアップはレベルによって分類されます。レベル0増分バックアップは全体バックアップと同じ機能で、どちらも使用されたことがあるすべてのブロックをバックアップします。全体バックアップでは後続の増分バックアップでバックアップされたブロックに影響がないのに対し、増分バックアップでは影響がある点で異なります。
全体バックアップは、非増分RMANバックアップです。全体は、データベースのどれだけがバックアップされるかではなく、バックアップが増分ではないということを指しています。したがって、1つのデータファイルの全体バックアップを作成できます。
この数値は適宜増減します。FORMAT句は、データベースの格納に使用されるOracle ASMディスク・グループの名前である+DATA
を指定しています。
RUN { ALLOCATE CHANNEL dev1 DEVICE TYPE DISK; ALLOCATE CHANNEL dev2 DEVICE TYPE DISK; ALLOCATE CHANNEL dev3 DEVICE TYPE DISK; ALLOCATE CHANNEL dev4 DEVICE TYPE DISK; BACKUP AS COPY INCREMENTAL LEVEL 0 DATABASE FORMAT '+DATA' TAG 'ORA_ASM_MIGRATION'; }
ブロック変更トラッキングがデータベースに対して有効である場合、任意でレベル1増分バックアップを作成します。これは後からデータベース・コピーのリカバリに使用できます。
ブロック変更トラッキングは、各データベース更新の影響を受けたデータファイル・ブロックをOracleに追跡させるデータベース・オプションです。追跡情報は、ブロック・チェンジ・トラッキング・ファイルに格納されます。ブロック変更トラッキングを有効にすると、RMANでは変更トラッキング・ファイルから変更されたブロックの記録を使用して、データファイル全体を読み取るのではなく、変更されたブロックのみを読み取ることで、増分バックアップのパフォーマンスを向上させます。
次の例では、前の手順で作成したレベル0バックアップの増分レベル1コピーを作成します。
RUN { ALLOCATE CHANNEL dev1 DEVICE TYPE DISK; ALLOCATE CHANNEL dev2 DEVICE TYPE DISK; ALLOCATE CHANNEL dev3 DEVICE TYPE DISK; ALLOCATE CHANNEL dev4 DEVICE TYPE DISK; BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'ORA_ASM_MIGRATION' DATABASE; }
データベースがARCHIVELOG
モードで、データベースがオープンの場合、オンライン・ログをアーカイブします。
次の例では、SQL
コマンドを使用して、現行REDOログをアーカイブします。
RMAN> SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";
データベース・インスタンスで現在サーバー・パラメータ・ファイルを使用している場合、それをバックアップします。
次の例では、サーバー・パラメータ・ファイルをバックアップします。
RMAN> BACKUP AS BACKUPSET SPFILE;
ブロック変更トラッキングが有効になっている場合は、無効にします。
次のコマンドにより、ブロック変更トラッキングが無効になります。
RMAN> SQL "ALTER DATABASE DISABLE BLOCK CHANGE TRACKING";
フラッシュバック・データベースが有効な場合、無効にして、保証付きリストア・ポイントを削除します。
注意:
高速リカバリ領域を移行しない場合は、この手順を省略してください。
フラッシュバック・ログをOracle ASMに移行できないため、Oracle Flashback Databaseを無効にする必要があります。次のコマンドでフラッシュバック・データベースを無効にします。
RMAN> SQL "ALTER DATABASE FLASHBACK OFF";
次のコマンドにより、Q106
という保証付きリストア・ポイントが削除されます。
RMAN> SQL "DROP RESTORE POINT Q106";
一貫性のある状態でデータベースを停止します。
次のコマンドにより、データベースを停止します。
RMAN> SHUTDOWN IMMEDIATE;