如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

    适用于: Oracle Database - Standard Edition Oracle Database - Personal Edition Oracle Database - Enterprise Edition - Version 9.0.1.0 and later Enterprise Manager for Oracle Database 本文信息适用于任何平台。 目的 此公告描述了使用克隆技术从意外丢失NOARCHIVEMODE数据库配置下的数据文件中恢复的建议。 范围 本功能针对掌握备份和恢复过程的DBA和Support Analyst。 详细信息 从noarchive模式意外丢失数据文件中恢复的提示: ====================================================================== 当数据文件由于媒体故障被意外删除或丢失, 文件引用仍然存在于数据库控制文件中。尝试打开数据库失败,显示以下错误: ORA-01157: cannot identify/lock data file 5 - see DBWR trace file ORA-01110: data file 5: '/u01/oradata/V815/data/users01.dbf' 数据库保持在mounted状态(唯一打开的文件是控制文件。) You need to restore the database from the latest good cold backup including all the database physical structural files: controlfile(s), redolog files, and datafiles. However, you can choose another method to quickly open a database by dropping the missing datafile and the affected tablespace from the database. This approach is recommended when the effected tablespace contains: 你需要从最新的好的冷备份中还原数据库,包括所有数据库的物理结构文件:控制文件,重做日志文件,和数据文件。但是,你可以选择其他方法来快速打开数据库,通过从数据库中drop丢失的数据文件和受影响的表空间。当受影响的表空间包括以下内容,建议使用这个方法: o 不重要的数据。 o 可以被手动重建的索引。 o 此时不重要的历史数据,且有必要尽快打开数据库以最小化宕机时间down time。之后可以通过使用克隆数据库技术来恢复丢失的数据。 注:以下是丢失的数据文件与回滚段或系统表空间无关的情况。 以下必须在数据库处于mount状态下完成: SQL> alter database datafile '/u01/oradata/V815/data/users01.dbf' offline drop; Statement processed. SQL> alter database open; Statement processed. SQL> drop tablespace users including contents; Statement processed. 以下是关于如何使用克隆技术从被drop表空间中恢复数据的提示。 注:一些步骤涉及UNIX操作系统环境,但可适用于NT 操作系统。 使用克隆技术恢复数据的提示: ---------------------------------------------------- 1. 你需要还原与以下表空间相关的必要数据文件:system, rollback, temporary, 以及你想恢复到新目录的表空间(即,/u01/oradata/CLONE)。 如果你为冷备份使用RMAN ,使用"set newname" 命令将数据文件还原到新的位置。例如: RMAN> run { set newname for datafile 1 to '/u01/oradata/CLONE/system01.dbf'; set newname for datafile 2 to '/u01/oradata/CLONE/rbs01.dbf'; set newname for datafile 3.to '/u01/oradata/CLONE/temp01.dbf'; set newname for datafile 6 to '/u01/oradata/CLONE/users01.dbf'; allocate channel t1 type 'SBT_TAPE'; restore datafile 1,2,3,6; } 要获取数据文件号,查询V$DATAFILE视图。 注:RMAN 将被还原的文件视为用于未来还原操作的有效副本。因此,当你不使用克隆的数据库时,使用"change" 命令的RMAN 适当语法来删除对被还原文件的引用。例如: RMAN> change datafilecopy '/u01/oradata/CLONE/system01.dbf' uncatalog; 这从目标数据库控制文件和RMAN catalog(如果存在)中删除引用reference。 2. 使用新名称,如initCLONE.ora和configCLONE.ora将你的生产init 和 config文件复制到与被还原数据文件相同的目录。 3. 将initCLONE.ora 的软链接创建到$ORACLE_HOME/dbs中。 4. 修改这两个文件的内容,以引用新的db_name=CLONE,配置文件("ifile"参数)的新位置,和"control_files"的新位置。 5. 将ORACLE_SID 环境变量设为新实例名"CLONE"。 6. 使用create controlfile sql语句准备一个sql脚本文件。如果你在生产数据库上备份要跟踪的控制文件you backup your controlfile to trace on the production database ("alter database backup controlfile to trace"),你可以通过一些修改来重新使用该跟踪文件。该语句 应该类似: STARTUP NOMOUNT CREATE CONTROLFILE SET DATABASE "CLONE" RESETLOGS NOARCHIVELOG MAXLOGFILES 32 MAXLOGMEMBERS 2 MAXDATAFILES 30 MAXINSTANCES 8 MAXLOGHISTORY 843 LOGFILE GROUP 1 '/u01/oradata/CLONE/redoCLONE01.log' SIZE 500K, GROUP 2 '/u01/oradata/CLONE/redoCLONE02.log' SIZE 500K, GROUP 3 '/u01/oradata/CLONE/redoCLONE03.log' SIZE 500K DATAFILE '/u01/oradata/CLONE/system01.dbf', '/u01/oradata/CLONE/rbs01.dbf', '/u01/oradata/CLONE/temp01.dbf', '/u01/oradata/CLONE/users01.dbf' CHARACTER SET WE8ISO8859P1 确保LOGFILE 指向新的重做文件位置。同样适用于数据文件。此外,该语句的数据文件部分必须仅包括必要的数据文件,如此公告之前所述。 7. 启动SQL*Plus 并作为SYSDBA连接,并启动该脚本。 8. 使用以下语句打开数据库: SQL> alter database open resetlogs; 9.当克隆数据库成功打开,你可以执行丢失对象/数据的导出并将它们导入到生产数据库。 注:Oracle 8i用户也可以使用RMAN "duplicate"命令。 这个方法在Oracle8i恢复管理器用户指南和参考版本2(8.1.6)的“使用Recovery Manager创建duplicate数据库”一章或Oracle8i的备份和恢复 指南版本8.1.5中详细介绍。然而,“duplicate”命令强制你还原所有数据库数据文件,当有人只想从一个表空间中检索数据时是不可行的。 同时参见 Note: 223543.1 How to Recover From a DROP / TRUNCATE / DELETE TABLE with RMAN 参考: =========== Oracle8i Recovery Manager User's Guide and Reference Release 2 (8.1.6), chapter on "Creating a Duplicate Database with Recovery Manager." Oracle8i Backup and Recovery Guide Release 8.1.5.