在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视频教程》
以上就是oracle怎么设置表空间只读的详细内容,转载自php中文网
发表评论 取消回复