Nomout状态: 从参数文件中启动实例,但并没有加载打开数据库。所以,在此状态下,能够查看/修改参数文件的内容。重新创建控制文件。
Mount状态: 从控制文件中读取信息,使数据库实例处于启动状态,但并没有打开数据库。此时,我没可以查看数据库的数据文件,在线重做日志文件,表空间等信息,可以对相关信息进行修改操作,但不能操作数据库的对象进行操作,例如表与视图。
open状态:数据库可以被使用。可以查看/修改参数文件,查看控制文件信息;查看/修改数据库的数据文件,在线重做日志文件,表空间等信息;同时能够对数据库中的对象表进行各种操作。
开启数据库,有许多种方式,你可以使用sql plus,RMAN,Oracle企业管理器等等。sqlplus 会话开启,执行命令startup。对于windows系统,操作如下
*******************************************************************************
C:\Users\Administrator>setoracle_sid=testdb
C:\Users\Administrator>sqlplus / assysdba
SQL*Plus: Release 11.2.0.3.0 Production onFri Oct 7 17:20:37 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1286066176 bytes
Fixed Size 2254864 bytes
Variable Size 889194480 bytes
Database Buffers 385875968 bytes
Redo Buffers 8740864 bytes
Database mounted.
Database opened.
SQL>
*******************************************************************************
启动实例时,数据库需要从参数文件(spfile)或者文本配置文件读取实例配置参数。对于windows操作系统来说,参数文件默认位置为$ORACLE_HOME\DATABASE,参数文件命名为spfile$oracle_SID.ora, 数据库默认设置文本配置文件为init$ORACLE_SID.ora
startup pfile =c:\app\Administrator\initetestdb.ora
注意:对于指定参数文件方式的启动数据库方式,在参数文件章节集中讲解
1. 开启实例,未加载数据库的过程
读取参数文件SPFILE->pfile->分配SGA
Startup nomount
********************************************************************************************
SQL>startup nomount;
ORACLEinstance started.
TotalSystem Global Area 835104768 bytes
FixedSize 2217952 bytes
VariableSize 629147680 bytes
DatabaseBuffers 197132288 bytes
RedoBuffers 6606848 bytes
SQL>show parameter SGA;
NAME TYPE VALUE
----------------------------------------------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 800M
sga_target big integer 0
*******************************************************************************************************
当你执行特定的操作,你需要数据库处于mount状态,但不是open 状态,所以你需要改变数据库的状态。
*******************************************************************************
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1286066176 bytes
Fixed Size 2254864 bytes
Variable Size 889194480 bytes
Database Buffers 385875968 bytes
Redo Buffers 8740864 bytes
SQL> select instance_name fromv$instance;
INSTANCE_NAME
----------------
testdb
SQL> alter database mount;
Database altered.
*******************************************************************
打开数据库
*****************************************************************
SQL> alter database open;
Database altered.
***********************************************************************
以只读方式打开,以可读写的方式打开
*************************************************************************
SQL> alter database open read only;
Database altered.
SQL>
SQL> alter database open read write;
Database altered.
SQL>
*******************************************************************************
1. shutdown immediate 当准备计划停机或者通过数据库离线方式备份数据库
2. Shutdown transactional 新连接新提交的事务不被允许,提交的事务将完成
*******************************************************************************************
SQL> shutdown transactional
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
*********************************************************************************************
有时候,为了只能DBA对数据库进行操作,需要执行数据库的静默状态
alter system quiesce restricted
SQL> alter system quiesce restricted;
System altered.
恢复正常数据库模式为
alter system unquiesce;
SQL> alter system unquiesce;
System altered.
altersystem suspend #中断所有的数据文件与控制文件的I/0
Altersystem resume # 恢复所有的数据文件与控制文件