丢失非系统非当前活动回滚段表空间中的一个数据文件

*
*丢失非系统非当前活动回滚段表空间中的一个数据文件
首先是做一次热备(因为上次已经做了不完全恢复resetlogs)
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
  
E:/>sqlplus internal
  
SQL*Plus: Release 8.1.7.0.0 - Production on 星期一 10月 21 08:05:20 2002
  
(c) Copyright 2000 Oracle Corporation.  All rights reserved.
  
连接到:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
  
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            d:/BACKUPDB/archive
最早的概要信息日志序列     0
下一个存档日志序列   1
当前日志序列           1
SQL> @e:/backupdb/other/aa
  
TO_CHAR(SYSDATE,'''YY
---------------------
'2002-10-21 08:10:22'
  
SQL>
SQL> @e:/backupdb/other/backup_ts.sql
SQL> --set termout off;
SQL> set echo off head off feedback off pagesize 0;
21-10月-02
  
BEGINING ARCHIVE LOG NUMBER IS :
数据库日志模式            存档模式
自动存档             启用
存档终点            d:/BACKUPDB/archive
最早的概要信息日志序列     0
下一个存档日志序列   1
当前日志序列           1
  
Begin Backup Tablespace SYSTEM.'D:/BACKUPDB/SYSTEM01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace RBS.'D:/BACKUPDB/RBS01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace USERS.'D:/BACKUPDB/USERS01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace TEMP.'D:/BACKUPDB/TEMP01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace TOOLS.'D:/BACKUPDB/TOOLS01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace INDX.'D:/BACKUPDB/INDX01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup CONTROLFILE 'D:/BACKUPDB/CONTROL01.CTL'  ...
Successed End Backup The CONTROLFILE .
  
Begin Backup CONTROLFILE To Trace  ...
Successed End Backup The CONTROLFILE .
  
Before Switch Log, The Current Log is:
数据库日志模式            存档模式
自动存档             启用
存档终点            d:/BACKUPDB/archive
最早的概要信息日志序列     0
下一个存档日志序列   1
当前日志序列           1
  
Begin Backup Switch Current Log  ...
Successed End Switch Log .
  
After Switch Log, The Ending Archive Log Number Is :
数据库日志模式            存档模式
自动存档             启用
存档终点            d:/BACKUPDB/archive
最早的概要信息日志序列     1
下一个存档日志序列   2
当前日志序列           2
  
21-10月-02
  
SQL> --set termout on;
SQL>
SQL> select to_char(sysdate,'''yyyy-mm-dd hh:mm:ss''') from dual;
'2002-10-21 08:10:54'
  
已选择 1 行。
  
SQL>
  
数据准备工作1
从下面的情况看,因为改变了数据库的结构,所以,首先需要一个热备或者冷备才能进行恢复。如果已经备份,可以找回数据insert into test2 values(2);,因为2是几经commit;的,3是没有commit的,所以能找会到2。3则会丢失。
  
SQL> alter tablespace system add datafile 'D:/BACKUPDB/SYSTEM02.DBF' size 10M;
  
表空间已更改。
  
SQL> alter tablespace users add datafile 'D:/BACKUPDB/USERS02.DBF' size 10M;
  
表空间已更改。
  
SQL>
SQL> create tablespace test datafile  'D:/BACKUPDB/test01.dbf' size 10M;
  
表空间已创建。
  
SQL>
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            d:/BACKUPDB/archive
最早的概要信息日志序列     1
下一个存档日志序列   2
当前日志序列           2
SQL> alter user lunar quota 10m on test;
  
用户已更改。
  
SQL>
SQL>  create table test2(a number) tablespace test;
  
表已创建。
  
SQL> insert into test2 values(1);
  
已创建 1 行。
  
SQL> commit;
  
提交完成。
SQL> alter system switch logfile;
  
系统已更改。
  
SQL>
SQL> conn lunar/lunar
Connected.
SQL> select * from tab;
  
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TEST1                          TABLE
TEST2                          TABLE
TESTBACKUP3                    TABLE
  
SQL> insert into test2 values(2);
  
1 row created.
  
SQL> commit;
  
Commit complete.
  
SQL> insert into test2 values(3);
  
1 row created.
  
以上改动后需要作一次热备或者冷备,否则数据文件丢失后不能恢复(增加表空间,数据文件都要备份数据库)
SQL> conn internal
Connected.
SQL> @e:/backupdb/other/aa
SQL> select to_char(sysdate,'''yyyy-mm-dd hh:mm:ss''') from dual;
'2002-10-21 08:10:05'
  
1 row selected.
  
SQL> set  termout off
SQL>
SQL> @e:/backupdb/other/backup_ts.sql
SQL> --set termout off;
SQL> set echo off head off feedback off pagesize 0;
21-OCT-02
  
BEGINING ARCHIVE LOG NUMBER IS :
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            d:/BACKUPDB/archive
Oldest online log sequence     3
Next log sequence to archive   5
Current log sequence           5
  
Begin Backup Tablespace SYSTEM.'D:/BACKUPDB/SYSTEM01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace RBS.'D:/BACKUPDB/RBS01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace USERS.'D:/BACKUPDB/USERS01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace TEMP.'D:/BACKUPDB/TEMP01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace TOOLS.'D:/BACKUPDB/TOOLS01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace INDX.'D:/BACKUPDB/INDX01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace SYSTEM.'D:/BACKUPDB/SYSTEM02.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace USERS.'D:/BACKUPDB/USERS02.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup Tablespace TEST.'D:/BACKUPDB/TEST01.DBF'  ...
已复制         1 个文件。
  
Successed End Backup This File .
  
Begin Backup CONTROLFILE 'D:/BACKUPDB/CONTROL01.CTL'  ...
Successed End Backup The CONTROLFILE .
  
Begin Backup CONTROLFILE To Trace  ...
Successed End Backup The CONTROLFILE .
  
Before Switch Log, The Current Log is:
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            d:/BACKUPDB/archive
Oldest online log sequence     3
Next log sequence to archive   5
Current log sequence           5
  
Begin Backup Switch Current Log  ...
Successed End Switch Log .
  
After Switch Log, The Ending Archive Log Number Is :
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            d:/BACKUPDB/archive
Oldest online log sequence     4
Next log sequence to archive   6
Current log sequence           6
  
21-OCT-02
  
SQL> --set termout on;
SQL>
SQL> select to_char(sysdate,'''yyyy-mm-dd hh:mm:ss''') from dual;
'2002-10-21 08:10:31'
  
1 row selected.
  
SQL>
  
数据准备工作2
可以找回数据insert into test2 values(4);,因为4是几经commit;的,5是没有commit的,所以能找会到2。3则会丢失。
SQL> conn lunar/lunar
Connected.
SQL>  insert into test2 values(4);
  
1 row created.
  
SQL> commit;
  
Commit complete.
  
SQL>  insert into test2 values(5);
  
1 row created.
  
SQL>
  
Shutdow abort,然后删除test01.dbf,模拟数据文件丢失
SQL> conn internal
Connected.
SQL>  shutdown abort
ORACLE instance shut down.
SQL>
  
删除test01.dbf,把备份的数据文件test01.dbf拷贝过来
Mount数据库
SQL> startup mount;
ORACLE instance started.
Total System Global Area   25856028 bytes
Fixed Size                    75804 bytes
Variable Size               8925184 bytes
Database Buffers           16777216 bytes
Redo Buffers                  77824 bytes
Database mounted.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 9 needs media recovery
ORA-01110: data file 9: 'D:/BACKUPDB/TEST01.DBF'
  
SQL>
在打开数据库的时候,提示'D:/BACKUPDB/TEST01.DBF'需要介质恢复,因为他和其他的文件时间点不一致。
  
恢复数据文件(把最近的热备的文件拷贝过来)
SQL> recover datafile  'D:/BACKUPDB/TEST01.DBF';
Media recovery complete.
  
打开数据库
SQL> alter database open;
  
Database altered.
  
SQL>
验证恢复结果:完全恢复
SQL> conn lunar/lunar
Connected.
SQL> select * from test2;
          1
          2
          3
          4
          5
  
5 rows selected.
  
SQL>
  
说明:
[$#376]  首先是做一次热备(因为上次已经做了不完全恢复resetlogs)   
[$#376]  以上改动后需要作一次热备或者冷备,否则数据文件丢失后不能恢复(增加表空间,数据文件都要备份数据库)   
  
1.  Shutdow abort,然后删除test01.dbf,模拟数据文件丢失   
2.  删除test01.dbf,把备份的数据文件test01.dbf拷贝过来   
3.  Mount数据库   
4.  恢复数据文件(把最近的热备的文件拷贝过来)   
5.  打开数据库  

 

http://www.cnoug.org/viewthread.php?tid=95&highlight=%2Blunar

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值