============================================================
Oracle 10g Admin Workshop学习笔记 之 Oracle启停
资料:《Oracle Database 10g Administration Workshop I & II》
--by 王磊/菜小小~@ 2010/7/21 11:28
数据库不同打开状态下的状态查询
--by 王磊/菜小小~@ 2010/3/19 09:00
============================================================
nomount 状态下,跟参数相关的视图可供查询;
mount 状态下,跟数据库相关的视图可供查询;
open状态下,所有视图均可查询;
数据库状态 | V$INSTANCE | V$DATABASE |
SHUTDOWN | ORA-01034 | ORA-01034 |
NOMOUNT | STARTED | ORA-01507 |
MOUNT | MOUNTED | MOUNTED |
OPEN | OPEN | READ WRITE |
READ ONLY | OPEN | READ ONLY |
RESTRICT | OPEM | READ WRITE |
ORACLE实例启动STARTUP [FORCE] [RESTRICT] [MOUNT | OPEN | NOMOUNT]
启动 Oracle 数据库实例:NOMOUNT阶段
nomount 涉及以下任务:
• 按以下顺序搜索 /dbs 中具有特定名称的文件:
- spfile.ora --> 如果未找到,则搜索 spfile.ora --> 如果未找到,则搜索 init.ora
这是包含实例初始化参数的文件。使用 STARTUP指定 PFILE 参数可覆盖此默认行为
• 分配SGA
• 启动后台进程
• 打开alert.log 文件和跟踪文件
启动 Oracle 数据库实例:MOUNT阶段
装载数据库涉及以下任务:
• 将数据库与以前启动的实例关联
• 定位并打开参数文件中指定的控制文件
• 通过读取控制文件来获取数据文件和联机重做日志文件的名称和状态。
需要在MOUNT状态下进行的操作:
• 重命名数据文件(打开数据库时可重命名脱机表空间的数据文件。)
• 启用和禁用联机重做日志文件归档选项
• 执行完整的数据库恢复
启动 Oracle 数据库实例:OPEN阶段
打开数据库涉及以下任务:
• 打开联机数据文件
• 打开联机重做日志文件
Oracle 服务器会验证是否可以打开所有数据文件和联机重做日志文件,还会检查数据库的一致性。如有必要,系统监视器 (SMON) 后台进程将启动实例恢复。
ORACLE实例关闭SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]
关闭Oracle 数据库实例:SHUTDOWN NORMAL
• 可以建立新连接。
•Oracle 服务器等待所有用户断开连接才完成关闭。
• 数据库和重做缓冲区会写入到磁盘中。
• 后台进程被终止,从内存中删除 SGA。
•Oracle 服务器在关闭实例之前关闭并断开数据库。
关闭Oracle 数据库实例:SHUTDOWN TRANSACTIONAL
• 任何客户机都不能利用这个特定实例启动新事务处理。
• 客户机在结束正在进行的事务处理后断开连接。
• 完成所有事务处理后立即执行关闭。
关闭Oracle 数据库实例:SHUTDOWN IMMEDIATE
•Oracle 数据库正在处理的当前 SQL 语句尚未完成。
•Oracle 服务器不等待当前连接到数据库的用户断开连接。
•Oracle 服务器会回退活动的事务处理,而且会断开所有已连接的用户。
•Oracle 服务器在关闭实例之前关闭并断开数据库。
关闭Oracle 数据库实例:SHUTDOWN ABORT
• 立即终止 Oracle 数据库正在处理的当前 SQL 语句。
• Oracle 服务器不等待当前连接到数据库的用户断开连接。
• 数据库和重做缓冲区不写入到磁盘。
• 不回退未提交的事务处理。
• 实例已终止,但未关闭文件。
• 数据库未关闭,也未卸载。
• 下一次启动时需要进行实例恢复,实例恢复是自动进行的。
ORACLE实例状态查询
NOMOUNT状态下
SQL> STARTUP NOMOUNT
ORACLE 例程已经启动。
TOTAL SYSTEM GLOBAL AREA 402653184 BYTES
FIXED SIZE 1249224 BYTES
VARIABLE SIZE 104857656 BYTES
DATABASE BUFFERS 289406976 BYTES
REDO BUFFERS 7139328 BYTES
SQL> SELECT STATUS FROM V$INSTANCE;
STATUS
------------------------
STARTED
SQL> SELECT NAME ,OPEN_MODE FROM V$DATABASE;
select name ,open_mode from v$database
*
第 1 行出现错误:
ORA-01507: ??????
如果出01507错说明在nomount状态下。
ORA-01507: database not mounted
Cause: A command was attempted that requires the database to be mounted.
Action: If you are using the ALTER DATABASE statement via the SQLDBA startup command, specify the MOUNT option to startup; else if you are directly doing an ALTER DATABASE DISMOUNT, do nothing; else specify the MOUNT option to ALTER DATABASE. If you are doing a backup or copy, you must first mount the desired database. If you are doing a FLASHBACK DATABASE, you must first mount the desired database.
MOUNT 状态下
SQL> alter database mount;
数据库已更改。
SQL> SELECT STATUS FROM V$INSTANCE;
STATUS
------------
MOUNTED
SQL> SELECT OPEN_MODE FROM V$DATABASE;
OPEN_MODE
----------
MOUNTED
OPEN状态下
SQL> ALTER DATABASE OPEN;
数据库已更改。
SQL> SELECT NAME,OPEN_MODE FROM V$DATABASE;
NAME OPEN_MODE
--------- ----------
MOON READ WRITE
SQL> SELECT INSTANCE_NAME,STATUS FROM V$INSTANCE;
INSTANCE_NAME STATUS
---------------- ------------
MOON OPEN
READ ONLY状态下
SQL> STARTUP MOUNT
ORACLE 例程已经启动。
TOTAL SYSTEM GLOBAL AREA 419430400 BYTES
FIXED SIZE 1249368 BYTES
VARIABLE SIZE 130027432 BYTES
DATABASE BUFFERS 281018368 BYTES
REDO BUFFERS 7135232 BYTES
数据库装载完毕。
SQL> ALTER DATABASE OPEN READ ONLY;
数据库已更改。
SQL> SELECT OPEN_MODE FROM V$DATABASE;
OPEN_MODE
----------
READ ONLY
SQL> SELECT STATUS FROM V$INSTANCE;
STATUS
------------
OPEN
SQL> CREATE TABLE TEST2(ID NUMBER);
CREATE TABLE TEST2(ID NUMBER)
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-16000: 打开数据库以进行只读访问
RESTRICT状态下
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> STARTUP RESTRICT
ORACLE 例程已经启动。
TOTAL SYSTEM GLOBAL AREA 419430400 BYTES
FIXED SIZE 1249368 BYTES
VARIABLE SIZE 134221736 BYTES
DATABASE BUFFERS 276824064 BYTES
REDO BUFFERS 7135232 BYTES
数据库装载完毕。
数据库已经打开。
SQL> CONN WANG/ORACLE@MOON
ERROR:
ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用
SQL> CONN SYSTEM/ORACLE@MOON
已连接。
SQL> GRANT RESTRICTED SESSION TO WANG;
授权成功。
SQL> CONN WANG/ORACLE@MOON
已连接。
SQL> ALTER SYSTEM DISABLE RESTRICTED SESSION;
系统已更改。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21162451/viewspace-669584/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21162451/viewspace-669584/