首页  >  文章  >  数据库  >  oracle怎么设置表空间只读

oracle怎么设置表空间只读

WBOY
WBOY原创
2022-05-13 15:44:513720浏览

在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