类型:笔记
级别:入门级
环境:windows
1.nomount状态(创建实例):寻找参数文件,分配内存,启动后台进程
SQL> conn sys/sys@zzfdb as sysdba
已连接到空闲例程。
SQL>
SQL> startup nomount
ORACLE例程已经启动。
Total System Global Area135338868 bytes
Fixed Size453492 bytes
Variable Size109051904 bytes
Database Buffers25165824 bytes
Redo Buffers667648 bytes
SQL>
参数文件中非缺省参数会在警报日志文件中记录
查看数据库是否使用了spfile文件
SQL>show parameter spfile
参数文件至少需要db_name参数,设置了这个参数,实例就可以启动
在RMAN中,可以启动一个没有参数文件的实例
RMAN> startup nomount
已连接到目标数据库(未启动)
启动失败: ORA-01078: failure in processing system parameters
LRM-00109: N^7(4r?*2NJ}ND
正在尝试在没有参数文件的情况下启动Oracle例程...
Oracle例程已启动
系统全局区域总计97589952字节
Fixed Size453312字节
Variable Size46137344字节
Database Buffers50331648字节
Redo Buffers667648字节
寻找参数文件的顺序:spfile.ora->spfile.ora->init.ora
如果参数文件不在相应位置,可以指定pfile参数文件的位置
SQL> startup nomount pfile=f:\initzzfdb.ora
ORACLE例程已经启动。
Total System Global Area97589952 bytes
Fixed Size453312 bytes
Variable Size46137344 bytes
Database Buffers50331648 bytes
Redo Buffers667648 bytes
如果要指定非默认的SPFILE文件,需要先建立一个文本文件
SPFILE=G:/ORACLE/test_SPFILE.ORA
再在STARTUP中使用PFILE参数指向这个文本文件
2.mount状态
加载控制文件,数据库计算Mount id,并记录在控制文件中,然后开始启动Heartbeat,每3秒更新一次控制文件
警告日志文件中内容:Successful mount of redo thread 1, with mount id 1131378895.
在mount数据库过程中,数据库将对用户认证。也就是说如果丢失了口令文件,可以nomount数据库,但无法mount数据库。口令文件可以使用orapw工具重建
口令文件存放地:%ORACLE_HOME%/dbs/
口令文件查找顺序:orapw->orapw
3.open状态
检查数据文件头中的检查点计数(checkpoint cnt)和控制文件中检查点计数(checkpoint cnt)是否一致
检查数据文件头的开始SCN和控制文件中记录的该文件的结束SCN是否一致。
上述两个检查通过后,打开数据库,锁定数据文件,将每个数据文件的结束SCN设置为无穷大。
总结:Oracle数据库启动会经历上述三个状态,DBA可以选择竟如进入哪个状态,nomount状态和mount状态用来对数据库进行维护,open状态就是日常使用中的状态了。
4.其它状态
受限状态
打开:ALTER SYSTEM ENABLE RESTRICTED SESSION
关闭:ALTER SYSTEM DISABLE RESTRICTED SESSION
注意:进入受限状态后,已登入的会话不会自动退出
只读状态
打开:ALTER DATABASE OPEN READ ONLY
关闭:ALTER DATABASE OPEN READ WRITE
静默状态
打开:ALTER SYSTEM QUIESCE RESTRICTED
关闭:ALTER SYSTEM UNQUIESCE
挂起状态
打开:ALTER SYSTEM SUSPEND
关闭:ALTER SYSTEM RESUME
查询:select database_status from v$instance
特性:挂起后,所有新提交的I/O操作不会执行,而是放入一个等待队列中,数据库恢复正常后,这些I/O操作将继续进行