数据库的启动和关闭

1. 启动
命令:
startup [nomount] [spfile=要使用的参数文件的绝对路径/名字.ora]


三个阶段:
nomount 
mount
open


nomount:打开并读取参数文件,创建实例,分配内存,启动后台进程
mount:打开控制文件
open:打开并加载数据文件,redo log


其中:
nomount 时候,参数文件知多少:
存储位置:$ORACLE_HOME/dbs/
分为静态参数文件和动态参数文件:
静态参数文件:文本文件 init.ora
  数据库启动的时候读取一次,此后关闭,不再使用。需要修改参数时只能重启数据库
动态参数文件:二进制文件 spfile.ora
  数据库启动的时候读取一次,此后保持打开状态,在运行期间可以动态修改部分参数


可以动态修改的参数为 v$parameter.issys_modifiable = immediate 的参数。
修改命令:alter system set parameter_name = parameter_value [comment=注释] scope={spfile|both|memory}


参数文件的使用顺序:spfile.ora -> spfile.ora -> init.ora
如果均不存在,则启动报错


异常处理:
spfile 和 pfile 可以相互复制:
create {spfile|pfile} from {pfile|spfile};
如果pfile 和 spfile 均出错,且无法从备份恢复的情况下,可以手动创建一个最简单的参数文件,即可启动数据库,只需要包含参数 db_name
异常信息查看:错误日志位于 $ORACLE_HOME/rdbms/log 下。


查看数据库是否使用了spfile:show parameter spfile


mount时候,控制文件知多少?
控制文件存储数据库的物理结构和运行状态。如果控制文件中记录的SCN和数据文件结束SCN不一致,数据库将进行实例恢复。


nomount 之后查看控制文件信息:show parameter control_files
异常处理:
控制文件一般有三份,存储在不同的位置,要三个控制文件保持一致才能mount数据库。可以修改参数文件中参数 control_files 的配置来确认有效的控制文件,然后用有效的覆盖无效的控制文件即可。
如果没有发现有效的控制文件,则在有备份的情况下,可以从备份恢复。
如果无备份,可以重建控制文件


mount 之口令文件
如果缺失口令文件,也会引起数据库无法 mount.
位置:%ORACLE_HOME/dbs/orapw
寻找顺序:orapw -> orapw
异常处理:可以通过 orapw 工具重建
相关参数:remote_login_passwordfile


open之两步检查
第一步,检查数据文件头SCN是否等于控制文件SCN
第二步,检查数据文件头SCN和控制文件记录的其结束SCN是否一致,如果一致,则无需对该文件进行恢复
检查通过后,打开数据库,锁定数据文件,同时将每个数据文件结束SCN设置为无穷大。


实例恢复
数据库open时候检查SCN不一致,确认需要进行实例恢复。
实例恢复包括两个步骤:前滚 -> 回滚
前滚从 lrba 开始,到日志结束,前滚完成后,数据库可以被打开提供访问和使用
回滚:回滚未提交事务。




2. 关闭
关闭有四种方式:
abort:模拟的突然断电的关闭,buffer cache 中的脏数据不会写入dbf,启动数据库时需要进行实例恢复
immediate:强行回滚未提交事务,强行中断连接,buffer cache 中的脏数据完全写入dbf,无需进行实例恢复
transactional:等待用户提交或回滚事务后强行中断连接,buffer cache 中的脏数据完全写入dbf,无需进行实例恢复
normal:等待用户提交或回滚事务,等待用户中断连接,buffer cache 中的脏数据完全写入dbf,无需进行实例恢复


一般使用immediate关闭方式,normal -> transactional -> immediate -> abort 依次对用户造成的影响从小到大,但是 normal 关闭方式下,数据库关闭将是一个漫长的过程。


数据库关闭时,正常状态下,触发全量检查点,更新控制文件SCN,文件SCN,结束SCN 为一致的状态。

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

转载于:http://blog.itpub.net/30168575/viewspace-1673055/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值