在oracle中,可以利用“alter tablespace 表空間名 read only”語句設置表空間為只讀;alter tablespace語句用于修改表空間的數據,表空間處于只讀狀態時文件中的數據就不會發生變化,可以提高系統的效率。
本教程操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。
oracle怎么設置表空間只讀
alter?tablespace?表空間名?read?only;
一個表空間處于只讀狀態時,只能進行讀操作,因此數據文件中的數據也就不會發生變化,因此也就不進行重做日志的保護,不會產生重做操作。所以處于此狀態下可以提高系統的效率。
剛剛改為只讀狀態時,表空間還處于中間狀態,當所有的事務完成后才被置為只讀狀態。將一個表空間修改為只讀狀態時,系統會產生檢查點。當然可以刪除只讀表空間的對象,比如說表,索引等。因為刪除對象的命令為DDL語句,它只修改數據字典而不是數據文件。
示例如下:
1.查看dba_tablespaces結構
SQL>?desc?dba_tablespaces; ?名稱??????????????????????????????????????是否為空??類型 ?-----------------------------------------?--------?---------------------------- ?TABLESPACE_NAME???????????????????NOT?NULL?VARCHAR2(30) ?BLOCK_SIZE????????????????????????????????NOT?NULL?NUMBER ?INITIAL_EXTENT?????????????????????????????????????NUMBER ?NEXT_EXTENT????????????????????????????????????????NUMBER ?MIN_EXTENTS???????????????????????????????NOT?NULL?NUMBER ?MAX_EXTENTS????????????????????????????????????????NUMBER ?PCT_INCREASE???????????????????????????????????????NUMBER ?MIN_EXTLEN?????????????????????????????????????????NUMBER ?STATUS??????????????????????????????????????????VARCHAR2(9) ?CONTENTS????????????????????????????????????????VARCHAR2(9) ?LOGGING??????????????????????????????????????????VARCHAR2(9) ?FORCE_LOGGING??????????????????????????????????VARCHAR2(3) ?EXTENT_MANAGEMENT???????????????????????????VARCHAR2(10) ?ALLOCATION_TYPE????????????????????????????????VARCHAR2(9) ?PLUGGED_IN??????????????????????????????????????VARCHAR2(3) ?SEGMENT_SPACE_MANAGEMENT???????????????????VARCHAR2(6) ?DEF_TAB_COMPRESSION??????????????????????????VARCHAR2(8) ?RETENTION??????????????????????????????????????VARCHAR2(11) ?BIGFILE??????????????????????????????????????????VARCHAR2(3)
2.查詢XUANXUAN表空間的狀態
SQL>?select??TABLESPACE_NAME,?STATUS,?CONTENTS?from?dba_tablespaces?where?TABLESPACE_NAME?like?'XUANXUAN'; ? TABLESPACE_NAME????????????????STATUS????CONTENTS??????????????????????????????? ------------------------------?---------?---------?????????????????????????????? XUANXUAN???????????????????????ONLINE????PERMANENT
從查詢結果來看是處于聯機狀態。
3.修改XUANXUAN表空間為只讀狀態。
SQL>?alter?tablespace?XUANXUAN?read?only;
表空間已更改。
4.修改完后進行查詢,查看是否已經成功修改。
SQL>?select??TABLESPACE_NAME,?STATUS,?CONTENTS?from?dba_tablespaces?where?TABLESPACE_NAME?like?'XUANXUAN'; ? TABLESPACE_NAME????????????????STATUS????CONTENTS??????????????????????????????? ------------------------------?---------?---------?????????????????????????????? XUANXUAN???????????????????????READ?ONLY?PERMANENT
5.如果想改回可讀可寫狀態,需要執行下面的命令。
SQL>?alter?tablespace?XUANXUAN?read?write;
表空間已更改。
6.修改完后進行查詢,查看是否已經成功修改。
SQL>?select??TABLESPACE_NAME,?STATUS,?CONTENTS?from?dba_tablespaces?where?TABLESPACE_NAME?like?'XUANXUAN'; ? TABLESPACE_NAME????????????????STATUS????CONTENTS??????????????????????????????? ------------------------------?---------?---------?????????????????????????????? XUANXUAN???????????????????????ONLINE????PERMANENT
從結果看表空間XUANXUAN已經處于聯機狀態。
推薦教程:《Oracle視頻教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦