如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com.
ORA-01274 oerr ora 1274 01274, 0000, "cannot add datafile '%s' - file could not be created" // *Cause: Automated standby file management was disabled, so an added file // could not automatically be created on the standby. // The error from the creation attempt is displayed in another message. // The control file file entry for the file is 'UNNAMEDnnnnn'. // *Action: Use the ALTER DATABASE CREATE DATAFILE statement to create the // file, or set STANDBY_FILE_MANAGEMENT to AUTO and restart // standby recovery.
适用于:
Oracle Database – Enterprise Edition – 版本 9.2.0.1 到 12.1.0.1 [Release 9.2 到 12.1]
本文信息适用于任何平台。
*** 26-Sep-2012检查相关性***
*** 8-Jul-2015检查相关性***
症状
在主数据库中添加一个表空间/数据文件导致物理备用数据库中的MRP中止显示以下错误。备用数据库中设置了STANDBY_FILE_MANAGEMENT = MANUAL 。
MRP0: Background Media Recovery terminated with error 1274
ORA-01274: cannot add datafile ‘…dbf’ – file could not be created
在Unix 环境中,当尝试重启MRP时你会得到以下信息
ORA-01111: name for data file 163 is unknown – rename to correct file
最佳实践,
保持STANDBY_FILE_MANAGEMENT 处于 AUTO。
原因
如果我们在主数据库中添加一个数据文件或表空间,其由于以下原因无法被转换为备用数据库时,该错误会发生:
- Standy_file_management被设为MANUAL
- 主&物理备用有不同的文件结构且根据Primary 和Standby 中的目录结构DB_FILE_NAME_CONVERT未被设置
- 在创建数据文件的备用数据库上空间不足或错误权限
从Primary 生成的重做日志会有关于被添加的表空间/数据文件的信息,但是由于standby_file_management = MANUAL 它无法被成功创建,或由于丢失/错误的文件名转换无法找到指定的文件夹。
文件条目被添加到备用控制文件作为”UNNAMED0000n” ,在/dbs 或/database 文件夹取决于操作系统,且最终MRP 中止。
在Standby中的警报日志显示MRP 被终止,显示以下错误
=================================================================
File #5 added to control file as ‘UNNAMED00005’ because
the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL
The file should be manually created to continue.
MRP0: Background Media Recovery terminated with error 1274
Thu Sep 25 19:02:35 2008
Errors in file c:\oracle\product\10.2.0\admin\mystd\bdump\mystd_mrp0_3436.trc:
ORA-01274: cannot add datafile ‘D:\ORADATA\PRIM\SALES01.DBF’ – file could not be created
默认下,它是AUTO by broker。
解决方案
在备用数据库上执行所有提到的步骤:
步骤1:确保standby_file_management = ‘MANUAL’
注 : 对于参数db_file_name_convert 的更改,如果Data Guard Broker被启用,则使用Broker编辑参数,
DGMGRL>edit database ‘<standby>’ set property DbFileNameConvert='<>’,'<>’;
DGMGRL>edit database ‘<standby>’ set property StandbyFileManagement=manual;
默认下StandbyFileManagement is AUTO by broker。
步骤 2: 识别”unnamedn”的文件
SQL> select name from v$datafile;
NAME
——————————————————————————–
D:\ORADATA\MYSTD\SYSTEM.DBF
D:\ORADATA\MYSTD\UNDO.DBF
D:\ORADATA\MYSTD\SYSAUX.DBF
D:\ORADATA\MYSTD\SERVICE01.DBF
C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00005
步骤3:重命名/创建数据文件为正确的文件名
SQL> alter database create datafile ‘C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00005’ as ‘D:\oradata\mystd\sales01.dbf’;
如果standby 处于ASM + OMF 则使用以下命令,
SQL> alter database create datafile ‘/oracle/product/GSIPRDGB/dbs/UNNAMED00210’ as <‘+ASMDISKGROUPNAME’> size <specify the size of datafile>;
或
SQL>alter database create datafile ‘/oracle/product/GSIPRDGB/dbs/UNNAMED00210’ as new;
步骤4: 验证文件名为正确
SQL> select name from v$datafile;
NAME
——————————————————————————–
D:\ORADATA\MYSTD\SYSTEM.DBF
D:\ORADATA\MYSTD\UNDO.DBF
D:\ORADATA\MYSTD\SYSAUX.DBF
D:\ORADATA\MYSTD\SERVICE01.DBF
D:\ORADATA\MYSTD\SALES01.DBF
步骤5:更改STANDBY_FILE_MANAGEMENT为AUTO
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO scope=both;
步骤6:启动MRP (这使用Real Time Apply)
SQL> alter database recover managed standby database using current logfile disconnect;
Database altered.
步骤7: 验证MRP如预期运行
SQL> select process, status , sequence# from v$managed_standby;
PROCESS STATUS SEQUENCE# --------- ------------ ---------- ARCH CLOSING 99 ARCH CLOSING 103 MRP0 APPLYING_LOG 104 RFS IDLE 0 RFS IDLE 0 RFS IDLE 104
Comment