Oracle只读表空间

来源:互联网 发布:知乎 保研 换导师 编辑:程序博客网 时间:2024/05/22 03:48


作者:雨竹清风

一个表空间处于只读状态时,只能进行读操作,因此数据文件中的数据也就不会发生变化,因此也就不进行重做日志的保护,不会产生重做操作。所以处于此状态下可以提高系统的效率。

刚刚改为只读状态时,表空间还处于中间状态,当所有的事务完成后才被置为只读状态。将一个表空间修改为只读状态时,系统会产生检查点。当然可以删除只读表空间的对象,比如说表,索引等。因为删除对象的命令为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已经处于联机状态。

0 0
原创粉丝点击