天天看點

隻讀表空間和臨時表空間的恢複

        如果一個表空間是隻讀表空間,那麼在該表空間上隻能進行讀操作而不能做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                                      

資料庫裝載完畢。

資料庫已經打開。

         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。