首頁 >資料庫 >Oracle >oracle怎麼設定表空間只讀

oracle怎麼設定表空間只讀

WBOY
WBOY原創
2022-05-13 15:44:513796瀏覽

在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影片教學

以上是oracle怎麼設定表空間只讀的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn