oracle中的open,oracle数据库启动从nomount到open

oracle数据库启动从nomount到open

oracle数据库启动过程中的3种状态:

■ nomount

■ mount

■ open

下面详细介绍oracle数据库从nomount到open的过程

在启动数据库前需要使用拥有sysdba或者sysoper系统特权的用户连接到数据库实例.启动或者

关闭数据库。

nomount:

1、查找初始化参数文件,如果没有找到,oracle数据库将不能被启动,这时候可以在startup

命令后面指定spfile,pfile来启动数据库.默认存在3个初始化参数文件,默认的位置在:

$oracle_home/dbs/spfilesid.ora    //sid指的是实例名.

$oracle_home/dbs/spfile.ora

$oracle_home/dbs/initsid.ora

oracle将会按照上面的顺序,查找各初始化参数文件,如果排在前面的初始化参数文件已经

被找到那么oracle将忽略后面的初始化文件。以找到的第一个初始化参数文件启动oracle实例.如

果oracle没有找到初始化参数文件,实例将不会被构建,当然数据库也就不会被启动了。

说是说默认有3个初始换参数文件,但是你的数据库有几个就要眼见为实了。

[oracle@zeng ~]$ cd $ORACLE_HOME/dbs

[oracle@zeng dbs]$ ll

total 32

-rw-rw----. 1 oracle oinstall 1544 Feb  5 22:14 hc_DBUA0.dat

-rw-rw----. 1 oracle oinstall 1544 Feb 16 22:37 hc_oracle.dat

-rw-r--r--. 1 oracle oinstall 2851 Feb 16 23:15 init.ora

-rw-r-----. 1 oracle oinstall   24 Feb  5 22:28 lkORACLE

-rw-r-----. 1 oracle oinstall 1536 Feb  7 12:24 orapworacle

drwx------. 2 oracle oinstall 4096 Feb  5 22:14 peshm_DBUA0_0

drwx------. 2 oracle oinstall 4096 Feb  5 22:28 peshm_oracle_0

-rw-r-----. 1 oracle oinstall 2560 Feb  6 03:12 spfileoracle.ora

看,我的数据库中只存在两个初始化参数文件,分别是:

spfileoracle.ora(spfile)

init.ora(pfile)

命名也与默认的方式有些不一样。

spfile是二进制文件,不能用正常的方式,打开查看编辑。pfile是文本文件,可以用于

编辑产生spfile文件.

下面是pfile中的部分内容.

[oracle@zeng dbs]$ vi init.ora

###############################################################################

# Change '' to point to the oracle base (the one you specify at

# install time)

db_name='ORCL'

memory_target=1G

processes = 150

audit_file_dest='/admin/orcl/adump'

audit_trail ='db'

db_block_size=8192

db_domain=''

db_recovery_file_dest='/flash_recovery_area'

db_recovery_file_dest_size=2G

diagnostic_dest=''

dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'

open_cursors=300

remote_login_passwordfile='EXCLUSIVE'

undo_tablespace='UNDOTBS1'

# You may want to ensure that control files are created on separate physical

# devices

control_files = (ora_control1, ora_control2)

compatible ='11.2.0'

2、读取初始化参数文件的内容,确定各项初始化参数的值。

3、依据初始化参数的值,构造SGA.

4、依据初始化参数的值,创建oracle后台进程.

5、打开alert log,trace files以正确的语法把启动过程中的详细参数设置写入alert log。

在momount阶段可以用于执行数据库创建,某些备份与恢复工作。

alert log是由参数background_dump_dest设定的,可以通过下面的方式来查看一下

SQL> show parameter background_dump_dest;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

background_dump_dest                 string      /opt/oracle11g/diag/rdbms/orac

le/oracle/trace

alert log file和trace files是存储在trace文件夹内的.在实例启动过程中如果发现日志文件不存在将会被创建,如果存在日志信息将会被添加在里面,如果启动过程中出现了什么问题将会在相同的位置产生trace files。alert log文件是文本文件,一般格式是:alert_sid.log该文件会随着实例启动与运行容量不断增大,你可以选择删除该文件,在数据库运行过程中也可以删除该文件。不过不建议删除该文件,占不了多大空间的,删除它干嘛.

mount:

nomount状态的数据库,可以通过读取控制文件来mount数据库,这时候实例就开始和某个数据库关联起来了。oracle是通过读取初始化参数文件来知道控制文件存放的位置与数量的。如果任何的控制文件损坏或者丢失数据库将不能被mount。可以通过control_files参数来查看

控制文件的位置与数量

SQL> show parameter control_files;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

control_files                        string      /opt/oracle11g/oradata/oracle/

oracle/control01.ctl, /opt/ora

cle11g/oradata/oracle/oracle/c

ontrol02.ctl, /opt/oracle11g/o

radata/oracle/oracle/control03

.ctl

控制文件中记录着数据文件与在线重做日志的位置与数量,这些信息oracle在mount阶段还不会去验证,这些信息将用于open阶段。在mount阶段只有数据库管理员可以访问。

open:

1、打开除了undo表空间以外的所有的在线数据文件。

如果在数据库shutdown 以前有表空间已经offline了,oracle在启动过程中会忽略这些表空间不会去打开该表空间中的数据文件。

2、获得一个undo表空间。

如果有多个undo表空间可用,那么将使用undo_tablespace参数指定的undo表空间。如果该参数没有指定,将使用查找到的第一个可以的undo表空间。

3、打开所有在线重做日志。

如果任何数据文件或者在线重做日志文件损坏丢失,数据库将停留在mount阶段.在某些情况下需要执行恢复工作。

当数据库open以后普通用户就可以创建会话登录数据库与数据库交互.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值