oracle联机和脱机什么意思,Oracle 表空间联机(online)与脱机(offline)
數(shù)據(jù)庫管理員可以在數(shù)據(jù)庫處于開啟(open)狀態(tài)時令除 SYSTEM 表空間(tablespace)之外的任何表空間聯(lián)機(online)(可訪問)或脫機(offline)(不可訪問)。SYSTEM 表空間在數(shù)據(jù)庫處于開啟(open)狀態(tài)時總是處于聯(lián)機狀態(tài),因為Oracle需要使用其中的數(shù)據(jù)字典(data?dictionary)。
表空間(tablespace)通常處于聯(lián)機(online)狀態(tài),以便數(shù)據(jù)庫用戶訪問其中的數(shù)據(jù)。但是數(shù)據(jù)庫管理員可以在對表空間進行維護,備份或恢復操作時,令表空間脫機(offline)。
令表空間脫機
當一個表空間(tablespace)脫機(offline)后,Oracle不允許任何SQL語句繼續(xù)引用此表空間內的對象(schema object)。如果一個活動事務(activetransaction)中的 SQL 語句正好在使用被置為脫機狀態(tài)的表空間內的對象,其事務性也不會被破壞。Oracle使用 SYSTEM 表空間內的延遲回滾段(deferred rollback segment)為此事務中已完成的 SQL 語句保存回滾信息(rollback data)。當脫機表空間被重新置位聯(lián)機(online)狀態(tài)后,Oracle會在需要時應用這些回滾信息。
表空間(tablespace)聯(lián)機(online)或脫機(offline)時,SYSTEM 表空間內的數(shù)據(jù)字典(data dictionary)會進行記錄。如果用戶關閉(shut down)一個數(shù)據(jù)庫時某個表空間處于脫機狀態(tài),那么這個表空間在數(shù)據(jù)庫下次被裝載(mount)、打開(open)后依舊保持脫機狀態(tài)。
用戶只能將一個表空間(tablespace)聯(lián)機(online)到創(chuàng)建她的數(shù)據(jù)庫中,因為只有這個數(shù)據(jù)庫的 SYSTEM 表空間中才保存著與此表空間相關的必要的數(shù)據(jù)字典(data dictionary)信息。一個脫機(offline)的表空間不能被Oracle之外的工具打開或編輯。因此脫機表空間不能被移動到其他數(shù)據(jù)庫中。
當某些錯誤發(fā)生時,Oracle會自動地將相關的聯(lián)機表空間(online tablespace)切換到脫機(offline)狀態(tài)。例如,當數(shù)據(jù)庫寫入進程(database writerprocess,DBWn)多次嘗試向表空間的數(shù)據(jù)文件(datafile)寫入失敗后,Oracle就會將此表空間切換到脫機狀態(tài)。此時嘗試訪問脫機表空間內數(shù)據(jù)表的用戶將會得到錯誤信息。如果是介質故障(media failure)導致此次磁盤 I/O 失敗,用戶必須在處理故障后恢復(recover)受影響的表空間。
特殊情況下的表空間使用
用戶可以將不同類型的數(shù)據(jù)分開存儲在不同的表空間(tablespace)中。當用戶因為某些任務而令某個表空間脫機(offline)后,其余表空間仍保持聯(lián)機(online)狀態(tài),其中的數(shù)據(jù)對用戶依然可用。但是表空間脫機后也會導致特殊情況發(fā)生。例如,有兩個表空間分別用于存儲表及此表對應的索引,將出現(xiàn)以下問題:● 如果包含索引的表空間脫機,那么查詢依舊可以訪問表數(shù)據(jù),因為對表數(shù)據(jù)的訪問并不一定需要索引數(shù)據(jù)。
● 如果包含表的表空間脫機,那么查詢將無法訪問表數(shù)據(jù),因為脫機表空間內的對象無法被引用。
如果Oracle能夠從聯(lián)機(online)表空間(tablespace)中獲得執(zhí)行一個SQL語句的足夠的信息,那么語句就將被執(zhí)行。如果相關信息必須從脫機(offline)的表空間中獲得,那么語句將失敗。
只讀表空間
使用只讀表空間(read-only tablespace)的主要目的是為了避免對靜態(tài)、且容量大的數(shù)據(jù)庫內容進行備份和恢復操作。Oracle不會更新只讀表空間內的數(shù)據(jù),因此這類表空間的數(shù)據(jù)文件(datafile)可以放置在 CD-ROM 或 WORM之類的只讀介質(read-only media)上。
提示:用戶只能將一個表空間(tablespace)聯(lián)機(online)到創(chuàng)建她的數(shù)據(jù)庫,因此只讀表空間(read-only tablespace)技術不適用于存檔工作(archiving)。
只讀表空間(read-only tablespace)不能被修改。如需更新一個只讀表空間,首先要使表空間可讀寫。在更新后,還可以將表空間恢復到只讀狀態(tài)。
因為只讀表空間(read-only tablespace)不能被修改,只要沒有將只讀表空間置于可讀寫狀態(tài),就無需對其進行重復的備份操作。當用戶需要恢復數(shù)據(jù)庫時,也沒必要恢復只讀表空間,原因同前所述。
進行此操作必須具有ALTER TABLESPACE 或 MANAGE TABLESPACE 系統(tǒng)權限,GRANT ALTER TABLESPACE TO "USER";
GRANT MANAGE TABLESPACE TO "USER";(雙引號內必須大寫)
也可以使表空間中所有的數(shù)據(jù)文件或臨時文件脫機,然后還能聯(lián)機,而不影響表空間自己的脫機或聯(lián)機狀態(tài)。
脫機表空間的原因
● 使數(shù)據(jù)庫的一部分失效,同時允許對數(shù)據(jù)庫剩余部分進行正常訪問。
● 進行脫機表空間備份(盡管表空間在聯(lián)機并正使用的情況下也能備份)
● 在升級或維護應用程序時,使應用程序和它的那組表臨時不可用。
脫機表空間選項
NORMAL
如果表空間所有數(shù)據(jù)文件都沒有錯誤,表空間可以正常脫機。寫入錯誤導致表空間所有數(shù)據(jù)文件都不能脫機。當指定OFFLINE NORMAL時,Oracle對所有數(shù)據(jù)文件一邊進行檢查一邊將他們脫機。
TEMPORARY
表空間能臨時脫機,即使表空間的一個或多個數(shù)據(jù)文件有錯誤。當指定OFFLINE TEMPORARY選項時,Oracle將還沒脫機的數(shù)據(jù)文件脫機,同時對他們進行檢查。如果沒有數(shù)據(jù)文件脫機,然后用臨時選項脫機,當聯(lián)機表空間時不需要介質恢復。但是,如果有表空間的文件因寫入錯誤脫機,然后將表空間臨時脫機,在將表空間聯(lián)機之前需要介質恢復。
IMMEDIATE
表空間能立即脫機,不等Oracle對任何數(shù)據(jù)文件做檢查。在指定OFFLINE IMMEDIATE的情況下,當聯(lián)機表空間時需要介質恢復。如果數(shù)據(jù)庫運行在NOARCHIVELOG模式下,表空間不能立即脫機。
FOR RECOVER
將在恢復集中的數(shù)據(jù)庫表空間脫機,以便進行時間點恢復。
注意:
如果必須脫機表空間,盡量用NORMAL選項(默認)。這將保證表空間聯(lián)機時不需要恢復。盡管部分恢復后用ALTER DATABASE OPEN RESETLOGS語句重置了重做日志序列,依然不需要恢復。只有當不能正常脫機表空間的時候才指定TEMPORARY選項。這種情況下,只有因錯誤被脫機的文件在表空間聯(lián)機時才需要恢復。只有當指定NORMAL和TEMPORARY都不行的情況下才用IMMEDIATE選項。
脫機表空間前的考慮:
驗證表空間不含有活動的回滾段,這樣的表空間不能脫機。
你可能想改變表空間的位置,這個表空間的用戶已經(jīng)將它指定為默認的或臨時的表空間。這是明智的,因為當脫機時,他們不能訪問表空間的對象,不能排序表空間區(qū)域(sort areas in the tablespace)。
聯(lián)機表空間
只要數(shù)據(jù)庫打開,Oracle數(shù)據(jù)庫的表空間都能恢復聯(lián)機。如果要聯(lián)機的表空間不是“干凈”脫機(即用NORMAL選項的ALTER TABLESPACE OFFLINE語句),在聯(lián)機之前必須先對表空間進行介質恢復。否則,Oracle返回錯誤并保持表空間脫機。
改變數(shù)據(jù)文件或臨時文件的可用性
ALTER TABLESPACE語句的子句能改變表空間中所有數(shù)據(jù)文件或臨時文件的聯(lián)機或脫機狀態(tài)。影響聯(lián)機/脫機狀態(tài)的特定語句:
ALTER TABLESPACE ... DATAFILE {ONLINE|OFFLINE}
ALTER TABLESPACE ... TEMPFILE {ONLINE|OFFLINE}
你只需要輸入表空間名稱,不是單獨的數(shù)據(jù)文件或臨時文件。所有數(shù)據(jù)文件或臨時文件都受到影響,但表空間自己的聯(lián)機/脫機狀態(tài)不變。大多數(shù)情況下,上面ALTER TABLESPACE語句能執(zhí)行,只要數(shù)據(jù)庫掛載,即使沒有打開。如果是SYSTEM表空間,重做表空間,或默認臨時表空間,數(shù)據(jù)庫一定不能打開。ALTER DATABASE DATAFILE 和 ALTER DATABASE TEMPFILE語句也有ONLINE/OFFLINE子句,但在那些語句里需要輸入所有表空間的文件名。語法與改變表空間可用性的ALTER TABLESPACE … ONLINE|OFFLINE語句不同,因為那是不同的操作。ALTER TABLESPACE語句將數(shù)據(jù)文件和表空間脫機,但不能用于改變臨時表空間或它的臨時文件。
案例:
SELECT?tablespace_name?FROM?dba_tablespaces
ALTER TABLESPACE users OFFLINE NORMAL;
ALTER TABLESPACE users ONLINE;
原文:http://www.cnblogs.com/qianjin253738234/p/3974606.html
總結
以上是生活随笔為你收集整理的oracle联机和脱机什么意思,Oracle 表空间联机(online)与脱机(offline)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php图片上传报502,PHPStrom
- 下一篇: php-fpm 负荷高,记录简单处理服务