没有备份、只有归档日志,如何恢复数据文件?

备份|恢复|数据

没有备份、只有归档日志,如何恢复数据文件?
系统环境: 1、操作系统:Windows 2000 Server,机器内存128M
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:C:\ORACLE
模拟现象:
可通过重建数据文件来恢复,前提是归档日志文件保存完整先将数据库设置为归档模式SQL*Plusconn system/manager--创建实验表空间create tablespace test datafile'c:\test.ora' size 5MAUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITEDdefault storage (initial 128K next 1M pctincrease 0)/--创建实验用户 drop user test cascade;create user test identified by test default tablespace test;grant connect,resource to test;conn test/testcreate table a(a number);insert into a values(1);insert into a select * from a;--反复插入,达到100万条commit;--关闭数据库SVRMGR> connect internalSVRMGR> alter system switch logfile;--强制归档SVRMGR> alter system switch logfile;SVRMGR> alter system switch logfile;SVRMGR> shutdown--操作系统下删除test.ora文件--重新启动数据库SVRMGR> connect internalSVRMGR> startup这时,可以mount上,但无法打开,因为数据文件test.ora不存在,显示错误如下:ORA-01157: ????/?????? 8 - ??? DBWR ????ORA-01110: ???? 8: 'C:\TEST.ORA'SVRMGR> connect internalSVRMGR> startup mountSVRMGR> alter database create datafile 'c:\test.ora';SVRMGR> set autorecovery onSVRMGR> recover datafile 'c:\test.ora';SVRMGR> alter database open;conn test/testselect count(*) from a;--数据又恢复到100万条--删除实验表空间conn system/manageralter tablespace test offline;drop tablespace test INCLUDING CONTENTS;drop user test;--如果是非归档模式,也可以运用以上方法,--前提是:输入记录所占空间的大小不超过所有联机日志文件的大小--即:用联机日志文件来恢复

时间: 2025-01-10 21:18:46

没有备份、只有归档日志,如何恢复数据文件?的相关文章

rman备份的归档日志恢复不成功,求指教

问题描述 rman备份的归档日志恢复不成功,求指教 用的增量备份策略其中归档日志备份如下: backup as compressed backupset archivelog all format '/home/oracle/0_level/arch_%s_%d_T' delete input; 在进行恢复的时候,recover database;时恢复了归档日志,但是归档日志恢复的不全,而且有的不成功,提示如下,数据库也可以打开,数据貌似也都回来了. channel ORA_DISK_1: s

MySQL使用二进制日志来恢复数据二种方法

MySQL使用二进制日志来恢复数据二种方法 如果MySQL服务器启用了二进制日志,你可以使用mysql教程binlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据.关于启用二进制日志的信息,参见5.11.3节,"二进制日志".对于 mysqlbinlog的详细信息,"mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即m

[20171114]恢复数据文件块头2.txt

[20171114]恢复数据文件块头2.txt --//曾经写过一篇[20161111]数据库文件头的修复.txt,但是利用大小相似的数据文件头覆盖来恢复,那是属于特种恢复. --//参考链接:http://blog.itpub.net/267265/viewspace-2128309/ --//不在正常操作范围,完全是不得已而为之.基本写那篇在一年之前,这次做一个带引号"常规恢复"看看. --//后记:纯属无聊,千万不要把这当作常规的恢复. 1.环境: SCOTT@book>

在mount状态下恢复数据文件system表空间

数据字典(包含数据库本身以及存储的所有对象的基本信息)存放在SYSTEM表空间中.当数据库处于open状态时,如果system表空间所对应的数据文件出现介质失败,当在其数据文件上进行IO时操作时,数据库会自己关闭:当数据库处于关闭状态时,如果system表空间所对应的数据文件出现介质失败,数据库将不能打开.打开时会出现如下错误: ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件ORA-01110: 数据文件 1: 'F:\APP\YANG\ORADATA\ORAC

[20171115]恢复数据文件块头3补充.txt

[20171115]恢复数据文件块头3补充.txt --// 昨天做了恢复数据文件块头,通过备份文件直接取出文件块头,覆盖原来的数据块,然后修复. --//补充几点: --1.文件头损坏,无法使用rman的块恢复功能. --2.文件头损坏,dbv检查发现都是坏块.我感觉主要文件块头损坏,dbv无法定位其它剩下的块. 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER --------

[20171122]恢复数据文件块头5.txt

[20171122]恢复数据文件块头5.txt --//前几天做了恢复数据文件块头,通过备份文件直接取出文件块头,覆盖原来的数据块,然后修复. --//今天测试使用image copy来恢复.也是直接使用直接取出文件块头覆盖原来的数据块. 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -

oracle手工完全恢复(四)database在open 状态下恢复数据文件

案例3:(recover tablespace ,database open状态) --database在open 状态下恢复数据文件(除了system tablespace) (1) 模拟环境: 06:10:52 SQL> insert into scott.t01 values (4); 1 row created. 06:13:12 SQL> insert into scott.t01 values (5); 1 row created. 06:13:13 SQL> insert

配置归档日志,让数据库管理更加顺畅

一.更改日志操作模式三步走. 默认情况下,Oracle数据库采用的是非归档模式.但是,非归档模式不能够防止因物理损坏而导致丢失数据问题.为此数据库管理员可能需要把日志操作模式从非归档模式转换为归档模式.其实,要进行这个转换的话,只需要通过简单的三个步骤即可.不过在进行操作之前,要需要注意.以下的操作都必须要求用户具有数据库管理员的权限,即只有SYSDBA或者SYSOPER身份才能够执行如下的操作. 要更改日志操作模式,具体操作步骤如下. 第一步:先确定当前的日志操作模式.当数据库管理员更改当前操

数据文件坏删除数据文件

数据 没有简单的方法来删除表空间的数据文件,唯一的方法是删除整个定义的表空间,步骤有下面(前提是这个数据文件上的数据是不需要了): 如果数据库运行在非归档模式: 1. MOUNT数据库 - startup mount2. 删除数据文件 - alter database datafile xxx offline drop3. 打开(OPEN)数据库 - alter database open 4. 查看属于该表空间的所有对象:        select owner, segment_name,