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以后普通用户就可以创建会话登录数据库与数据库交互.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-716659/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26110315/viewspace-716659/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle中,启动数据库可以分为三个阶段:nomount、mount和open。首先是nomount状态,通过执行"startup nomount"命令来启动Oracle实例,此时数据库实例会被加载到内存中,但不会打开数据库。\[1\]接下来是mount状态,通过执行"alter database mount"命令来将数据库与控制文件进行关联,此时数据库会读取控制文件中的信息,包括检查点信息。\[2\]最后是open状态,通过执行"alter database open"命令来打开数据库,此时数据库可以被用户访问和操作。在open状态下,后台进程会被启动,以保持数据库的正常运行和处理用户请求。\[3\]所以,nomount、mount和open分别代表了Oracle数据库的不同启动状态。 #### 引用[.reference_title] - *1* *2* [Oracle数据库nomount,mount以及open状态](https://blog.csdn.net/junqiuyang1/article/details/122932465)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Oracle数据库启动过程及状态详解(nomount、mount和open)](https://blog.csdn.net/weixin_39568926/article/details/116311656)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值