开发者社区> yangyi_dba> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 在oracle系统中一些非关键的表空间可以不进行备份,如果表空间崩溃了,就可以通过重建进行恢复,对于非当前的还原表空间可以使用这一方法: 实验如下: SQL> conn system/yang已连接。
+关注继续查看

在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                          

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
计算机网络实验(思科模拟器Cisco Packet Tracer)——无线路由和防火墙配置
计算机网络实验(思科模拟器Cisco Packet Tracer)——无线路由和防火墙配置
223 0
【刷算法】翻转单链表的递归和非递归方法
【刷算法】翻转单链表的递归和非递归方法
13 0
降低数据分析门槛,Quick BI成为大东鞋业8000家门店的数据导航
在新零售的大背景趋势之下,消费者需求呈现极度多元和易变,一部偶像剧的热播也许就能带火各种流行爆款。
239 0
常用编辑器之列/块选择方法及快捷方式大集中
常用编辑器之列/块选择方法及快捷方式大集中 开源免费的Notepad++:http://notepad-plus.sourceforge.net/ 按住 Alt 键,然后用鼠标进行选择 或者 按住 Alt + Shift 键,然后用箭头(键盘的上下左右箭头)进行选择 商业收费的:UltraEdit:http://www.ultraedit.com/
1059 0
+关注
yangyi_dba
数据库相关技术专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
数据库异地备份及不还原快速查询备份集最佳实践
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载