改变数据库可用性

您可以更改数据库的可用性。您可能想要这样做是为了限制访问,出于维护原因或使数据库只读。以下各节介绍如何更改数据库的可用性:

  • 将数据库挂载到实例
  • 打开已关闭的数据库
  • 以只读模式打开数据库
  • 限制对打开的数据库的访问

将数据库挂载到实例


当您执行特定的管理操作时,数据库必须启动并装载到一个实例,但是关闭。您可以通过启动实例并装载数据库来实现此方案.

要将数据库安装到以前启动的但未打开的实例,请使用SQL语句ALTER DATABASE和MOUNT子句,如下所示:

ALTER DATABASE MOUNT;

 

打开已关闭的数据库


通过打开数据库,您可以使已安装但已关闭的数据库可用于一般用途。要打开挂载的数据库,请使用带有OPEN子句的ALTER DATABASE SQL语句:

ALTER DATABASE OPEN;

执行此语句后,任何具有CREATE SESSION系统特权的有效Oracle数据库用户都可以连接到数据库。

 

以只读模式打开数据库


以只读模式打开数据库使您可以查询打开的数据库,同时消除在线数据内容更改的任何可能性。以只读模式打开数据库可以确保数据文件和重做日志文件不会写入,但它不会限制数据库恢复或操作,这些数据库恢复或操作会在不生成重做的情况下更改数据库的状态。例如,您可以将数据文件脱机或使其联机,因为这些操作不会影响数据内容。

如果对处于只读模式的数据库的查询使用临时表空间(例如执行磁盘排序),则查询的发布者必须将本地管理的表空间指定为默认临时表空间。否则,查询将失败。这在“创建本地管理的临时表空间”中进行了说明。

以下语句以只读模式打开数据库:

ALTER DATABASE OPEN READ ONLY;

您还可以按照以下方式以读/写模式打开数据库:

ALTER DATABASE OPEN READ WRITE;

 

读/写是默认模式

不能将RESETLOGS子句与READ ONLY子句一起使用

只读数据库的限制

  • 应用程序不得在针对只读数据库执行时编写数据库对象
    例如,应用程序在插入,删除,更新或合并数据库表中的行(包括全局临时表)时写入数据库对象。应用程序在处理数据库序列时编写数据库对象。应用程序在锁定行,运行EXPLAIN PLAN或执行DDL时写入数据库对象。 Oracle提供的PL / SQL包(如DBMS_SCHEDULER)中的许多函数和过程都编写数据库对象。如果您的应用程序调用了这些函数和过程中的任何一个,或者它执行了上述任何操作,那么您的应用程序将写入数据库对象,因此它不是只读的。
  • 在只读数据库上执行时,必须在使用另一个数据库链接之前提交或回滚涉及一个数据库链接的任何正在进行的事务。即使您在第一个数据库链接上执行通用SELECT语句并且事务当前是只读的,也是如此。
  • 您无法在只读数据库上编译或重新编译PL / SQL存储过程。要最大限度地减少由于远程过程调用导致的PL / SQL失效,请在任何会话中执行REMOTE_DEPENDENCIES_MODE = SIGNATURE,以便在只读数据库上执行远程过程调用。
  • 如果从未在数据库上调用远程过程,则无法从只读数据库调用远程过程(即使是只读远程过程)。此限制适用于匿名PL / SQL块和SQL语句中的远程过程调用。您可以将远程过程调用放入存储过程中,也可以在数据库变为只读之前调用远程过程。

限制对打开的数据库的访问


 

要以受限模式放置已运行的实例,请使用具有ENABLE RESTRICTED SESSION子句的SQL语句ALTER SYSTEM。此声明成功完成后,只有具有RESTRICTED SESSION权限的用户才能启动新的连接。作为SYSDBA连接或与DBA角色连接的用户具有此特权。

使用如下语句对用户赋予restricted session权限:

grant restricted session to test1

 

对打开的数据启动受限模式

alter system enable restrict session;

 

 

将运行实例置于受限模式时,不会终止用户会话或以其他方式影响用户会话。因此,在将实例置于受限模式后,请考虑在执行管理任务之前查杀(终止)所有当前用户会话。

要从限制模式提升实例,请使用ALTER SYSTEM和DISABLE RESTRICTED SESSION子句。

 

参考资料


https://docs.oracle.com/cd/E11882_01/server.112/e25494/start.htm#ADMIN11151

 

 

 

 

 

 

转载于:https://www.cnblogs.com/ZeroTiny/p/9008110.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值