非当前的还原表空间的恢复

在oracle系统中一些非关键的表空间可以不进行备份,如果表空间崩溃了,就可以通过重建进行恢复,对于非当前的还原表空间可以使用这一方法:

实验如下:

SQL> conn system/yang
已连接。

1。列出数据库中所有的还原表空间
SQL> select tablespace_name ,status,contents
  2  from dba_tablespaces where contents='UNDO';

TABLESPACE_NAME  STATUS    CONTENTS                              
------------------------------ --------- ---------                             
UNDOTBS1                       ONLINE    UNDO                                  

2.列出所有关于还原操作的所有参数,

SQL> SHOW parameter undo

NAME                                 TYPE        VALUE                         
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO                          
undo_retention                       integer     900                           
undo_tablespace                      string      UNDOTBS1                      
SQL> @f:\undo.sql----改代码 在留言里

表空间已创建。

3.再次列出数据库中所有的还原表空间 查看刚才建的undo表空间

SQL> select tablespace_name ,status,contents
  2  from dba_tablespaces where contents='UNDO';

TABLESPACE_NAME                STATUS    CONTENTS                              
------------------------------ --------- ---------                             
UNDOTBS1                       ONLINE    UNDO                                  
YANG_UNDO                      ONLINE    UNDO                                  

SQL> SHOW parameter undo  ---结果显示当前的还原表空间仍未undotbs1

NAME                                 TYPE        VALUE                         
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO                          
undo_retention                       integer     900                           
undo_tablespace                      string      UNDOTBS1     

  4 查询数据库中所有表空间对应的数据文件。               
SQL> set line 120
SQL> col  file_name for a55
SQL> col tablespace_name for a15
SQL> select file_id,file_name,tablespace_name,bytes/1024/1024 MB
  2  from dba_data_files
  3  where tablespace_name like '%UNDO%';

   FILE_ID FILE_NAME                                               TABLESPACE_NAME         MB                          
---------- ------------------------------------------------------- --------------- ----------                          
         3 F:\APP\YANG\ORADATA\ORACL\UNDOTBS01.DBF                 UNDOTBS1                80                          
         6 F:\ORCL\YANG_UNDO.DBF                                   YANG_UNDO               50      

5,。将用户切换到sysdba 用户下,以便接下来进行直接启动。                    

SQL> conn system/yang as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

6 此时,模拟刚才建的yang_undo 表空间损坏,将它删除。之后,重启数据库
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  535662592 bytes                                                                              
Fixed Size                  1334380 bytes                                                                              
Variable Size             130024340 bytes                                                                              
Database Buffers          398458880 bytes                                                                              
Redo Buffers                5844992 bytes                                                                              
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'F:\ORCL\YANG_UNDO.DBF'

错误显示 数据文件 6 出现问题 ,所以,使用如下命令将其脱机并删除。
SQL> alter database datafile 6 offline drop;

数据库已更改。

之后,将数据库由mount状态 直接转换为 open

SQL> alter database open;
 

数据库已更改。

7.查询数据库中所有表空间对应的数据文件。

SQL> select file_id,file_name,tablespace_name,bytes/1024/1024 MB
  2  from dba_data_files
  3  where tablespace_name like '%UNDO%';

   FILE_ID FILE_NAME                                               TABLESPACE_NAME         MB                          
---------- ------------------------------------------------------- --------------- ----------                          
         3 F:\APP\YANG\ORADATA\ORACL\UNDOTBS01.DBF                 UNDOTBS1                80                          
         6 F:\ORCL\YANG_UNDO.DBF                                   YANG_UNDO  

8.查询数据库中的所有还原表空间。SQL> select tablespace_name ,status,contents
  2  from dba_tablespaces where contents='UNDO';

TABLESPACE_NAME STATUS    CONTENTS                                                                                     
--------------- --------- ---------                                                                                    
UNDOTBS1        ONLINE    UNDO                                                                                         
YANG_UNDO       ONLINE    UNDO                                                                                         

由显示可知,出错的表空间还在,因此,使用如下命令,将yang_undo 表空间 删除。                                        

SQL> drop tablespace yang_undo;

表空间已删除。

再次查看,yang_undo 已不在。

SQL> select tablespace_name ,status,contents
  2  from dba_tablespaces where contents='UNDO';

TABLESPACE_NAME STATUS    CONTENTS                                                                                     
--------------- --------- ---------                                                                                    
UNDOTBS1        ONLINE    UNDO                                                                                         

SQL> select file_id,file_name,tablespace_name,bytes/1024/1024 MB
  2  from dba_data_files
  3  where tablespace_name like '%UNDO%';

   FILE_ID FILE_NAME                                               TABLESPACE_NAME         MB                          
---------- ------------------------------------------------------- --------------- ----------                          
         3 F:\APP\YANG\ORADATA\ORACL\UNDOTBS01.DBF                 UNDOTBS1                80                          

9,再次创建yang_undo 表空间。并查询

SQL> @f:\undo.sql

表空间已创建。

SQL> select tablespace_name ,status,contents
  2  from dba_tablespaces where contents='UNDO';

TABLESPACE_NAME STATUS    CONTENTS                                                                                     
--------------- --------- ---------                                                                                    
UNDOTBS1        ONLINE    UNDO                                                                                         
YANG_UNDO       ONLINE    UNDO                                                                                         

SQL> select file_id,file_name,tablespace_name,bytes/1024/1024 MB
  2  from dba_data_files
  3  where tablespace_name like '%UNDO%';

   FILE_ID FILE_NAME                                               TABLESPACE_NAME         MB                          
---------- ------------------------------------------------------- --------------- ----------                          
         3 F:\APP\YANG\ORADATA\ORACL\UNDOTBS01.DBF                 UNDOTBS1                80                          
         6 F:\ORCL\YANG_UNDO.DBF                                   YANG_UNDO               50                          

至此,非当前的还原表空间的恢复成功。。。

时间: 2024-11-08 21:24:52

非当前的还原表空间的恢复的相关文章

Oracle 表空间时点恢复(TSPITR)

表空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式.它整合了RMAN以及DataPump这2个备份恢复工具来实现时点恢复.那它具体的过程和逻辑是怎样的?下文是其具体的描述. 一.什么是表空间时点恢复 Oracle表空间时点恢复有2个需要理解的概念. 恢复粒度   表空间级别,也就是说恢复的粒度是以表空间为单位 时点恢复   时点恢复意味着是一个不完全恢复.也就是说可以把某个或几个表空间恢复到过去的特定时

Oracle中如何设置EXCLUDE后STANDBY数据库只读表空间的恢复

在STANDBY数据库利用RMAN恢复主库上EXCLUDE的只读表空间,碰到了问题. 数据库恢复完成,但是恢复被主库EXCLUDE的只读表空间时,发现无法进行恢复: RMAN> restore tablespace clubstat2_bak; Starting restore at 14-FEB-11 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=1094 devtype=DISK file 22 is excluded from

探索ORACLE之RMAN_07整个业务表空间丢失恢复

探索ORACLE之RMAN_07整个业务表空间丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com   1.     整个业务表空间丢失恢复 注意:以下的所有实验,都是基于上面的全库备份来做的恢复. 2.1 删除wwl表空间的所有数据文件 [root@wwldb ~]# cd /DBData/WWL/ [root@wwldb WWL]# rm -rf wwl* [root@wwldb WWL]#

探索ORACLE之RMAN_07 system表空间丢失恢复

探索ORACLE之RMAN_07 system表空间丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com     1.     SYSTEM表空间数据文件丢失恢复 注意:以下的所有实验,都是基于上面的全库备份来做的恢复. 3.1 删除system表空间的所有数据文件. [oracle@wwldb WWL]$ rm -rf syste* [oracle@wwldb WWL]$ exit   3.2

DB2数据库表空间重定向恢复实例分析

一.发出重定向恢复命令 DB2 RESTORE DB OLDDB FROM "C:\OLDDBbak" TAKEN AT 20150717164847 TO "C:" INTO NEWDB REDIRECT 其中,OLDDB是旧数据库.备份的数据库名称,NEWDB是新数据库名称,不用事先创建也可以,C:\OLDDBbak是备份文件放置的目录,20150717164847是 备份文件的时间戳,具体可看备份文件的名字OLDDB.0.DB2.NODE0000.CATN00

只读表空间和临时表空间的恢复

        如果一个表空间是只读表空间,那么在该表空间上只能进行读操作而不能做DML操作,也就是说在这个表空间上的数据是不会变化的,因此就可以将该表空间的备份从日常的例行备份中取消,而只是在该表空间改为只读表空间之后做一次备份就够了.这不但减少了数据库系统的维护工作量还使系统的负荷减轻.还有操作只读表空间上的数据时不会产生重做操作也不用加锁,这也就提高了系统的效率.      在这里需要指出的是在将一个表空间改为只读表空间之前和之后,最好将数据库的控制文件做备份,因为表空间的状态的变化会写到

Oracle RMAN高级恢复概述(三) 如何恢复表空间时间点

使用表空间时间点恢复(TSPITR)可以将一个或多个非SYSTEM表空间恢复到与数据库其他部分不同的某个时间点上.这点和Flashback 有点类似. 比如用户误删了3张表,我们就可以用TSPITR恢复. 先看TSPITR 的工作流程,如下图所示: (1) 在辅助实例上用target的备份集restore 数据文件 (2) 在辅助库上用target的归档文件recover 数据文件 (3) 在辅助库上导出相关数据 (4) 修改主库的控制文件 (5) 用辅助库上导出文件导入辅助库上. 几个相关相关

【TSPITR】RMAN表空间基于时间点的自动恢复

[RMAN]TSPITR--RMAN表空间基于时间点的自动恢复 1.1  BLOG文档结构图       1.2  前言部分   1.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① TSPITR表空间基于时间点的自动恢复 ② logminer的简单应用   本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力. 1.2.2  实验环境介绍   目标库:11.2.0.3 

Oracle技术:基于时间点的表空间恢复

TSPITR(表空间时间点恢复)用于将一个或多个表空间恢复到过去某个时间点的状态,而其他表空间仍然保持现有状态. TSPITR 相关的概念和术语: (1) TSPITR (Tablespace Point-In-Time Recover).TSPITR 是表空间时间点恢复的英文缩写格式,它表示将一个或多个表空间恢复到过去时间点的状态,而其他 表空间仍然保持现有状态. (2) TSPITR 实现方法.当实现表空间时间点恢复时,既可以使用用户管理的表空间时间点恢复方法,也可以使用RMAN 管理的表空