ARCHIVELOGモード・データベースのアクティブ・データファイルをOracle ASMディスク・グループ間で移動できます。RMANのBACKUP AS COPYを使用してデータファイルを新規ディスク・グループにコピーし、SET NEWNAMEコマンドとSWITCHコマンドを使用して制御ファイルでデータファイルの名前を変更できます。
ALTER DATABASE MOVE DATAFILEを使用することもできます。データファイルを移動するためのSQL文です。ALTER DATABASE MOVE DATAFILEを使用したオンラインでのデータファイルの移動の詳細は、「ALTER DATABASEを使用したディスク・グループ間のデータファイルの移動」を参照してください。
RMANを使用したこのシナリオでは、ディスク・グループDATAおよびUSERDATAを使用し、データファイルusers.261.689589837をディスク・グループUSERDATAに移動することを前提としています。データファイルの移動手順を始める前に、データベースに対してARCHIVELOGモードが有効になっていることを確認します。
RMANのBACKUP AS COPYプロシージャをSET NEWNAMEおよびSWITCHコマンドとともに使用して、あるOracle ASMディスク・グループから別のディスク・グループにデータファイルを移動するには、次の手順を実行します。
RMANを起動し、ターゲット・データベースに接続します。
次に例を示します。
$ rman
RMAN> CONNECT TARGET SYS@orcl
target database Password: XXXXXXXXX
connected to target database: ORCL (DBID=1217369048)
データファイルの名前を示すレポートを生成します。
RMANをターゲット・データベースに接続した後、次のREPORTコマンドを実行します。移動するファイルのデータファイル名を書き留めます。
次に例を示します。
RMAN> REPORT SCHEMA; Report of database schema for database with db_unique_name ORCL List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------- ------- ------------------------ 1 740 SYSTEM *** +DATA/orcl/datafile/system.258.689589737 2 570 SYSAUX *** +DATA/orcl/datafile/sysaux.259.689589785 3 55 UNDOTBS1 *** +DATA/orcl/datafile/undotbs1.260.689589831 4 5 USERS *** +DATA/orcl/datafile/users.261.689589837 List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------- ----------- -------------------- 1 20 TEMP 32767 +DATA/orcl/tempfile/temp.262.689589851
データファイルを新しいOracle ASMディスク・グループにバックアップします。
BACKUP AS COPYコマンドを実行して、DATA上のデータファイルをUSERDATAにバックアップします。
次に例を示します。
RMAN> BACKUP AS COPY
DATAFILE "+DATA/orcl/datafile/users.261.689589837"
FORMAT "+USERDATA";
Starting backup at 16-JUN-09
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=51 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=+DATA/orcl/datafile/users.261.689589837
output file name=+USERDATA/orcl/datafile/users.256.689682663
tag=TAG20090616T103101 RECID=13 STAMP=689682663
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 16-JUN-09
データファイル番号およびデータファイル・タイプによってデータファイルを指定することもできます。
次に例を示します。
BACKUP AS COPY DATAFILE 4 FORMAT "+USERDATA";
新しいディスク・グループに移動するデータファイルをオフラインにします。
RMANクライアントで次のSQLコマンドを実行します。データファイルの名前を、二重引用符ではなく、2つの一重引用符で囲みます。
次に例を示します。
RMAN> SQL "ALTER DATABASE DATAFILE
''+DATA/orcl/datafile/users.261.689589837'' OFFLINE";
sql statement: ALTER DATABASE DATAFILE
''+DATA/orcl/datafile/users.261.689589837'' OFFLINE
制御ファイルを新規に作成したデータファイルのコピーに指定します。
RMANクライアントでSWITCH...TO COPYコマンドを実行します。SWITCHのTO COPYオプションにより、データファイルをその最新コピーに切り替えます。
次に例を示します。
RMAN> SWITCH DATAFILE "+DATA/orcl/datafile/users.261.689589837" TO COPY;
datafile 4 switched to datafile copy
"+USERDATA/orcl/datafile/users.256.689682663"
このコマンドの出力には、データファイルの新しい名前が表示されます。
名前を変更したデータファイルをリカバリします。
RMANクライアントでRECOVERコマンドを実行します。
次に例を示します。
RMAN> RECOVER DATAFILE "+USERDATA/orcl/datafile/users.256.689682663"; Starting recover at 16-JUN-09 using channel ORA_DISK_1 starting media recovery media recovery complete, elapsed time: 00:00:01 Finished recover at 16-JUN-09
データファイルをオンラインにします。
RMANクライアントで次のSQLコマンドを実行します。データファイルの名前を、二重引用符ではなく、2つの一重引用符で囲みます。
次に例を示します。
RMAN> SQL "ALTER DATABASE DATAFILE
''+USERDATA/orcl/datafile/users.256.689682663'' ONLINE";
sql statement: ALTER DATABASE DATAFILE
''+USERDATA/orcl/datafile/users.256.689682663'' ONLINE
元のOracle ASMディスク・グループからデータファイル・コピーを削除します。
ここでは、+DATA/orcl/datafile/users.261.689589837がDATAにある元のデータファイルです。このデータファイルに対してSET NEWNAMEコマンドとSWITCHコマンドを発行したため、元のファイルがRMANリポジトリにデータファイル・コピーとして記録されています。RMANクライアントでDELETEコマンドを実行し、このファイルを削除します。
次に例を示します。
RMAN> DELETE DATAFILECOPY "+DATA/orcl/datafile/users.261.689589837";
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=51 device type=DISK
List of Datafile Copies
=======================
Key File S Completion Time Ckp SCN Ckp Time
------- ---- - --------------- ---------- ---------------
14 4 A 16-JUN-09 864471 16-JUN-09
Name: +DATA/orcl/datafile/users.261.689589837
Tag: TAG20090615T084217
Do you really want to delete the above objects (enter YES or NO)? y
deleted datafile copy
datafile copy file name=+DATA/orcl/datafile/users.261.689589837 RECID=14 STAMP=689683255
Deleted 1 objects