oracle数据库启动与关闭

数据库启动与关闭

 过程一定是Nomount –mount—open—close—dismount—shutdown

 

 

Open—根据控制文件中记录的数据,日志文件个数,位置,版本一致性验证。若不一致,则判断数据文件是否最新,最新就看undo是否有事务未提交,undo结合redo日志对此未完成的事务取消,这也叫回退。当数据文件不一致,有事务提交未写入数据文件中,undo中记录了未写入数据文件的修改的block更改过程,重做一遍,将修改的block重新写入block,这也叫前滚。回退和前滚是用来在数据库不一致性关闭时候来做实例恢复的。

 

Mount—实例的控制文件已经打开,物理结构与控制文件开始关联,实例开始关联库,此时控制文件中记录的库名与实例中的由参数文件定义的db_name,必须一致+根据参数文件中定义的控制文件的个数,路径,版本一致性验证通过才能mount。在此状态可以操作物理结构,对数据库进行归档、闪回等操作。还可以查看很多视图如v$controlfile等

 

Nomount—参数文件生效,实例已经启动

 

Shutdown

 

10g

Sqlplus / as sysdba

Select open_mode from v$database;

Shutdown immediate

Alter database nomount;

Alter database mount;

Alter database open;

 

 

关于一致性关闭数据库

Shutdown immediate    一致性关闭,触发CKPT,事务强行结束

Shutdown transactional  一致性关闭,触发CKPT,等待事务结束

Shutdown normal       一致性关闭,触发CKPT,等待事务结束,等待会话结束

一致性关闭时,回退未提交的更改,数据库缓冲区高速缓存会写入数据文件,启动时不需要恢复实例。

 

 

10g

Sqlplus / as sysdba

Shutdown abort

Startup

Shutdown abort

Startup mount

Alter database archivelog;此时报错,未一致性关闭,需要实例恢复

Alter database open;只要正常打开,一致性关闭一下,再次启动便恢复了实例

Shutdown immediate

Startup mount

Alter database archivelog;正常

Alter database noarchivelog;

 

A终端:

10g

Sqlplus scott/tiger

B终端:

10g

Sqlplus / as sysdba

Shutdown normal  无法关闭因为A会话未结束,一旦结束便会关闭

 

A终端:

10g

Sqlplus scott/tiger

Update emp set sal=sal+1;

B终端:

10g

Sqlplus / as sysdba

Shutdown transactional  无法关闭因为A事务未结束,一旦结束便会关闭,若A此时rollback,便会立即关闭

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值