ホームページ  >  記事  >  データベース  >  RMAN异机恢复目录不同--set newname datafile

RMAN异机恢复目录不同--set newname datafile

WBOY
WBOYオリジナル
2016-06-07 17:31:021534ブラウズ

RMAN异机恢复mdash;mdash;目录不同--set newname datafile

今天想要做下异机恢复,,由于原库与现库的目录不同,所以要转换一下。脑中第一反应就是db_file_name_convert,可是设置好这个参数之后发现不行,restore根本没有转换,还会报错:

channel ORA_DISK_1: reading from backup piece /orabak/Oracle_bak/fullrac_EPTDB_821_1_20130802
ORA-19870: error reading backup piece /orabak/oracle_bak/fullrac_EPTDB_821_1_20130802
ORA-19504: failed to create file "/dev/rrac_lv02_20g"
ORA-27040: file create error, unable to create file
IBM AIX RISC System/6000 Error: 13: Permission denied
 

于是查了下db_file_name_convert这个参数。 

DB_FILE_NAME_CONVERT

PropertyDescription

Parameter type String

Syntax DB_FILE_NAME_CONVERT = 'string1' , 'string2' , 'string3' , 'string4' , ...

Where:

  • string1 is the pattern of the primary database filename

  • string2 is the pattern of the standby database filename

  • string3 is the pattern of the primary database filename

  • string4 is the pattern of the standby database filename

  • You can use as many pairs of primary and standby replacement strings as required. You can use single or double quotation marks.

    The following are example settings that are acceptable:

    DB_FILE_NAME_CONVERT = '/dbs/t1/','/dbs/t1/s_','dbs/t2/ ','dbs/t2/s_'

    Default value There is no default value.

    Modifiable ALTER SESSION

    Basic No

    DB_FILE_NAME_CONVERT is useful for creating a duplicate database for recovery purposes. It converts the filename of a new datafile on the primary database to a filename on the standby database. If you add a datafile to the primary database, you must add a corresponding file to the standby database. When the standby database is updated, this parameter converts the datafile name on the primary database to the datafile name on the standby database. The file on the standby database must exist and be writable, or the recovery process will halt with an error.

    If you specify an odd number of strings (the last string has no corresponding replacement string), an error is signalled during startup. If the filename being converted matches more than one pattern in the pattern/replace string list, the first matched pattern takes effect. There is no limit on the number of pairs that you can specify in this parameter (other than the hard limit of the maximum length of multivalue parameters).

    Set the value of this parameter to two strings. The first string is the pattern found in the datafile names on the primary database. The second string is the pattern found in the datafile names on the standby database.

    You can also use DB_FILE_NAME_CONVERT to rename the datafiles in the clone control file when setting up a clone database during tablespace point-in-time recovery.

    可以看出,这个参数只能在建立备库使用,在做异机恢复时该参数不起作用。

    于是只能用set newname datafile 1 to ‘…’;之后再restore,restore之后需要switch datafile all;
    run
    {
    set newname for datafile 1 to '/ora/oradata/eptdb/rrac_system_2g';
    set newname for datafile 2 to '/ora/oradata/eptdb/rrac_undo1_5g';
    restore database;
    switch datafile all;
    }

    操作成功,没有报错!

    推荐阅读:

    Oracle基础教程之通过RMAN复制数据库

    RMAN备份策略制定参考内容

    RMAN备份学习笔记

    Oracle数据库备份加密 RMAN加密

    linux

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。