今天同事安装Oralce10g的Standby, 发现有一些参数虽然和Oracle9i 一样(非新加入),但是在操作层面却不一样。Standby相关参数standby_file_management,db_file_name_convert , Oracle9i 默认设置和Oracle10g一样,都是standby_file_management=manual , db_file_name_convert 为空。
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Oct 25 15:03:34 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
SQL>
SQL>
SQL> show parameter standby_file_management
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string MANUAL
SQL> show parameter db_file_name_convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
SQL>
我们采用手工拷贝archived file 然后恢复的方式,观察到 如果不重新设置这两个参数(默认值),那么:
Oracle9i :
在正式数据库中加入一个datafile , 在Standby上归档恢复到需要这个新文件的时候,会提示需要加入这个文件,然后通过在standby上手工加入即可:
Alter database create datafile ‘primary db上目录下的新数据文件‘ as ‘standby某个目录下的新数据文件’ ; ( standby上的目录可以与primary db上的目录不一样,ps : 当然这也是db_file_name_convert 这个参数的作用 )
Oracle10g :
在正式数据库中加入一个datafile , 在Standby上归档恢复到需要这个新文件的时候,
会提示需要加入这个文件,然后通过在standby上手工加入即可:
Alter database create datafile ‘primary db上目录下的新数据文件‘ as ‘standby某个目录下的新数据文件’ ;
这个时候会报错,
ORA-01112: media recovery not started
SQL> alter database create datafile '/u01/product/oradata/qis/log_data03.dbf' as '/data/qis/log_data03.dbf';
alter database create datafile '/u01/product/oradata/qis/log_data03.dbf' as '/data/qis/log_data03.dbf'
*
ERROR at line 1:
ORA-01516: nonexistent log file, datafile, or tempfile
"/u01/product/oradata/qis/log_data03.dbf"
在Standby上查看是否有文件生成,发现新文件生成在/u01/product/oracle/dbs/ 下面 。 但是到OS上的这个目录查找却没有这个文件实体存在 (见下面)。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/data/qis/system01.dbf
/data/qis/undotbs01.dbf
/data/qis/sysaux01.dbf
/data/qis/users01.dbf
/data/qis/log_data01.dbf
/data/qis/log_idx01.dbf
/data/qis/blobs01.dbf
/data/qis/log_idx02.dbf
/data/qis/log_data02.dbf
/u01/product/oracle/dbs/UNNAMED00010 ---- 新添加的數据文件在standby上被改名為UNNAMEDnnnnn格式的文件,default 存放位置$ORACLE_HOME/dbs/
10 rows selected.
在Standby上使用如下语句运行后可以恢复正常, /data/qis/ 目录下也正常添加了新文件log_data03.dbf.
SQL> alter database create datafile '/u01/product/oracle/dbs/UNNAMED00010' as '/data/qis/log_data03.dbf';
Database altered.
SQL> recover standby database
ORA-00279: change 632026 generated at 10/25/2007 09:13:03 needed for thread 1
ORA-00289: suggestion : /data/qis/arch/1_9_636816195.arc
ORA-00280: change 632026 for thread 1 is in sequence #9
------------------------------------------------------------------------------
结论: 如果Primary DB 及 Standby db上目录稳定,那么一般设置
standby_file_management = AUTO Primarydb上加入新文件后自动在Standby上自动加入。
db_file_name_convert = '/arch1/boston/','/arch1/chicago/','/arch2/boston/','/arch2/chicago/' 可以设置多组Primary db上及standby db上的对应目录
当然logfile也是可以添加的:LOG_FILE_NAME_CONVERT
db_file_name_convert 后面的目录注意: /data/sid/ 对应 /data1/sid/ ,不要 /data/sid/ 对应 /data1/sid ( 没有后面那个 / , 这样会出现问题 )。 或者 /data/sid 对应 /data1/sid , 总之前后格式一致。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-84970/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-84970/