本教程操作环境: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怎么设置表空间只读的详细内容。
