Rmanバックアップを使用してデータベース(11.2.0.4)Aを別のマシンに移行しようとしています。現在、ソースマシンでは、REDOログファイル、一時ファイルはディレクトリfoo(/foo
)。ターゲットマシンでは、これらのファイルをディレクトリバー(/bar
)。過去の慣例では、これらのファイル用にfooを作成し、リカバリの完了後にこれらのファイルを手動でbarに移動することでした。 RMANは非常に強力なツールであるため、私の要件を満たす簡単な方法がいくつかあると思います。これまでのところ、グーグルを検索することにより、一時ファイルのための便利なrmanコマンドを得ました:
set newname for tempfile <fileno> to '<path>'
REDOファイルには同様のコマンドがないようです。このコマンドを使用してリカバリを実行する前に、いくつか質問があります。
alter database open resetlogs
)リカバリが完了した後のデータベース、REDOログファイルと一時ファイルが存在します。 rmanはデータベースに対してこれを自動的に作成しますか?このトピックに関する信頼できるOracleドキュメントが見つかりません。これにはOracle Managed Filesを使用するのが最も簡単です。 Oracleは、ファイルを配置して名前を付けるだけで、
db_create_file_dest = '/on/some/disk'
db_create_online_log_dest_1 = '/on/other/disk'
...
db_create_online_log_dest_5 = '/on/extra_other/disk'
パラメーター。可用性のニーズに応じて、多かれ少なかれdb_create_online_log_dest_Nパラメータを使用します。可用性とパフォーマンスを真剣に考えている場合は、さまざまな場所に個別のディスクとコントローラーを用意します。
良い ドキュメント 始める
Pfileを使用して以下をpfileに設定するか、spfileを使用して起動nomountを実行し、以下の変数を設定できます。パターンは次のように、必要な数だけディレクトリを作成できます: ''、 ''、 ''、 ''、 ''、 '' ...
alter system set db_file_name_convert='/foo/','/bar/' scope=spfile;
alter system set log_file_name_convert='/foo/','/bar/' scope=spfile;
Clone/restoreコマンドでやり直しを指定することもできます。
DUPLICATE DATABASE TO mytest BACKUP LOCATION '/mybackup/mytest'
LOGFILE
GROUP 1 ('/mybackup/mytest/redo01a.log', '/mybackup/mytest/redo01b.log') SIZE 256M REUSE,
GROUP 2 ('/mybackup/mytest/redo02a.log', '/mybackup/mytest/redo02b.log') SIZE 256M REUSE,
GROUP 3 ('/mybackup/mytest/redo03a.log', '/mybackup/mytest/redo03b.log') SIZE 256M REUSE
NOFILENAMECHECK;