淘先锋技术网

首页 1 2 3 4 5 6 7

类型:笔记

级别:入门级

环境: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操作将继续进行