ORACLE数据库的启动和关闭,你到底知道多少?

oracle数据库的启动和关闭

Oracle数据库的启动


Oracle启动分为三个过程:
1.启动实例==》nomount状态

2.挂载数据库==》mount状态
3.打开数据库==》open状态


过程一:启动实例==》nomount状态
这里有三个阶段:读取参数文件(pfile/spfile)、分配SGA内存、启动后台进程。
Oracle要想启动数据库,必须有一个参数文件,此文件内包含了要启动的数据库的控制文件,数据库的名字,数据库的内存设置参数等一系列重要信息。ORACLE根据系统中ORACLE_SID来寻找此参数文件,根据寻找到的参数文件建立数据库实例,之后,分配内存,后台进程依次被启动,这样,数据库就进入了nomount状态。

这一过程并不会涉及到数据库的物理数据文件(.DBF,即使没有数据库文件,该过程也可以顺利完成。


如果在这里启动出错,可能的原因:
1.可能你的服务没有启动或者你的oracle_sid与实际的不符合。解决方法:启动服务或者修改注册表中的oracle_sid的值。也可以执行 set oracle_sid=xxx;
2.读取的参数文件出错。确认你的参数文件没有问题。

过程二:加载数据库==》mount状态
Oracle在这一过程,才真正涉及到数据库的物理数据文件。
通过参数文件内指定的控制文件的位置信息,Oracle例程找到并打开控制文件,读取到数据文件和日志文件的位置,加载数据文件和日志文件,另外,控制文件中还记录了检查点信息。但若例程没有找到控制文件,则会提示错误,并停止mount过程。
这个过程除了会检测控制文件的存在性以及正确性外,还会检查几个文件。
1. 口令文件

Orapw<ORACLE_SID>,此文件位于$ORACLE_HOME/dbs目录下,存放SYSDBA/SYSOPER用户的用户名及口令。在Oracle9i时代,该文件丢失,会提示错误,mount失败退出;而在Oracle10g之后,该文件丢失也不会影响mount,只是不能远程登陆以及进行授权操作。
口令文件的查找机制:
寻找Orapw<ORACLE_SID>,若此文件没找到,则继续寻找Orapw文件。若两者都查找失败,Oralce例程就会做出处理了。
2. 锁文件

lk<ORACLE_SID>,此文件位于$ORACLE_HOME/dbs目录下,在数据库启动时创建,用于操作系统对数据库的锁定。当数据库启动时锁定,当数据库关闭时释放。
如果在这里启动出错,可能的原因就是你的控制文件坏掉了。可以查看跟踪文件里面的信息,看看具体是否是控制文件的问题。一般我们的控制文件都有镜像,可以通过copy手段覆盖原来的坏文件。

过程三:打开数据库==》open状态
Oracle在这一过程,将打开上一过程中挂载的数据文件和日志文件,然后进行检查点及完整性检查,若正常,则启动数据库;若异常,则需要进行修复。


 


Oracle数据库的关闭


数据库关闭就是数据库启动的逆过程,同样分为3个阶段。分别是CLOSE,DISMOUNT,SHUTDOWN
介绍下几种不同的关闭方式
方式一:shutdown normal

此方式是正常关闭数据库,也是shutdown指令默认行为。发出该命令后,数据库将阻止任何新的连接,并开始等待,直到当前的所有连接都断开后,才关闭数据库。这是对数据一致性而言最安全的关闭方式,但可能要等待很长时间。
方式二:shutdown immediate

此方式经常使用,指令发出后,所有事务中断,未提交的事务回滚,强制断开连接的用户并使其退出。接下来,执行检查点,将数据写回数据文件,关闭数据库。
方式三:shutdown transactional

此方式阻止任何新连接和新事务的发起,并在完成当前事务后关闭数据库。
方式四:shutdown abort

此方式等于服务器断电。强制断开连接,中断所有事务,立即关闭数据库。对于连接到数据库的所有数据库不作任何检查,也不作数据库完整性检查。未完成事务不回滚,数据库不执行检查点。下次启动需要进行实例恢复。

此外,除了启动数据库本身,还必须启动数据库监听服务,否则客户端无法正常使用数据库。

启动监听程序:lsnrctl start。
这里主要是配置监听程序配置文件listener.ora
关闭监听程序:lsnrctl stop。

当你启动不了你的监听程序的时候,去检查下你的listener.ora和tnsnames.ora中的host值是否和你的计算机名相符合。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值