设为首页 加入收藏

TOP

Oracle 10g实现只读表的N种方法(二)
2015-08-31 19:59:48 来源: 作者: 【 】 浏览:65
Tags:Oracle 10g 实现 只读 方法
? ? 1 linuxidc?
? ? ? ? 10 linuxidc?
?


ORA-00372& ORA-01110报错
? ? 此时,如果我们对linuxidc表进行DML操作,系统就会报ORA-00372& ORA-01110错误,提示无法修改数据文件。
?


SQL>


SQL> insert into linuxidc values(100,'linuxidc');
insert into linuxidc values(100,'linuxidc')
? ? ? ? ? ? *
第 1 行出现错误:
ORA-00372: 此时无法修改文件 4
ORA-01110: 数据文件 4: 'E:\ATSTEST\USERS01.DBF'?
?
SQL>


DROP操作不受影响
? ? 需要注意的是,只读表空间下是可以执行DROP操作的。


我们知道,每个数据库在运行的时候,都至少会有一个ONLINE表空间,那就是SYSTEM表空间,其中保存了数据字典以及PLSQL中的存储过程、触发器、函数、包等等数据库对象。当进行DDL进行数据库的删除操作的时候,本质是是操作的SYSTEM表空间,ORACLE会在SYSTEM存储的数据字典中,将删除的表设置为DROP状态,等该表空间的状态变成READ WRITE状态的时候,才会真正的从数据库里面删除该表。


方法五: 只读数据库
? ? 当一个正常打开的数据库被设置为只读状态时,用户只能查询数据,但不能以任何方式对数据库对象进行修改。处于只读状态,可能保证数据文件和重做日志文件中的内容不被修改,但是并不限制那些不会写入数据文件与重做日志文件的操作。


SQL>


SQL> conn sys/linuxidc as sysdba
已连接。
SQL> alter tablespace users read write;
?
表空间已更改。
?
SQL>
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL> startup mount
ORACLE 例程已经启动。
?
Total System Global Area 1258291200 bytes
Fixed Size 2163712 bytes
Variable Size 360446976 bytes
Database Buffers 889192448 bytes
Redo Buffers 6488064 bytes
数据库装载完毕。
SQL>
SQL> alter database open read only;
?
数据库已更改。
?
SQL>
SQL> conn linuxidc/hoegh
已连接。
SQL>
SQL> select * from linuxidc;
?
? ? ? ? ID NAME
---------- --------------------
? ? ? ? 1 linuxidc?
? ? ? ? 10 linuxidc?
?


ORA-01552报错
? 此时,如果我们对linuxidc表进行DML操作,系统就会报ORA-01552错误,提示非系统表空间 'USERS' 不能使用系统回退段。
?


SQL>


SQL> insert into linuxidc values(100,'linuxidc');
insert into linuxidc values(100,'linuxidc')
? ? ? ? ? ? *
第 1 行出现错误:
ORA-01552: 非系统表空间 'USERS' 不能使用系统回退段
?
?
SQL>
?


当然,这只是一个实现手段,我们肯定不会为了设置一个只读表而将整个数据库设置为只读状态。


总结
? ? 上面这几种办法都可以实现将一个表设置为只读表,大家可以根据各自的具体需求选用最合适的方法。比如,最近我们一个项目为了提高数据的安全性,需要将配置数据(多张表)设置为只读表;并且,当初为了管理方便,所有的配置???据存放到一个单独的表空间,这样,我就会选用只读表空间的方法来实现这个具体需求。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇利用MySQL-Proxy进行MySQL数据库.. 下一篇Oracle 11g新特性之只读表

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)
·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)