oracle怎么設置表空間只讀

oracle中,可以利用“alter tablespace 表空間名 read only”語句設置表空間為只讀;alter tablespace語句用于修改表空間的數據,表空間處于只讀狀態時文件中的數據就不會發生變化,可以提高系統的效率。

oracle怎么設置表空間只讀

本教程操作環境: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
喜歡就支持一下吧
點贊8 分享