ホストデータのコピー
データベースレベルの移行と同様に、ホストレイヤでの移行では、ストレージベンダーに依存しないアプローチが提供されます。
言い換えれば、いつか「ファイルをコピーするだけ」が最良のオプションです。
このローテクなアプローチは基本的すぎるように思われるかもしれませんが、特別なソフトウェアは必要なく、プロセス中に元のデータに安全に触れることができないため、大きな利点があります。主な制限事項は、ファイルコピーデータの移行はシステムの停止を伴うプロセスであることです。これは、コピー処理を開始する前にデータベースをシャットダウンする必要があるためです。ファイル内の変更を同期する適切な方法はないため、コピーを開始する前にファイルを完全に休止する必要があります。
コピー処理で必要なシャットダウンが望ましくない場合、次に推奨されるホストベースのオプションは論理ボリュームマネージャ(LVM)を利用することです。Oracle ASMを含む多くのLVMオプションは、すべて同様の機能を備えていますが、いくつかの制限事項を考慮する必要があります。ほとんどの場合、移行はダウンタイムやシステム停止なしで完了します。
ファイルシステムからファイルシステムへのコピー
単純なコピー操作の有用性を過小評価してはなりません。この処理はコピープロセス中のダウンタイムを必要としますが、信頼性の高いプロセスであり、オペレーティングシステム、データベース、ストレージシステムに関する特別な専門知識は必要ありません。さらに、元のデータに影響を与えないため、非常に安全です。通常'システム管理者は'ソース・ファイル・システムを読み取り専用としてマウントするように変更してから'サーバを再起動して'現在のデータに損傷を与えないようにしますコピープロセスをスクリプト化して、ユーザーエラーのリスクなしにできるだけ迅速に実行できるようにすることができます。I/Oのタイプはデータの単純なシーケンシャル転送であるため、帯域幅効率に優れています。
次の例は、安全かつ迅速な移行のための1つのオプションを示しています。
環境
移行する環境は次のとおりです。
-
現在のファイルシステム
ontap-nfs1:/host1_oradata 52428800 16196928 36231872 31% /oradata ontap-nfs1:/host1_logs 49807360 548032 49259328 2% /logs
-
新しいファイルシステム
ontap-nfs1:/host1_logs_new 49807360 128 49807232 1% /new/logs ontap-nfs1:/host1_oradata_new 49807360 128 49807232 1% /new/oradata
概要
データベースは、データベースをシャットダウンしてファイルをコピーするだけで移行できますが、多数のデータベースを移行する必要がある場合や、ダウンタイムを最小限に抑えることが重要な場合は、プロセスを簡単にスクリプト化できます。スクリプトを使用すると、ユーザエラーの可能性も低くなります。
このスクリプトの例では、次の処理が自動化されています。
-
データベースのシャットダウン
-
既存のファイルシステムの読み取り専用状態への変換
-
ソース・ファイル・システムからターゲット・ファイル・システムへのすべてのデータのコピー(すべてのファイル権限を保持)
-
古いファイルシステムと新しいファイルシステムのアンマウント
-
以前のファイルシステムと同じパスでの新しいファイルシステムの再マウント
手順
-
データベースをシャットダウンします。
[root@host1 current]# ./dbshut.pl NTAP ORACLE_SID = [oracle] ? The Oracle base has been set to /orabin SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 3 15:58:48 2015 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL> Database closed. Database dismounted. ORACLE instance shut down. SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options NTAP shut down
-
ファイルシステムを読み取り専用に変換します。スクリプトを使用すると、に示すように、この処理をより迅速に実行できます。 "ファイルシステムを読み取り専用に変換"。
[root@host1 current]# ./mk.fs.readonly.pl /oradata /oradata unmounted /oradata mounted read-only [root@host1 current]# ./mk.fs.readonly.pl /logs /logs unmounted /logs mounted read-only
-
ファイルシステムが読み取り専用になったことを確認します。
ontap-nfs1:/host1_oradata on /oradata type nfs (ro,bg,vers=3,rsize=65536,wsize=65536,addr=172.20.101.10) ontap-nfs1:/host1_logs on /logs type nfs (ro,bg,vers=3,rsize=65536,wsize=65536,addr=172.20.101.10)
-
ファイルシステムの内容を
rsync
コマンドを実行します[root@host1 current]# rsync -rlpogt --stats --progress --exclude=.snapshot /oradata/ /new/oradata/ sending incremental file list ./ NTAP/ NTAP/IOPS.dbf 10737426432 100% 153.50MB/s 0:01:06 (xfer#1, to-check=10/13) NTAP/iops.dbf.zip 22823573 100% 12.09MB/s 0:00:01 (xfer#2, to-check=9/13) ... NTAP/undotbs02.dbf 1073750016 100% 131.60MB/s 0:00:07 (xfer#10, to-check=1/13) NTAP/users01.dbf 5251072 100% 3.95MB/s 0:00:01 (xfer#11, to-check=0/13) Number of files: 13 Number of files transferred: 11 Total file size: 18570092218 bytes Total transferred file size: 18570092218 bytes Literal data: 18570092218 bytes Matched data: 0 bytes File list size: 277 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 18572359828 Total bytes received: 228 sent 18572359828 bytes received 228 bytes 162204017.96 bytes/sec total size is 18570092218 speedup is 1.00 [root@host1 current]# rsync -rlpogt --stats --progress --exclude=.snapshot /logs/ /new/logs/ sending incremental file list ./ NTAP/ NTAP/1_22_897068759.dbf 45523968 100% 95.98MB/s 0:00:00 (xfer#1, to-check=15/18) NTAP/1_23_897068759.dbf 40601088 100% 49.45MB/s 0:00:00 (xfer#2, to-check=14/18) ... NTAP/redo/redo02.log 52429312 100% 44.68MB/s 0:00:01 (xfer#12, to-check=1/18) NTAP/redo/redo03.log 52429312 100% 68.03MB/s 0:00:00 (xfer#13, to-check=0/18) Number of files: 18 Number of files transferred: 13 Total file size: 527032832 bytes Total transferred file size: 527032832 bytes Literal data: 527032832 bytes Matched data: 0 bytes File list size: 413 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 527098156 Total bytes received: 278 sent 527098156 bytes received 278 bytes 95836078.91 bytes/sec total size is 527032832 speedup is 1.00
-
古いファイルシステムをアンマウントし、コピーしたデータを再配置します。スクリプトを使用すると、に示すように、この処理をより迅速に実行できます。 "ファイルシステムの置き換え"。
[root@host1 current]# ./swap.fs.pl /logs,/new/logs /new/logs unmounted /logs unmounted Updated /logs mounted [root@host1 current]# ./swap.fs.pl /oradata,/new/oradata /new/oradata unmounted /oradata unmounted Updated /oradata mounted
-
新しいファイルシステムが所定の位置にあることを確認します。
ontap-nfs1:/host1_logs_new on /logs type nfs (rw,bg,vers=3,rsize=65536,wsize=65536,addr=172.20.101.10) ontap-nfs1:/host1_oradata_new on /oradata type nfs (rw,bg,vers=3,rsize=65536,wsize=65536,addr=172.20.101.10)
-
データベースを起動します。
[root@host1 current]# ./dbstart.pl NTAP ORACLE_SID = [oracle] ? The Oracle base has been set to /orabin SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 3 16:10:07 2015 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to an idle instance. SQL> ORACLE instance started. Total System Global Area 805306368 bytes Fixed Size 2929552 bytes Variable Size 390073456 bytes Database Buffers 406847488 bytes Redo Buffers 5455872 bytes Database mounted. Database opened. SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options NTAP started
カットオーバーを完全に自動化
このサンプルスクリプトでは、データベースSIDの引数に続いて、共通区切りのファイルシステムペアを指定します。上記の例では、コマンドは次のように実行されます。
[root@host1 current]# ./migrate.oracle.fs.pl NTAP /logs,/new/logs /oradata,/new/oradata
このサンプルスクリプトを実行すると、次のシーケンスが試行されます。いずれかの手順でエラーが発生すると終了します。
-
データベースをシャットダウンします。
-
現在のファイルシステムを読み取り専用ステータスに変換します。
-
カンマで区切られた各ファイルシステム引数のペアを使用し、最初のファイルシステムを2番目のファイルシステムに同期します。
-
以前のファイルシステムをディスマウントします。
-
を更新します
/etc/fstab
ファイルは次のとおりです。-
バックアップの作成場所
/etc/fstab.bak
。 -
以前のファイルシステムと新しいファイルシステムの前のエントリをコメントアウトします。
-
古いマウントポイントを使用する新しいファイルシステム用の新しいエントリを作成します。
-
-
ファイルシステムをマウントします。
-
データベースを起動します。
次のテキストは、このスクリプトの実行例を示しています。
[root@host1 current]# ./migrate.oracle.fs.pl NTAP /logs,/new/logs /oradata,/new/oradata ORACLE_SID = [oracle] ? The Oracle base has been set to /orabin SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 3 17:05:50 2015 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL> Database closed. Database dismounted. ORACLE instance shut down. SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options NTAP shut down sending incremental file list ./ NTAP/ NTAP/1_22_897068759.dbf 45523968 100% 185.40MB/s 0:00:00 (xfer#1, to-check=15/18) NTAP/1_23_897068759.dbf 40601088 100% 81.34MB/s 0:00:00 (xfer#2, to-check=14/18) ... NTAP/redo/redo02.log 52429312 100% 70.42MB/s 0:00:00 (xfer#12, to-check=1/18) NTAP/redo/redo03.log 52429312 100% 47.08MB/s 0:00:01 (xfer#13, to-check=0/18) Number of files: 18 Number of files transferred: 13 Total file size: 527032832 bytes Total transferred file size: 527032832 bytes Literal data: 527032832 bytes Matched data: 0 bytes File list size: 413 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 527098156 Total bytes received: 278 sent 527098156 bytes received 278 bytes 150599552.57 bytes/sec total size is 527032832 speedup is 1.00 Succesfully replicated filesystem /logs to /new/logs sending incremental file list ./ NTAP/ NTAP/IOPS.dbf 10737426432 100% 176.55MB/s 0:00:58 (xfer#1, to-check=10/13) NTAP/iops.dbf.zip 22823573 100% 9.48MB/s 0:00:02 (xfer#2, to-check=9/13) ... NTAP/undotbs01.dbf 309338112 100% 70.76MB/s 0:00:04 (xfer#9, to-check=2/13) NTAP/undotbs02.dbf 1073750016 100% 187.65MB/s 0:00:05 (xfer#10, to-check=1/13) NTAP/users01.dbf 5251072 100% 5.09MB/s 0:00:00 (xfer#11, to-check=0/13) Number of files: 13 Number of files transferred: 11 Total file size: 18570092218 bytes Total transferred file size: 18570092218 bytes Literal data: 18570092218 bytes Matched data: 0 bytes File list size: 277 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 18572359828 Total bytes received: 228 sent 18572359828 bytes received 228 bytes 177725933.55 bytes/sec total size is 18570092218 speedup is 1.00 Succesfully replicated filesystem /oradata to /new/oradata swap 0 /logs /new/logs /new/logs unmounted /logs unmounted Mounted updated /logs Swapped filesystem /logs for /new/logs swap 1 /oradata /new/oradata /new/oradata unmounted /oradata unmounted Mounted updated /oradata Swapped filesystem /oradata for /new/oradata ORACLE_SID = [oracle] ? The Oracle base has been set to /orabin SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 3 17:08:59 2015 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to an idle instance. SQL> ORACLE instance started. Total System Global Area 805306368 bytes Fixed Size 2929552 bytes Variable Size 390073456 bytes Database Buffers 406847488 bytes Redo Buffers 5455872 bytes Database mounted. Database opened. SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options NTAP started [root@host1 current]#
Oracle ASM spfileとpasswdの移行
ASMを含む移行を完了する際の難しさの1つに、ASM固有のspfileとパスワードファイルがあります。デフォルトでは、これらの重要なメタデータファイルは、最初に定義されたASMディスクグループに作成されます。特定のASMディスクグループを退避して削除する必要がある場合は、そのASMインスタンスを制御するspfileファイルとパスワードファイルを再配置する必要があります。
これらのファイルの再配置が必要になる別のユースケースとして、SnapManager for OracleやSnapCenter Oracleプラグインなどのデータベース管理ソフトウェアを導入する場合があります。これらの製品の機能の1つは、データファイルをホストしているASM LUNの状態をリバートして、データベースを迅速にリストアすることです。そのためには、リストアを実行する前にASMディスクグループをオフラインにする必要があります。特定のデータベースのデータファイルが専用のASMディスクグループに分離されていれば、これは問題になりません。
そのディスクグループにASM spfile/passwdファイルも含まれている場合、ディスクグループをオフラインにするには、ASMインスタンス全体をシャットダウンするしかありません。これはシステムの停止を伴うプロセスであり、spfile/passwdファイルを再配置する必要があります。
環境
-
データベースSID =トースト
-
現在のデータファイル:
+DATA
-
現在のログファイルと制御ファイル
+LOGS
-
シンシイASMテイスククルウフノセツテイ
+NEWDATA
および+NEWLOGS
ASM spfile/passwdファイルの場所
これらのファイルは、システムを停止することなく再配置できます。ただし、安全のために、NetAppでは、ファイルが再配置され、構成が適切に更新されたことを確実に確認できるように、データベース環境をシャットダウンすることを推奨しています。サーバに複数のASMインスタンスが存在する場合は、この手順を繰り返す必要があります。
ASMインスタンスの識別
に記録されたデータに基づいてASMインスタンスを特定します。 oratab
ファイル。ASMインスタンスは+記号で示されます。
-bash-4.1$ cat /etc/oratab | grep '^+' +ASM:/orabin/grid:N # line added by Agent
このサーバーには+asmというASMインスタンスが1つあります。
すべてのデータベースがシャットダウンされていることを確認する
表示されるSMONプロセスは、使用中のASMインスタンスのSMONだけです。別のSMONプロセスが存在する場合は、データベースが実行中であることを示します。
-bash-4.1$ ps -ef | grep smon oracle 857 1 0 18:26 ? 00:00:00 asm_smon_+ASM
SMONプロセスはASMインスタンス自体のみです。これは、他のデータベースが実行されていないことを意味し、データベースの処理を中断するリスクを伴わずに、安全に処理を続行できることを意味します。
ファイルの検索
次のコマンドを使用して、ASM spfileおよびパスワードファイルの現在の場所を特定します。 spget
および pwget
コマンド
bash-4.1$ asmcmd ASMCMD> spget +DATA/spfile.ora
ASMCMD> pwget --asm +DATA/orapwasm
これらのファイルは両方とも、 +DATA
ディスクグループ:
ファイルのコピー
次のコマンドを使用して、ファイルを新しいASMディスクグループにコピーします。 spcopy
および pwcopy
コマンド新しいディスクグループが最近作成され、現在空の場合は、最初にマウントする必要があります。
ASMCMD> mount NEWDATA
ASMCMD> spcopy +DATA/spfile.ora +NEWDATA/spfile.ora copying +DATA/spfile.ora -> +NEWDATA/spfilea.ora
ASMCMD> pwcopy +DATA/orapwasm +NEWDATA/orapwasm copying +DATA/orapwasm -> +NEWDATA/orapwasm
ファイルは次の場所からコピーされました: +DATA
終了: +NEWDATA
。
ASMインスタンスの更新
ASMインスタンスを更新して、場所の変更を反映する必要があります。。 spset
および pwset
コマンドは、ASMディスクグループの起動に必要なASMメタデータを更新します。
ASMCMD> spset +NEWDATA/spfile.ora ASMCMD> pwset --asm +NEWDATA/orapwasm
更新ファイルを使用したASMのアクティブ化
この時点で、ASMインスタンスは引き続きこれらのファイルの以前の場所を使用します。新しい場所からファイルを強制的に再読み込みし、以前のファイルのロックを解除するには、インスタンスを再起動する必要があります。
-bash-4.1$ sqlplus / as sysasm SQL> shutdown immediate; ASM diskgroups volume disabled ASM diskgroups dismounted ASM instance shutdown
SQL> startup ASM instance started Total System Global Area 1140850688 bytes Fixed Size 2933400 bytes Variable Size 1112751464 bytes ASM Cache 25165824 bytes ORA-15032: not all alterations performed ORA-15017: diskgroup "NEWDATA" cannot be mounted ORA-15013: diskgroup "NEWDATA" is already mounted
古いspfileファイルとパスワードファイルを削除する
手順が正常に実行されると、以前のファイルはロックされなくなり、削除できるようになります。
-bash-4.1$ asmcmd ASMCMD> rm +DATA/spfile.ora ASMCMD> rm +DATA/orapwasm
Oracle ASMカラASMヘノコヒイ
Oracle ASMは、基本的に軽量なボリュームマネージャとファイルシステムを統合したものです。ファイルシステムはすぐには認識されないため、RMANを使用してコピー処理を実行する必要があります。コピーベースの移動プロセスは安全でシンプルですが、システム停止が発生することがあります。システム停止を最小限に抑えることはできますが、完全に排除することはできません。
ASMベースのデータベースを無停止で移行する場合は、ASMの機能を活用して、古いLUNを削除しながらASMエクステントを新しいLUNにリバランシングすることを推奨します。これは一般に安全でノンストップオペレーションですが、バックアウトパスは提供されません。機能またはパフォーマンスの問題が発生した場合、唯一の選択肢はデータをソースに戻すことです。
このリスクを回避するには、データを移動するのではなく、データベースを新しい場所にコピーして、元のデータに変更を加えないようにします。データベースは、稼働を開始する前に新しい場所で完全にテストすることができ、問題が見つかった場合は、元のデータベースをフォールバックオプションとして使用できます。
この手順は、RMANに関連する多数のオプションの1つです。最初のバックアップが作成され、ログ再生によって後で同期される2段階のプロセスが可能になります。このプロセスでは、最初のベースラインコピーの実行中もデータベースの運用を維持し、データを提供できるため、ダウンタイムを最小限に抑えることが推奨されます。
データベースコピー
Oracle RMANは、ASMディスクグループに現在配置されているソースデータベースのレベル0(完全)コピーを作成します。 +DATA
次の場所に移動します: +NEWDATA
。
-bash-4.1$ rman target / Recovery Manager: Release 12.1.0.2.0 - Production on Sun Dec 6 17:40:03 2015 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. connected to target database: TOAST (DBID=2084313411) RMAN> backup as copy incremental level 0 database format '+NEWDATA' tag 'ONTAP_MIGRATION'; Starting backup at 06-DEC-15 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=302 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00001 name=+DATA/TOAST/DATAFILE/system.262.897683141 ... input datafile file number=00004 name=+DATA/TOAST/DATAFILE/users.264.897683151 output file name=+NEWDATA/TOAST/DATAFILE/users.258.897759623 tag=ONTAP_MIGRATION RECID=5 STAMP=897759622 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting incremental level 0 datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 06-DEC-15 channel ORA_DISK_1: finished piece 1 at 06-DEC-15 piece handle=+NEWDATA/TOAST/BACKUPSET/2015_12_06/nnsnn0_ontap_migration_0.262.897759623 tag=ONTAP_MIGRATION comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 06-DEC-15
アーカイブログの強制切り替え
コピーの完全な整合性を確保するために必要なすべてのデータがアーカイブログに含まれていることを確認するには、アーカイブログを強制的に切り替えます。このコマンドを使用しないと、REDOログにキーデータが残っている可能性があります。
RMAN> sql 'alter system archive log current'; sql statement: alter system archive log current
ソースデータベースのシャットダウン
データベースがシャットダウンされ、アクセスが制限された読み取り専用モードになるため、システムが停止します。ソースデータベースをシャットダウンするには、次のコマンドを実行します。
RMAN> shutdown immediate; using target database control file instead of recovery catalog database closed database dismounted Oracle instance shut down RMAN> startup mount; connected to target database (not started) Oracle instance started database mounted Total System Global Area 805306368 bytes Fixed Size 2929552 bytes Variable Size 390073456 bytes Database Buffers 406847488 bytes Redo Buffers 5455872 bytes
制御ファイルのバックアップ
移行を中止して元のストレージの場所に戻す必要がある場合に備えて、制御ファイルをバックアップする必要があります。バックアップ制御ファイルのコピーは100%必要ではありませんが、データベースファイルの場所を元の場所にリセットする処理が簡単になります。
RMAN> backup as copy current controlfile format '/tmp/TOAST.ctrl'; Starting backup at 06-DEC-15 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=358 device type=DISK channel ORA_DISK_1: starting datafile copy copying current control file output file name=/tmp/TOAST.ctrl tag=TAG20151206T174753 RECID=6 STAMP=897760073 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 06-DEC-15
パラメータの更新
現在のspfileには、古いASMディスクグループ内の現在の場所にある制御ファイルへの参照が含まれています。編集する必要があります。これは、中間のpfileバージョンを編集することで簡単に実行できます。
RMAN> create pfile='/tmp/pfile' from spfile; Statement processed
pfileの更新
古いASMディスクグループを参照しているすべてのパラメータを更新し、新しいASMディスクグループ名を反映させます。次に、更新されたpfileを保存します。次のことを確認します。 db_create
パラメータが存在します。
次の例では、 +DATA
変更されました +NEWDATA
黄色で強調表示されます。主なパラメータは次の2つです。 db_create
正しい場所に新しいファイルを作成するパラメータ。
*.compatible='12.1.0.2.0' *.control_files='+NEWLOGS/TOAST/CONTROLFILE/current.258.897683139' *.db_block_size=8192 *. db_create_file_dest='+NEWDATA' *. db_create_online_log_dest_1='+NEWLOGS' *.db_domain='' *.db_name='TOAST' *.diagnostic_dest='/orabin' *.dispatchers='(PROTOCOL=TCP) (SERVICE=TOASTXDB)' *.log_archive_dest_1='LOCATION=+NEWLOGS' *.log_archive_format='%t_%s_%r.dbf'
init.oraファイルの更新
ほとんどのASMベースのデータベースでは、 init.ora
ファイルはにあります $ORACLE_HOME/dbs
ディレクトリ。ASMディスクグループ上のspfileへのポイントです。このファイルは、新しいASMディスクグループの場所にリダイレクトする必要があります。
-bash-4.1$ cd $ORACLE_HOME/dbs -bash-4.1$ cat initTOAST.ora SPFILE='+DATA/TOAST/spfileTOAST.ora'
このファイルを次のように変更します。
SPFILE=+NEWLOGS/TOAST/spfileTOAST.ora
パラメータファイルの再作成
これで'編集したpfileのデータをspfileに入力する準備が整いました
RMAN> create spfile from pfile='/tmp/pfile'; Statement processed
新しいspfileの使用を開始するには'データベースを起動します
データベースを起動して、新しく作成されたspfileが使用されていること、およびシステムパラメータに対するそれ以降の変更が正しく記録されていることを確認します。
RMAN> startup nomount; connected to target database (not started) Oracle instance started Total System Global Area 805306368 bytes Fixed Size 2929552 bytes Variable Size 373296240 bytes Database Buffers 423624704 bytes Redo Buffers 5455872 bytes
制御ファイルのリストア
RMANによって作成されたバックアップ制御ファイルは、RMANによって、新しいspfileに指定された場所に直接リストアすることもできます。
RMAN> restore controlfile from '+DATA/TOAST/CONTROLFILE/current.258.897683139'; Starting restore at 06-DEC-15 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=417 device type=DISK channel ORA_DISK_1: copied control file copy output file name=+NEWLOGS/TOAST/CONTROLFILE/current.273.897761061 Finished restore at 06-DEC-15
データベースをマウントし、新しい制御ファイルが使用されていることを確認します。
RMAN> alter database mount; using target database control file instead of recovery catalog Statement processed
SQL> show parameter control_files; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string +NEWLOGS/TOAST/CONTROLFILE/cur rent.273.897761061
ログ再生
データベースは現在、古い場所にあるデータファイルを使用しています。コピーを使用する前に、コピーを同期する必要があります。最初のコピープロセスで時間が経過し、主にアーカイブログに変更が記録されました。これらの変更は次のように複製されます。
-
アーカイブ・ログを含むRMAN増分バックアップを実行します。
RMAN> backup incremental level 1 format '+NEWLOGS' for recover of copy with tag 'ONTAP_MIGRATION' database; Starting backup at 06-DEC-15 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=62 device type=DISK channel ORA_DISK_1: starting incremental level 1 datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=+DATA/TOAST/DATAFILE/system.262.897683141 input datafile file number=00002 name=+DATA/TOAST/DATAFILE/sysaux.260.897683143 input datafile file number=00003 name=+DATA/TOAST/DATAFILE/undotbs1.257.897683145 input datafile file number=00004 name=+DATA/TOAST/DATAFILE/users.264.897683151 channel ORA_DISK_1: starting piece 1 at 06-DEC-15 channel ORA_DISK_1: finished piece 1 at 06-DEC-15 piece handle=+NEWLOGS/TOAST/BACKUPSET/2015_12_06/nnndn1_ontap_migration_0.268.897762693 tag=ONTAP_MIGRATION comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting incremental level 1 datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 06-DEC-15 channel ORA_DISK_1: finished piece 1 at 06-DEC-15 piece handle=+NEWLOGS/TOAST/BACKUPSET/2015_12_06/ncsnn1_ontap_migration_0.267.897762697 tag=ONTAP_MIGRATION comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 06-DEC-15
-
ログを再生します。
RMAN> recover copy of database with tag 'ONTAP_MIGRATION'; Starting recover at 06-DEC-15 using channel ORA_DISK_1 channel ORA_DISK_1: starting incremental datafile backup set restore channel ORA_DISK_1: specifying datafile copies to recover recovering datafile copy file number=00001 name=+NEWDATA/TOAST/DATAFILE/system.259.897759609 recovering datafile copy file number=00002 name=+NEWDATA/TOAST/DATAFILE/sysaux.263.897759615 recovering datafile copy file number=00003 name=+NEWDATA/TOAST/DATAFILE/undotbs1.264.897759619 recovering datafile copy file number=00004 name=+NEWDATA/TOAST/DATAFILE/users.258.897759623 channel ORA_DISK_1: reading from backup piece +NEWLOGS/TOAST/BACKUPSET/2015_12_06/nnndn1_ontap_migration_0.268.897762693 channel ORA_DISK_1: piece handle=+NEWLOGS/TOAST/BACKUPSET/2015_12_06/nnndn1_ontap_migration_0.268.897762693 tag=ONTAP_MIGRATION channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 Finished recover at 06-DEC-15
アクティブ化
リストアされた制御ファイルは元の場所にあるデータ・ファイルを参照しており、コピーされたデータ・ファイルのパス情報も含まれています。
-
アクティブなデータファイルを変更するには、
switch database to copy
コマンドを実行しますRMAN> switch database to copy; datafile 1 switched to datafile copy "+NEWDATA/TOAST/DATAFILE/system.259.897759609" datafile 2 switched to datafile copy "+NEWDATA/TOAST/DATAFILE/sysaux.263.897759615" datafile 3 switched to datafile copy "+NEWDATA/TOAST/DATAFILE/undotbs1.264.897759619" datafile 4 switched to datafile copy "+NEWDATA/TOAST/DATAFILE/users.258.897759623"
アクティブなデータファイルがコピーされたデータファイルになりますが、最終的なREDOログに変更が含まれている可能性があります。
-
残りのログをすべて再生するには、
recover database
コマンドを実行しますというメッセージが表示されますmedia recovery complete
と表示され、プロセスは成功しました。RMAN> recover database; Starting recover at 06-DEC-15 using channel ORA_DISK_1 starting media recovery media recovery complete, elapsed time: 00:00:01 Finished recover at 06-DEC-15
このプロセスで変更されるのは、通常のデータファイルの場所だけです。一時データファイルの名前は変更する必要がありますが、一時データファイルであるためコピーする必要はありません。データベースは現在ダウンしているため、一時データファイルにアクティブなデータはありません。
-
一時データファイルを移動するには、まずその場所を特定します。
RMAN> select file#||' '||name from v$tempfile; FILE#||''||NAME -------------------------------------------------------------------------------- 1 +DATA/TOAST/TEMPFILE/temp.263.897683145
-
各データファイルに新しい名前を設定するRMANコマンドを使用して、一時データファイルを移動します。Oracle Managed Files(OMF)では、完全な名前は必要ありません。ASMディスクグループで十分です。データベースが開くと、OMFはASMディスクグループ上の適切な場所にリンクします。ファイルを再配置するには、次のコマンドを実行します。
run { set newname for tempfile 1 to '+NEWDATA'; switch tempfile all; }
RMAN> run { 2> set newname for tempfile 1 to '+NEWDATA'; 3> switch tempfile all; 4> } executing command: SET NEWNAME renamed tempfile 1 to +NEWDATA in control file
Redoログの移行
移行プロセスはほぼ完了していますが、REDOログは元のASMディスクグループに残ります。REDOログは直接再配置できません。代わりに、新しいREDOログセットが作成されて設定に追加され、古いログがドロップされます。
-
REDOロググループの数とそれぞれのグループ番号を確認します。
RMAN> select group#||' '||member from v$logfile; GROUP#||''||MEMBER -------------------------------------------------------------------------------- 1 +DATA/TOAST/ONLINELOG/group_1.261.897683139 2 +DATA/TOAST/ONLINELOG/group_2.259.897683139 3 +DATA/TOAST/ONLINELOG/group_3.256.897683139
-
Redoログのサイズを入力します。
RMAN> select group#||' '||bytes from v$log; GROUP#||''||BYTES -------------------------------------------------------------------------------- 1 52428800 2 52428800 3 52428800
-
Redoログごとに、設定が一致する新しいグループを作成します。OMFを使用しない場合は、フルパスを指定する必要があります。また、この例では、
db_create_online_log
パラメータ前述のように、このパラメータは+NEWLOGSに設定されています。この設定では、次のコマンドを使用して、ファイルの場所や特定のASMディスクグループを指定することなく、新しいオンラインログを作成できます。RMAN> alter database add logfile size 52428800; Statement processed RMAN> alter database add logfile size 52428800; Statement processed RMAN> alter database add logfile size 52428800; Statement processed
-
データベースを開きます。
SQL> alter database open; Database altered.
-
古いログを削除します。
RMAN> alter database drop logfile group 1; Statement processed
-
アクティブなログをドロップできないエラーが発生した場合は、次のログに切り替えてロックを解除し、グローバルチェックポイントを強制的に実行します。以下に例を示します。古い場所にあるログファイルグループ3を削除しようとしましたが、このログファイルにアクティブなデータが残っているため拒否されました。チェックポイントに続くログアーカイブでは、ログファイルを削除できます。
RMAN> alter database drop logfile group 3; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of sql statement command at 12/08/2015 20:23:51 ORA-01623: log 3 is current log for instance TOAST (thread 4) - cannot drop ORA-00312: online log 3 thread 1: '+LOGS/TOAST/ONLINELOG/group_3.259.897563549' RMAN> alter system switch logfile; Statement processed RMAN> alter system checkpoint; Statement processed RMAN> alter database drop logfile group 3; Statement processed
-
環境をレビューして、すべてのロケーションベースのパラメータが更新されていることを確認します。
SQL> select name from v$datafile; SQL> select member from v$logfile; SQL> select name from v$tempfile; SQL> show parameter spfile; SQL> select name, value from v$parameter where value is not null;
-
次のスクリプトは、このプロセスを簡素化する方法を示しています。
[root@host1 current]# ./checkdbdata.pl TOAST TOAST datafiles: +NEWDATA/TOAST/DATAFILE/system.259.897759609 +NEWDATA/TOAST/DATAFILE/sysaux.263.897759615 +NEWDATA/TOAST/DATAFILE/undotbs1.264.897759619 +NEWDATA/TOAST/DATAFILE/users.258.897759623 TOAST redo logs: +NEWLOGS/TOAST/ONLINELOG/group_4.266.897763123 +NEWLOGS/TOAST/ONLINELOG/group_5.265.897763125 +NEWLOGS/TOAST/ONLINELOG/group_6.264.897763125 TOAST temp datafiles: +NEWDATA/TOAST/TEMPFILE/temp.260.897763165 TOAST spfile spfile string +NEWDATA/spfiletoast.ora TOAST key parameters control_files +NEWLOGS/TOAST/CONTROLFILE/current.273.897761061 log_archive_dest_1 LOCATION=+NEWLOGS db_create_file_dest +NEWDATA db_create_online_log_dest_1 +NEWLOGS
-
ASMディスクグループが完全に退避された場合は、次のコマンドを使用してアンマウントできます。
asmcmd
。ただし、多くの場合、他のデータベースまたはASM spfile/passwdファイルに属するファイルが存在する可能性があります。-bash-4.1$ . oraenv ORACLE_SID = [TOAST] ? +ASM The Oracle base remains unchanged with value /orabin -bash-4.1$ asmcmd ASMCMD> umount DATA ASMCMD>
Oracle ASMからファイルシステムへのコピー
Oracle ASMからファイルシステムへのコピー手順は、ASMからASMへのコピー手順と非常によく似ていますが、利点と制限は似ています。主な違いは、ASMディスクグループではなく可視ファイルシステムを使用する場合の、さまざまなコマンドや設定パラメータの構文です。
データベースコピー
Oracle RMANを使用して、ASMディスクグループに現在配置されているソースデータベースのレベル0(完全)コピーを作成します。 +DATA
次の場所に移動します: /oradata
。
RMAN> backup as copy incremental level 0 database format '/oradata/TOAST/%U' tag 'ONTAP_MIGRATION'; Starting backup at 13-MAY-16 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=377 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00001 name=+ASM0/TOAST/system01.dbf output file name=/oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSTEM_FNO-1_01r5fhjg tag=ONTAP_MIGRATION RECID=1 STAMP=911722099 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07 channel ORA_DISK_1: starting datafile copy input datafile file number=00002 name=+ASM0/TOAST/sysaux01.dbf output file name=/oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSAUX_FNO-2_02r5fhjo tag=ONTAP_MIGRATION RECID=2 STAMP=911722106 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07 channel ORA_DISK_1: starting datafile copy input datafile file number=00003 name=+ASM0/TOAST/undotbs101.dbf output file name=/oradata/TOAST/data_D-TOAST_I-2098173325_TS-UNDOTBS1_FNO-3_03r5fhjt tag=ONTAP_MIGRATION RECID=3 STAMP=911722113 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07 channel ORA_DISK_1: starting datafile copy copying current control file output file name=/oradata/TOAST/cf_D-TOAST_id-2098173325_04r5fhk5 tag=ONTAP_MIGRATION RECID=4 STAMP=911722118 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting datafile copy input datafile file number=00004 name=+ASM0/TOAST/users01.dbf output file name=/oradata/TOAST/data_D-TOAST_I-2098173325_TS-USERS_FNO-4_05r5fhk6 tag=ONTAP_MIGRATION RECID=5 STAMP=911722118 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting incremental level 0 datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 13-MAY-16 channel ORA_DISK_1: finished piece 1 at 13-MAY-16 piece handle=/oradata/TOAST/06r5fhk7_1_1 tag=ONTAP_MIGRATION comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 13-MAY-16
アーカイブログの強制切り替え
コピーの完全な整合性を確保するために必要なすべてのデータがアーカイブログに含まれていることを確認するには、アーカイブログの切り替えを強制する必要があります。このコマンドを使用しないと、REDOログにキーデータが残っている可能性があります。アーカイブログを強制的に切り替えるには、次のコマンドを実行します。
RMAN> sql 'alter system archive log current'; sql statement: alter system archive log current
ソースデータベースのシャットダウン
データベースがシャットダウンされ、アクセスが制限された読み取り専用モードになるため、システムが停止します。ソースデータベースをシャットダウンするには、次のコマンドを実行します。
RMAN> shutdown immediate; using target database control file instead of recovery catalog database closed database dismounted Oracle instance shut down RMAN> startup mount; connected to target database (not started) Oracle instance started database mounted Total System Global Area 805306368 bytes Fixed Size 2929552 bytes Variable Size 331353200 bytes Database Buffers 465567744 bytes Redo Buffers 5455872 bytes
制御ファイルのバックアップ
移行を中止して元のストレージの場所に戻す必要がある場合に備えて、制御ファイルをバックアップします。バックアップ制御ファイルのコピーは100%必要ではありませんが、データベースファイルの場所を元の場所にリセットする処理が簡単になります。
RMAN> backup as copy current controlfile format '/tmp/TOAST.ctrl'; Starting backup at 08-DEC-15 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy copying current control file output file name=/tmp/TOAST.ctrl tag=TAG20151208T194540 RECID=30 STAMP=897939940 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 08-DEC-15
パラメータの更新
RMAN> create pfile='/tmp/pfile' from spfile; Statement processed
pfileの更新
古いASMディスクグループを参照するすべてのパラメータは、関連性がなくなったときに更新し、場合によっては削除する必要があります。新しいファイルシステムパスを反映するように更新し、更新されたpfileを保存します。完全なターゲットパスが表示されていることを確認します。これらのパラメータを更新するには、次のコマンドを実行します。
*.audit_file_dest='/orabin/admin/TOAST/adump' *.audit_trail='db' *.compatible='12.1.0.2.0' *.control_files='/logs/TOAST/arch/control01.ctl','/logs/TOAST/redo/control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='TOAST' *.diagnostic_dest='/orabin' *.dispatchers='(PROTOCOL=TCP) (SERVICE=TOASTXDB)' *.log_archive_dest_1='LOCATION=/logs/TOAST/arch' *.log_archive_format='%t_%s_%r.dbf' *.open_cursors=300 *.pga_aggregate_target=256m *.processes=300 *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=768m *.undo_tablespace='UNDOTBS1'
元のinit.oraファイルを無効にする
このファイルは、 $ORACLE_HOME/dbs
ディレクトリとは、通常、ASMディスクグループ上のspfileへのポインタとして機能するpfile内にあります。元のspfileが使用されていないことを確認するには、名前を変更します。ただし、このファイルは移行を中止する必要がある場合に必要になるため、削除しないでください。
[oracle@jfsc1 ~]$ cd $ORACLE_HOME/dbs [oracle@jfsc1 dbs]$ cat initTOAST.ora SPFILE='+ASM0/TOAST/spfileTOAST.ora' [oracle@jfsc1 dbs]$ mv initTOAST.ora initTOAST.ora.prev [oracle@jfsc1 dbs]$
パラメータファイルの再作成
これは'spfile再配置の最後の手順です元のspfileは使用されなくなり'中間ファイルを使用してデータベースが現在起動されています(マウントされていません)このファイルの内容は'次のようにして新しいspfileの場所に書き出すことができます
RMAN> create spfile from pfile='/tmp/pfile'; Statement processed
新しいspfileの使用を開始するには'データベースを起動します
中間ファイルのロックを解除するには、データベースを起動し、新しいspfileファイルのみを使用してデータベースを起動する必要があります。データベースを起動すると、新しいspfileの場所が正しいことと、そのデータが有効であることも証明されます。
RMAN> shutdown immediate; Oracle instance shut down RMAN> startup nomount; connected to target database (not started) Oracle instance started Total System Global Area 805306368 bytes Fixed Size 2929552 bytes Variable Size 331353200 bytes Database Buffers 465567744 bytes Redo Buffers 5455872 bytes
制御ファイルのリストア
バックアップ制御ファイルがパスに作成されました /tmp/TOAST.ctrl
手順の初期段階。新しいspfileでは、制御ファイルの場所を次のように定義します。 /logfs/TOAST/ctrl/ctrlfile1.ctrl
および /logfs/TOAST/redo/ctrlfile2.ctrl
。ただし、これらのファイルはまだ存在しません。
-
このコマンドは、spfileに定義されているパスに制御ファイルのデータをリストアします。
RMAN> restore controlfile from '/tmp/TOAST.ctrl'; Starting restore at 13-MAY-16 using channel ORA_DISK_1 channel ORA_DISK_1: copied control file copy output file name=/logs/TOAST/arch/control01.ctl output file name=/logs/TOAST/redo/control02.ctl Finished restore at 13-MAY-16
-
mountコマンドを問題して、制御ファイルが正しく検出され、有効なデータが含まれていることを確認します。
RMAN> alter database mount; Statement processed released channel: ORA_DISK_1
を検証するには
control_files
パラメータを指定して、次のコマンドを実行します。SQL> show parameter control_files; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string /logs/TOAST/arch/control01.ctl , /logs/TOAST/redo/control02.c tl
ログ再生
データベースは現在、古い場所にあるデータファイルを使用しています。コピーを使用する前に、データファイルを同期する必要があります。最初のコピープロセスで時間が経過し、変更は主にアーカイブログに記録されました。これらの変更は、次の2つのステップで複製されます。
-
アーカイブ・ログを含むRMAN増分バックアップを実行します。
RMAN> backup incremental level 1 format '/logs/TOAST/arch/%U' for recover of copy with tag 'ONTAP_MIGRATION' database; Starting backup at 13-MAY-16 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=124 device type=DISK channel ORA_DISK_1: starting incremental level 1 datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=+ASM0/TOAST/system01.dbf input datafile file number=00002 name=+ASM0/TOAST/sysaux01.dbf input datafile file number=00003 name=+ASM0/TOAST/undotbs101.dbf input datafile file number=00004 name=+ASM0/TOAST/users01.dbf channel ORA_DISK_1: starting piece 1 at 13-MAY-16 channel ORA_DISK_1: finished piece 1 at 13-MAY-16 piece handle=/logs/TOAST/arch/09r5fj8i_1_1 tag=ONTAP_MIGRATION comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 13-MAY-16 RMAN-06497: WARNING: control file is not current, control file AUTOBACKUP skipped
-
ログを再生します。
RMAN> recover copy of database with tag 'ONTAP_MIGRATION'; Starting recover at 13-MAY-16 using channel ORA_DISK_1 channel ORA_DISK_1: starting incremental datafile backup set restore channel ORA_DISK_1: specifying datafile copies to recover recovering datafile copy file number=00001 name=/oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSTEM_FNO-1_01r5fhjg recovering datafile copy file number=00002 name=/oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSAUX_FNO-2_02r5fhjo recovering datafile copy file number=00003 name=/oradata/TOAST/data_D-TOAST_I-2098173325_TS-UNDOTBS1_FNO-3_03r5fhjt recovering datafile copy file number=00004 name=/oradata/TOAST/data_D-TOAST_I-2098173325_TS-USERS_FNO-4_05r5fhk6 channel ORA_DISK_1: reading from backup piece /logs/TOAST/arch/09r5fj8i_1_1 channel ORA_DISK_1: piece handle=/logs/TOAST/arch/09r5fj8i_1_1 tag=ONTAP_MIGRATION channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 Finished recover at 13-MAY-16 RMAN-06497: WARNING: control file is not current, control file AUTOBACKUP skipped
アクティブ化
リストアされた制御ファイルは元の場所にあるデータ・ファイルを参照しており、コピーされたデータ・ファイルのパス情報も含まれています。
-
アクティブなデータファイルを変更するには、
switch database to copy
コマンドを実行しますRMAN> switch database to copy; datafile 1 switched to datafile copy "/oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSTEM_FNO-1_01r5fhjg" datafile 2 switched to datafile copy "/oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSAUX_FNO-2_02r5fhjo" datafile 3 switched to datafile copy "/oradata/TOAST/data_D-TOAST_I-2098173325_TS-UNDOTBS1_FNO-3_03r5fhjt" datafile 4 switched to datafile copy "/oradata/TOAST/data_D-TOAST_I-2098173325_TS-USERS_FNO-4_05r5fhk6"
-
データファイルの整合性は完全である必要がありますが、オンラインREDOログに記録された残りの変更を再生するには、最後に1つの手順を実行する必要があります。を使用します
recover database
これらの変更を再生し、コピーを元のコピーと100%同一にするコマンド。ただし、コピーはまだ開いていません。RMAN> recover database; Starting recover at 13-MAY-16 using channel ORA_DISK_1 starting media recovery archived log for thread 1 with sequence 28 is already on disk as file +ASM0/TOAST/redo01.log archived log file name=+ASM0/TOAST/redo01.log thread=1 sequence=28 media recovery complete, elapsed time: 00:00:00 Finished recover at 13-MAY-16
一時データファイルの再配置
-
元のディスクグループでまだ使用されている一時データファイルの場所を特定します。
RMAN> select file#||' '||name from v$tempfile; FILE#||''||NAME -------------------------------------------------------------------------------- 1 +ASM0/TOAST/temp01.dbf
-
データファイルを移動するには、次のコマンドを実行します。一時ファイルが多数ある場合は、テキスト・エディタを使用してRMANコマンドを作成し、それをカットアンドペーストします。
RMAN> run { 2> set newname for tempfile 1 to '/oradata/TOAST/temp01.dbf'; 3> switch tempfile all; 4> } executing command: SET NEWNAME renamed tempfile 1 to /oradata/TOAST/temp01.dbf in control file
Redoログの移行
移行プロセスはほぼ完了していますが、REDOログは元のASMディスクグループに残ります。REDOログは直接再配置できません。代わりに、新しいREDOログセットが作成され、古いログがドロップされて設定に追加されます。
-
REDOロググループの数とそれぞれのグループ番号を確認します。
RMAN> select group#||' '||member from v$logfile; GROUP#||''||MEMBER -------------------------------------------------------------------------------- 1 +ASM0/TOAST/redo01.log 2 +ASM0/TOAST/redo02.log 3 +ASM0/TOAST/redo03.log
-
Redoログのサイズを入力します。
RMAN> select group#||' '||bytes from v$log; GROUP#||''||BYTES -------------------------------------------------------------------------------- 1 52428800 2 52428800 3 52428800
-
Redoログごとに、新しいファイルシステムの場所を使用して、現在のRedoロググループと同じサイズを使用して新しいグループを作成します。
RMAN> alter database add logfile '/logs/TOAST/redo/log00.rdo' size 52428800; Statement processed RMAN> alter database add logfile '/logs/TOAST/redo/log01.rdo' size 52428800; Statement processed RMAN> alter database add logfile '/logs/TOAST/redo/log02.rdo' size 52428800; Statement processed
-
以前のストレージにまだ配置されている古いログファイルグループを削除します。
RMAN> alter database drop logfile group 4; Statement processed RMAN> alter database drop logfile group 5; Statement processed RMAN> alter database drop logfile group 6; Statement processed
-
アクティブログのドロップをブロックするエラーが発生した場合は、次のログに強制的に切り替えてロックを解除し、グローバルチェックポイントを強制的に実行します。以下に例を示します。古い場所にあるログファイルグループ3を削除しようとしましたが、このログファイルにアクティブなデータが残っているため拒否されました。ログをアーカイブしたあとにチェックポイントを追加すると、ログファイルの削除が可能になります。
RMAN> alter database drop logfile group 4; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of sql statement command at 12/08/2015 20:23:51 ORA-01623: log 4 is current log for instance TOAST (thread 4) - cannot drop ORA-00312: online log 4 thread 1: '+NEWLOGS/TOAST/ONLINELOG/group_4.266.897763123' RMAN> alter system switch logfile; Statement processed RMAN> alter system checkpoint; Statement processed RMAN> alter database drop logfile group 4; Statement processed
-
環境をレビューして、すべてのロケーションベースのパラメータが更新されていることを確認します。
SQL> select name from v$datafile; SQL> select member from v$logfile; SQL> select name from v$tempfile; SQL> show parameter spfile; SQL> select name, value from v$parameter where value is not null;
-
次のスクリプトは、このプロセスを簡単にする方法を示しています。
[root@jfsc1 current]# ./checkdbdata.pl TOAST TOAST datafiles: /oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSTEM_FNO-1_01r5fhjg /oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSAUX_FNO-2_02r5fhjo /oradata/TOAST/data_D-TOAST_I-2098173325_TS-UNDOTBS1_FNO-3_03r5fhjt /oradata/TOAST/data_D-TOAST_I-2098173325_TS-USERS_FNO-4_05r5fhk6 TOAST redo logs: /logs/TOAST/redo/log00.rdo /logs/TOAST/redo/log01.rdo /logs/TOAST/redo/log02.rdo TOAST temp datafiles: /oradata/TOAST/temp01.dbf TOAST spfile spfile string /orabin/product/12.1.0/dbhome_ 1/dbs/spfileTOAST.ora TOAST key parameters control_files /logs/TOAST/arch/control01.ctl, /logs/TOAST/redo/control02.ctl log_archive_dest_1 LOCATION=/logs/TOAST/arch
-
ASMディスクグループが完全に退避された場合は、次のコマンドを使用してアンマウントできます。
asmcmd
。多くの場合、他のデータベースまたはASM spfile/passwdファイルに属するファイルは引き続き存在する可能性があります。-bash-4.1$ . oraenv ORACLE_SID = [TOAST] ? +ASM The Oracle base remains unchanged with value /orabin -bash-4.1$ asmcmd ASMCMD> umount DATA ASMCMD>
データファイルのクリーンアップ手順
Oracle RMANの使用方法によっては、移行プロセスの結果、構文が長いデータファイルや暗号化されたデータファイルが生成されることがあります。この例では、次のファイル形式でバックアップが実行されています: /oradata/TOAST/%U
。 %U
RMANが各データ・ファイルにデフォルトの一意の名前を作成する必要があることを示します。結果は次のテキストに示されているものと似ています。データファイルの従来の名前は、名前の中に埋め込まれています。これは、に示すスクリプト化されたアプローチを使用してクリーンアップできます。 "ASM移行クリーンアップ"。
[root@jfsc1 current]# ./fixuniquenames.pl TOAST #sqlplus Commands shutdown immediate; startup mount; host mv /oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSTEM_FNO-1_01r5fhjg /oradata/TOAST/system.dbf host mv /oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSAUX_FNO-2_02r5fhjo /oradata/TOAST/sysaux.dbf host mv /oradata/TOAST/data_D-TOAST_I-2098173325_TS-UNDOTBS1_FNO-3_03r5fhjt /oradata/TOAST/undotbs1.dbf host mv /oradata/TOAST/data_D-TOAST_I-2098173325_TS-USERS_FNO-4_05r5fhk6 /oradata/TOAST/users.dbf alter database rename file '/oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSTEM_FNO-1_01r5fhjg' to '/oradata/TOAST/system.dbf'; alter database rename file '/oradata/TOAST/data_D-TOAST_I-2098173325_TS-SYSAUX_FNO-2_02r5fhjo' to '/oradata/TOAST/sysaux.dbf'; alter database rename file '/oradata/TOAST/data_D-TOAST_I-2098173325_TS-UNDOTBS1_FNO-3_03r5fhjt' to '/oradata/TOAST/undotbs1.dbf'; alter database rename file '/oradata/TOAST/data_D-TOAST_I-2098173325_TS-USERS_FNO-4_05r5fhk6' to '/oradata/TOAST/users.dbf'; alter database open;
Oracle ASMのリバランシング
前述したように、Oracle ASMディスクグループは、リバランシングプロセスを使用して新しいストレージシステムに透過的に移行できます。つまり、リバランシングプロセスでは、既存のLUNグループに同じサイズのLUNを追加してから、前のLUNを破棄する必要があります。Oracle ASMは、基盤となるデータを最適なレイアウトで新しいストレージに自動的に再配置し、完了すると古いLUNを解放します。
マイグレーションプロセスでは効率的なシーケンシャルI/Oを使用し、通常は原因パフォーマンスの中断は発生しませんが、必要に応じてマイグレーション速度を調整できます。
移行するデータを特定
SQL> select name||' '||group_number||' '||total_mb||' '||path||' '||header_status from v$asm_disk; NEWDATA_0003 1 10240 /dev/mapper/3600a098038303537762b47594c315864 MEMBER NEWDATA_0002 1 10240 /dev/mapper/3600a098038303537762b47594c315863 MEMBER NEWDATA_0000 1 10240 /dev/mapper/3600a098038303537762b47594c315861 MEMBER NEWDATA_0001 1 10240 /dev/mapper/3600a098038303537762b47594c315862 MEMBER SQL> select group_number||' '||name from v$asm_diskgroup; 1 NEWDATA
新しいLUNを作成する
同じサイズの新しいLUNを作成し、必要に応じてユーザとグループのメンバーシップを設定します。LUNはと表示されます。 CANDIDATE
ディスク:
SQL> select name||' '||group_number||' '||total_mb||' '||path||' '||header_status from v$asm_disk; 0 0 /dev/mapper/3600a098038303537762b47594c31586b CANDIDATE 0 0 /dev/mapper/3600a098038303537762b47594c315869 CANDIDATE 0 0 /dev/mapper/3600a098038303537762b47594c315858 CANDIDATE 0 0 /dev/mapper/3600a098038303537762b47594c31586a CANDIDATE NEWDATA_0003 1 10240 /dev/mapper/3600a098038303537762b47594c315864 MEMBER NEWDATA_0002 1 10240 /dev/mapper/3600a098038303537762b47594c315863 MEMBER NEWDATA_0000 1 10240 /dev/mapper/3600a098038303537762b47594c315861 MEMBER NEWDATA_0001 1 10240 /dev/mapper/3600a098038303537762b47594c315862 MEMBER
新しいLUNの追加
追加処理と削除処理は同時に実行できますが、新しいLUNを追加する方が2つの手順で簡単に実行できます。まず、新しいLUNをディスクグループに追加します。この手順により、エクステントの半分が現在のASM LUNから新しいLUNに移行されます。
リバランシング電力は、データが転送される速度を示します。数値が大きいほど、データ転送の並列性が高くなります。移行は、効率的なシーケンシャルI/O処理を使用して実行されますが、原因のパフォーマンスに問題が生じることはほとんどありません。ただし、必要に応じて、進行中の移行のリバランシング機能を alter diskgroup [name] rebalance power [level]
コマンドを実行します一般的な移行では、値5が使用されます。
SQL> alter diskgroup NEWDATA add disk '/dev/mapper/3600a098038303537762b47594c31586b' rebalance power 5; Diskgroup altered. SQL> alter diskgroup NEWDATA add disk '/dev/mapper/3600a098038303537762b47594c315869' rebalance power 5; Diskgroup altered. SQL> alter diskgroup NEWDATA add disk '/dev/mapper/3600a098038303537762b47594c315858' rebalance power 5; Diskgroup altered. SQL> alter diskgroup NEWDATA add disk '/dev/mapper/3600a098038303537762b47594c31586a' rebalance power 5; Diskgroup altered.
動作の監視
リバランシング処理は、さまざまな方法で監視および管理できます。この例では、次のコマンドを使用しました。
SQL> select group_number,operation,state from v$asm_operation; GROUP_NUMBER OPERA STAT ------------ ----- ---- 1 REBAL RUN 1 REBAL WAIT
移行が完了しても、リバランシング処理は報告されません。
SQL> select group_number,operation,state from v$asm_operation; no rows selected
古いLUNを削除する
移行は途中で完了しました。環境が健全であることを確認するために、いくつかの基本的なパフォーマンステストを実行することを推奨します。確認後、古いLUNを削除して残りのデータを再配置できます。これによってLUNがすぐに解放されるわけではないことに注意してください。drop処理は、最初にエクステントを再配置してからLUNを解放するようOracle ASMに通知します。
sqlplus / as sysasm SQL> alter diskgroup NEWDATA drop disk NEWDATA_0000 rebalance power 5; Diskgroup altered. SQL> alter diskgroup NEWDATA drop disk NEWDATA_0001 rebalance power 5; Diskgroup altered. SQL> alter diskgroup newdata drop disk NEWDATA_0002 rebalance power 5; Diskgroup altered. SQL> alter diskgroup newdata drop disk NEWDATA_0003 rebalance power 5; Diskgroup altered.
動作の監視
リバランシング処理は、さまざまな方法で監視および管理できます。この例では、次のコマンドを使用しました。
SQL> select group_number,operation,state from v$asm_operation; GROUP_NUMBER OPERA STAT ------------ ----- ---- 1 REBAL RUN 1 REBAL WAIT
移行が完了しても、リバランシング処理は報告されません。
SQL> select group_number,operation,state from v$asm_operation; no rows selected
古いLUNを削除する
ディスクグループから古いLUNを削除する前に、ヘッダーのステータスを最後に確認する必要があります。ASMからLUNを解放すると、LUNの名前は表示されなくなり、ヘッダーステータスが FORMER
。これは、これらのLUNをシステムから安全に削除できることを示します。
SQL> select name||' '||group_number||' '||total_mb||' '||path||' '||header_status from v$asm_disk; NAME||''||GROUP_NUMBER||''||TOTAL_MB||''||PATH||''||HEADER_STATUS -------------------------------------------------------------------------------- 0 0 /dev/mapper/3600a098038303537762b47594c315863 FORMER 0 0 /dev/mapper/3600a098038303537762b47594c315864 FORMER 0 0 /dev/mapper/3600a098038303537762b47594c315861 FORMER 0 0 /dev/mapper/3600a098038303537762b47594c315862 FORMER NEWDATA_0005 1 10240 /dev/mapper/3600a098038303537762b47594c315869 MEMBER NEWDATA_0007 1 10240 /dev/mapper/3600a098038303537762b47594c31586a MEMBER NEWDATA_0004 1 10240 /dev/mapper/3600a098038303537762b47594c31586b MEMBER NEWDATA_0006 1 10240 /dev/mapper/3600a098038303537762b47594c315858 MEMBER 8 rows selected.
LVMの移行
ここに示す手順は、LVMベースのボリュームグループ移動の原則を示しています。 datavg
。これらの例はLinux LVMを参考にしていますが、原則はAIX、HP-UX、VxVMにも当てはまります。正確なコマンドは異なる場合があります。
-
現在に含まれているLUNを特定します。
datavg
ボリュームグループ:[root@host1 ~]# pvdisplay -C | grep datavg /dev/mapper/3600a098038303537762b47594c31582f datavg lvm2 a-- 10.00g 10.00g /dev/mapper/3600a098038303537762b47594c31585a datavg lvm2 a-- 10.00g 10.00g /dev/mapper/3600a098038303537762b47594c315859 datavg lvm2 a-- 10.00g 10.00g /dev/mapper/3600a098038303537762b47594c31586c datavg lvm2 a-- 10.00g 10.00g
-
物理サイズが同じか少し大きい新しいLUNを作成し、物理ボリュームとして定義します。
[root@host1 ~]# pvcreate /dev/mapper/3600a098038303537762b47594c315864 Physical volume "/dev/mapper/3600a098038303537762b47594c315864" successfully created [root@host1 ~]# pvcreate /dev/mapper/3600a098038303537762b47594c315863 Physical volume "/dev/mapper/3600a098038303537762b47594c315863" successfully created [root@host1 ~]# pvcreate /dev/mapper/3600a098038303537762b47594c315862 Physical volume "/dev/mapper/3600a098038303537762b47594c315862" successfully created [root@host1 ~]# pvcreate /dev/mapper/3600a098038303537762b47594c315861 Physical volume "/dev/mapper/3600a098038303537762b47594c315861" successfully created
-
新しいボリュームをボリュームグループに追加します。
[root@host1 tmp]# vgextend datavg /dev/mapper/3600a098038303537762b47594c315864 Volume group "datavg" successfully extended [root@host1 tmp]# vgextend datavg /dev/mapper/3600a098038303537762b47594c315863 Volume group "datavg" successfully extended [root@host1 tmp]# vgextend datavg /dev/mapper/3600a098038303537762b47594c315862 Volume group "datavg" successfully extended [root@host1 tmp]# vgextend datavg /dev/mapper/3600a098038303537762b47594c315861 Volume group "datavg" successfully extended
-
問題
pvmove
コマンドを使用して、現在の各LUNのエクステントを新しいLUNに再配置します。。- i [seconds]
引数は、操作の進行状況を監視します。[root@host1 tmp]# pvmove -i 10 /dev/mapper/3600a098038303537762b47594c31582f /dev/mapper/3600a098038303537762b47594c315864 /dev/mapper/3600a098038303537762b47594c31582f: Moved: 0.0% /dev/mapper/3600a098038303537762b47594c31582f: Moved: 14.2% /dev/mapper/3600a098038303537762b47594c31582f: Moved: 28.4% /dev/mapper/3600a098038303537762b47594c31582f: Moved: 42.5% /dev/mapper/3600a098038303537762b47594c31582f: Moved: 57.1% /dev/mapper/3600a098038303537762b47594c31582f: Moved: 72.3% /dev/mapper/3600a098038303537762b47594c31582f: Moved: 87.3% /dev/mapper/3600a098038303537762b47594c31582f: Moved: 100.0% [root@host1 tmp]# pvmove -i 10 /dev/mapper/3600a098038303537762b47594c31585a /dev/mapper/3600a098038303537762b47594c315863 /dev/mapper/3600a098038303537762b47594c31585a: Moved: 0.0% /dev/mapper/3600a098038303537762b47594c31585a: Moved: 14.9% /dev/mapper/3600a098038303537762b47594c31585a: Moved: 29.9% /dev/mapper/3600a098038303537762b47594c31585a: Moved: 44.8% /dev/mapper/3600a098038303537762b47594c31585a: Moved: 60.1% /dev/mapper/3600a098038303537762b47594c31585a: Moved: 75.8% /dev/mapper/3600a098038303537762b47594c31585a: Moved: 90.9% /dev/mapper/3600a098038303537762b47594c31585a: Moved: 100.0% [root@host1 tmp]# pvmove -i 10 /dev/mapper/3600a098038303537762b47594c315859 /dev/mapper/3600a098038303537762b47594c315862 /dev/mapper/3600a098038303537762b47594c315859: Moved: 0.0% /dev/mapper/3600a098038303537762b47594c315859: Moved: 14.8% /dev/mapper/3600a098038303537762b47594c315859: Moved: 29.8% /dev/mapper/3600a098038303537762b47594c315859: Moved: 45.5% /dev/mapper/3600a098038303537762b47594c315859: Moved: 61.1% /dev/mapper/3600a098038303537762b47594c315859: Moved: 76.6% /dev/mapper/3600a098038303537762b47594c315859: Moved: 91.7% /dev/mapper/3600a098038303537762b47594c315859: Moved: 100.0% [root@host1 tmp]# pvmove -i 10 /dev/mapper/3600a098038303537762b47594c31586c /dev/mapper/3600a098038303537762b47594c315861 /dev/mapper/3600a098038303537762b47594c31586c: Moved: 0.0% /dev/mapper/3600a098038303537762b47594c31586c: Moved: 15.0% /dev/mapper/3600a098038303537762b47594c31586c: Moved: 30.4% /dev/mapper/3600a098038303537762b47594c31586c: Moved: 46.0% /dev/mapper/3600a098038303537762b47594c31586c: Moved: 61.4% /dev/mapper/3600a098038303537762b47594c31586c: Moved: 77.2% /dev/mapper/3600a098038303537762b47594c31586c: Moved: 92.3% /dev/mapper/3600a098038303537762b47594c31586c: Moved: 100.0%
-
このプロセスが完了したら、
vgreduce
コマンドを実行します成功すると、LUNをシステムから安全に削除できるようになります。[root@host1 tmp]# vgreduce datavg /dev/mapper/3600a098038303537762b47594c31582f Removed "/dev/mapper/3600a098038303537762b47594c31582f" from volume group "datavg" [root@host1 tmp]# vgreduce datavg /dev/mapper/3600a098038303537762b47594c31585a Removed "/dev/mapper/3600a098038303537762b47594c31585a" from volume group "datavg" [root@host1 tmp]# vgreduce datavg /dev/mapper/3600a098038303537762b47594c315859 Removed "/dev/mapper/3600a098038303537762b47594c315859" from volume group "datavg" [root@host1 tmp]# vgreduce datavg /dev/mapper/3600a098038303537762b47594c31586c Removed "/dev/mapper/3600a098038303537762b47594c31586c" from volume group "datavg"