web-dev-qa-db-ja.com

一時ファイルのパスを変更する方法、別のマシンでrmanバックアップを復元するときにログファイルをやり直す

Rmanバックアップを使用してデータベース(11.2.0.4)Aを別のマシンに移行しようとしています。現在、ソースマシンでは、REDOログファイル、一時ファイルはディレクトリfoo(/foo)。ターゲットマシンでは、これらのファイルをディレクトリバー(/bar)。過去の慣例では、これらのファイル用にfooを作成し、リカバリの完了後にこれらのファイルを手動でbarに​​移動することでした。 RMANは非常に強力なツールであるため、私の要件を満たす簡単な方法がいくつかあると思います。これまでのところ、グーグルを検索することにより、一時ファイルのための便利なrmanコマンドを得ました:

set newname for tempfile <fileno> to '<path>'

REDOファイルには同様のコマンドがないようです。このコマンドを使用してリカバリを実行する前に、いくつか質問があります。

  1. 完全バックアップをとったとき、バックアップは一時テーブルスペースとREDOファイルと一緒には行きませんでしたが、私が経験した過去の移行では、(alter database open resetlogs)リカバリが完了した後のデータベース、REDOログファイルと一時ファイルが存在します。 rmanはデータベースに対してこれを自動的に作成しますか?このトピックに関する信頼できるOracleドキュメントが見つかりません。
  2. REDOのパスを変更するのはつまらないので、rmanスクリプトでこのタスクを完了します。rmanスクリプトでREDOログファイルの名前を変更するコマンドはありますか?
5
user4535727

これには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パラメータを使用します。可用性とパフォーマンスを真剣に考えている場合は、さまざまな場所に個別のディスクとコントローラーを用意します。

良い ドキュメント 始める

1
ik_zelf

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;
1
Gandolf989