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

原创 2004年07月22日 11:09:00

*
*丢失非系统非当前活动回滚段表空间中的一个数据文件
首先是做一次热备(因为上次已经做了不完全恢复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

 

RAC中数据文件创建到了本地路径(非系统表空间)

数据库开启归档模式,非系统表空间数据文件迁移可以不用停数据库。 1.模拟创建 一节点: SQL> create tablespace tdb datafile '/u02/app/oracle/dat...
  • ghostliming
  • ghostliming
  • 2016年01月22日 13:41
  • 1294

【非关键性数据文件丢失(可以脱机数据文件的丢失)-恢复-1】

非关键性数据文件丢失(可以脱机数据文件的丢失): run{ sql 'alter database datafile restore datafile recover datafile ...
  • u012625036
  • u012625036
  • 2014年12月27日 18:27
  • 496

归档模式下-丢失非关键数据文件

1.确保数据库备份有效 确保数据库运行在归档模式 SQL> archive log list; Database log mode              Archive Mode ...
  • m18994118189
  • m18994118189
  • 2017年02月22日 16:17
  • 86

关键路径上找时间,非关键路径上找资源

关键路径上找时间,非关键路径上找资源
  • wyxhd2008
  • wyxhd2008
  • 2013年12月17日 20:39
  • 2536

iterm2+zsh+ohmyzsh折腾一轮工具

俗话说的好,工欲善其事必先利其器,最近开始折腾工具。搭配了一套iterm2+zsh+ohmyzsh工具,zsh里还装了zsh-autosuggestions、zsh-syntax-highlighti...
  • litefish
  • litefish
  • 2017年11月17日 17:29
  • 287

Oracle清除数据库中长时间占用资源的非活动的会话

首先我们了解下,会话有那些状态: 1、active  此状态的会话,表示正在执行,处于活动状态。 2、killed 此状态的会话,被标注为删除,表示出现了错误,正在回滚,当然,也是占用...
  • elvishehai
  • elvishehai
  • 2016年08月13日 10:30
  • 332

Qt4中的模态与非模态对话框用法总结

模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在。又有叫法是称为模式对话框,无模式对话框等。 所谓模态对话框就是...
  • liuligui5200
  • liuligui5200
  • 2015年08月28日 14:12
  • 1045

类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们的问题的解决方法 续集

类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们的问题的解决方法 续集...
  • chenhongwu666
  • chenhongwu666
  • 2014年12月26日 18:41
  • 3271

软件开发的功能性需求和非功能性需求

作者:天光 链接:https://www.zhihu.com/question/20303645/answer/15588211 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 功...
  • buyueliuying
  • buyueliuying
  • 2016年12月11日 11:02
  • 12690

归并排序 递归版和非递归版的实现(java)

基于最近笔试遇到听多次 归并排序,今天做了如下总结(有递归版和非递归版的) 实现思路:将待排序的序列分为若干个,每次两两合并,然后再把有序子序列合并为整体有序序列。 递归排序合并的思路 1)初始化...
  • gdutxiaoxu
  • gdutxiaoxu
  • 2016年05月01日 22:57
  • 1587
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:丢失非系统非当前活动回滚段表空间中的一个数据文件
举报原因:
原因补充:

(最多只允许输入30个字)