启动和关闭——管理员手册
===========================================================
作者: yangtingkun(http://yangtingkun.itpub.net)
发表于: 2004.12.27 18:49
分类: 读书笔记
出处: http://yangtingkun.itpub.net/post/468/11973
---------------------------------------------------------------
启动数据库时可以启动到不同的状态:
START NOMOUNT:根据初始化参数建立SGA。
START MOUNT:根据初始化参数建立SGA。读取控制文件信息,加载数据库。
START:等价于STARTUP OPEN根据初始化参数建立SGA。读取控制文件信息。打开所有数据文件,加载数据库,数据库可以进行访问。
START RESTRICT:打开数据库,但是只有具有RESTRICTED SESSION系统权限的用户可以登陆。
STARTUP FORCE:等价于SHUTDOWN ABORT + STARTUP。
STARTUP OPEN READ ONLY:以只读方式打开数据库。
关闭数据库的不同方法:
SHUTDOWN:等价于SHUTDOWN NORMAL不允许新的会话登陆,等所有的连接都退出后关闭数据库。
SHUTDOWN TRANSACTIONAL:不允许新的会话登陆,当所有当前事务结束时,断开所有连接用户。
SHUTDOWN IMMEDIATE:不允许新的会话登陆,所有没有提交的事务全部回滚,断开所有连接用户。
SHUTDOWN ABORT:不允许新的会话登陆,当前运行的SQL语句立即中止,没有提交的事务不进行回滚,断开所有连接用户。下次重起时,Oracle自动进行实例恢复(instance recovery)。
数据库的不同状态:
QUIESCED状态:当sys或system用户发出ALTER SYSTEM QUIESCE RESTRICTED语句,所有的非DBA用户在当前会话状态变为inactive时,进入到停顿状态。当执行ALTER SYSTEM UNQUIESCE,其他用户的会话恢复。
注意:只有SYS和SYSTEM用户有ALTER SYSTEM QUIESCE RESTRICTED的权限。其实是由于DBA角色的其他用户也没有这个权限。
执行这个操作的前提是:自从本次数据库启动以来,必须一直设置着资源限制。
SUSPEND状态:发出ALTER SYSTEM SUSPEND语句后,任何I/O操作都被停止,直到发出ALTER SYSTEM RESUME语句。
对数据库状态的查询:
SQL> select database_status from v$instance;
DATABASE_STATUS
-----------------
SUSPENDED
1 STARTUP NOMOUNT; 启动一个实例,装配数据库但不打开
--该模式下允许你执行特定的维护操作,包括
--重命名数据库、增删或重命名日志文件、启用和停用重做归档日志文件选项、
--执行完整的数据库恢复
2 STARTUP MOUNT;在启动时限制一个数据库的存取
--该模式使管理员可用数据库,但一般操作员不可用,应用于
--执行导入导出、执行SQL*loader的数据装载、临时阻止典型用户使用数据
--升迁或升级
3 STARTUP RESTRICT;
--在正常模式下,有CREATE SESSION系统特权的用户可以连接到数据库
--限制模式下,同时具有CREATE SESSION和RESTRICTED SESSION两个系统特权的用户
--才可以存取数据
--关闭限制模式
ALTER SYSTEM DISABLE RESTRICTED SESSION;
--将正在运行的正常模式改变为限制模式
ALTER SYSTEM ENABLE RESTRICTED SESSION;
4 强制一个实例启动(用于启动时出现问题情况,少用!)
STARTUP FORCE;
5 启动实例,装配数据库和启动完全的介质恢复
STARTUP OPEN RECOVER;
6、改变数据库可用性
1>、装配数据库
ALTER DATABASE MOUNT;
2>、打开数据库
ALTER DATABASE OPEN;
3>、以只读或只写或读写方式打开数据库
ALTER DATABASE OPEN READ ONLY;
ALTER DATABASE WRITE READ ONLY;
ALTER DATABASE OPEN READ WRITE;
quiesce 停顿数据库
--该状态下只允许DBA会话,不允许新的非DBA连接建立
ALTER SYSTEM QUIESCE RESTRICTED;
--取消停顿
ALTER SYSTEM UNQUIESCE;
--查看实例的停顿状态
--列ACTIVE_STATE说明:NORMAL未停顿QUIESCING正在停顿,但仍有非DBA会话
--QUIESCED已停顿
select ACTIVE_STATE from V$INSTANCE;
suspend 挂起数据库
--暂停对数据文件和控制文件的所有IO,可以在无IO干扰情况先进行备份
--挂起命令可以挂起数据库而并不指定一个实例
ALTER SYSTEM SUSPEND;
--恢复到非挂起状态
ALTER SYSTEM RESUME;
--查看挂起状态
SELECT DATABASE_STATUS FROM V$INSTANCE;