方法:1、利用“ALTER DATABASE MOUNT;”语句将数据库设置为Mount模式;2、利用“alter database open read only;”语句将数据库设置为只读即可。当数据库被设置为只读状态时,用户只能查询数据。
本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。
1.从NoMount模式切换到Mount模式(没有从mount切换到nomount的):
命令:
ALTER DATABASE MOUNT;
mount:在nomount阶段,可以通过读取控制文件来转换到mount阶段。在数据库加载阶段(mount),所有的数据文件和联机日志文件的名称和位置都从控制文件中读取,但是并没有真正查找这些文件。
在此阶段,可以执行的操作有:数据库日志归档、数据库介质恢复、使数据文件联机或脱机、重定位数据文件和联机日志文件。
startup命令等同于:
2、只读状态
设置只读命令:
alter database open read only;
当一个正常打开的数据库被设置为只读状态时,用户只能查询数据,但不能以任何方式对数据库对象进行修改。处于只读状态,可能保证数据文件和重做日志文件中的内容不被修改,但是并不限制那些不会写入数据文件与重做日志文件的操作。
补充:数据库OPEN之后肯定不好改为READ ONLY了,一定要在MOUNT下改才行
扩展知识:
在Oracle各启动模式间切换及受限状态、只读状态详解
使用Alter Database语句,在各启动模式间切换。
1.从NoMount模式切换到Mount模式(没有从mount切换到nomount的):
命令:ALTER DATABASE MOUNT;
2.当数据库状态为关闭时,切换到Open模式
命令:ALTER DATABASE OPEN;
3.在Open模式下,还可以选择将数据库设置为非受限状态和受限状态。
命令:
在启动Open模式时,添加restrict关键字:startup restrict
设置或取消受限状态:alter system enable\disable restricted session;
讲解:
非受限状态,就是我们平时应用程序开发用到的状态。
受限状态,当打开的数据库被设置为受限状态时,只有Create Session 和 Restricted Session系统权限 或者 具有SYSDBA 和 SYSPORE 系统权限的用户才能连接到数据库。但进入受限状态后,系统中仍然可能会存在活动的普通用户会话。
受限状态用途:
(1)执行数据导入或导出操作;
(2)暂时拒绝普通用户访问数据库;
(3)进行数据库移植或升级操作。
推荐教程:《Oracle视频教程》
以上是oracle怎么设置数据库只读的详细内容。更多信息请关注PHP中文网其他相关文章!