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

简介:         如果一个表空间是只读表空间,那么在该表空间上只能进行读操作而不能做DML操作,也就是说在这个表空间上的数据是不会变化的,因此就可以将该表空间的备份从日常的例行备份中取消,而只是在该表空间改为只读表空间之后做一次备份就够了。

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

        与非当前的还原表空间相似,临时表空间也可以不做备份。如果属于某个临时表空间的文件损坏或丢失,该临时表空间将不能使用。此时,如果有SQL语句使用这一临时表空间(如大规模排序),Oracle数据库系统就会报错。丢失临时文件并不影响Oracle数据库的启动,Oracle数据库可以在丢失临时文件的情况下正常打开。在这种情况下,Oracle数据库系统会自动地创建丢失的临时文件,同时Oracle会将相关的信息写入报警文件(alert log)。
下面还是通过例子来演示这种恢复的方法。首先必须应SYS用户登录Oracle数据库系统,因为在后面的操作中要关闭数据库。SQL> conn system/yang as sysdba
已连接。
SQL> select file#,ts#,name
  2  from v$tempfile;

     FILE#        TS#     NAME                                                      
---------- ----------     ------------------------------------------
         1          3     F:\APP\YANG\ORADATA\ORACL\TEMP01.DBF                                                                            
                                                                              
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

     接下来,利用操作系统工具,在操作系统上删除临时表空间TEMP所对应的临时文件(操作系统文件)F:\APP\YANG\ORADATA\ORACL\TEMP01.DBF   。随后,立即启动Oracle数据库系统。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  535662592 bytes                                      
Fixed Size                  1334380 bytes                                      
Variable Size             146801556 bytes                                      
Database Buffers          381681664 bytes                                      
Redo Buffers                5844992 bytes                                      
数据库装载完毕。
数据库已经打开。



SQL> select file#,ts#,name
  2  from v$tempfile;


     FILE#        TS#     NAME                                                      
---------- ----------     ------------------------------------------
         1          3         F:\APP\YANG\ORADATA\ORACL\TEMP01.DBF      

显示输出的结果可以看出:临时表空间TEM和与之所对应的临时文件F:\APP\YANG\ORADATA\ORACL\TEMP01.DBF    现在都健在。列出所有表空间以及与之对应的状态信息                                                                                                                  

SQL> select tablespace_name,status,contents
  2  from dba_tablespaces;

TABLESPACE_NAME                STATUS    CONTENTS                              
------------------------------ --------- ---------                             
SYSTEM                         ONLINE    PERMANENT                             
SYSAUX                         ONLINE    PERMANENT                             
UNDOTBS1                       ONLINE    UNDO                                  
TEMP                           ONLINE    TEMPORARY                             
USERS                          ONLINE    PERMANENT                             
EXAMPLE                        ONLINE    PERMANENT                             

已选择6行。

到此为止,可以确信我们已经成功的恢复了临时表空间TEMP。

目录
相关文章
|
6月前
|
Oracle 关系型数据库 数据库
9-4 Oracle管理表空间和数据文件
9-4 Oracle管理表空间和数据文件
|
Oracle 关系型数据库
Oracle管理表空间和数据文件
Oracle管理表空间和数据文件
169 0
|
Oracle 关系型数据库 数据库
|
数据库 数据库管理 SQL
|
Oracle 关系型数据库
|
关系型数据库 测试技术 Oracle
表空间及物理文件 删除
背景: 同事不小心创建了一个ts_xx_temp物理文件,导致其他同事经常问我这个是否可以作为临时表空间,为了不引起歧义,删除表空间及物理文件 过程 在测试环境中 创...
1251 0
|
数据库 数据库管理
[20150408]只读表空间以及数据库恢复4.txt
[20150408]只读表空间以及数据库恢复4.txt 参考链接: http://blog.itpub.net/267265/viewspace-1544583/ http://blog.
862 0