oracle表空间读写,Oracle 改变表空间读写状态

Oracle 改变表空间读写状态

表空间可以是读写方式,也可以是只读方式。默认情况下,所有的表空间都是读写方式,任何具有配额并且具有适当权限的用户都可以写入表空间。但是如果将表空间设置为只读方式,则任何用户都无法向表空间写入数据,也无法修改表空间中已有的数据,这种限制与权限无关。

将表空间设置为只读方式的主要目的,是为了避免对数据库中的静态数据进行更改。用户只能查询只读表空间中的数据,而不能进行修改。

1.设置表空间为只读状态

所有的表空间在创建后都是处于读写状态。通过在ALTER TABLESPACE语句中使用READ ONL Y子句,可以将表空间设置为只读状态。在成功地将表空间设置为只读状态时,表空间必须处于联机状态,另外,SYSEM表空间也不能设置为只读表空间。

例如,下面的语句将把表空间USER01设置为只读状态:

SQL> alter tablespace user01 read only;

表空间已更改。

SQL> insert into employees

2 values(100,'SWITH',1200);

insert into employees

*

第 1 行出现错误:

ORA-00372: 此时无法修改文件10

ORA-01110: 数据文件10: 'D:\ORACLEDATA\USER01'

上述语句执行后,不必等待表空间中活动事务结束即可立即生效,USER01表空间将进入“事务只读状态”。以后任何用户都不能再创建针对该表空间的读写事务,而当前正在活动的事务则可以继续向表空间中写入数据,直到它们结束为止。当针对该表空间的所有事务都结束之后,表空间才进入只读状态。

2.设置表空间为读写状态

将表空间恢复为读写状态时,只需要在ALTER TABLESPACE语句中使用READ WRITE 子句。将表空间恢复为读写状态时,必须保证表空间的所有数据文件都处于联机状态,同时表空间本身也必须处于联机状态。

例如,下面的语句可以将表空间USER01恢复为读写状态:

SQL> alter tablespace user01 read write;

表空间已更改。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值