数据库的启动:分三个阶段
(nomount、 mount、 open)
第
1个阶段:nomount
数据库做了什么?
启动实例
&写跟踪文件
需要什么?
参数文件
实例管理的目录
我们能做什么?
查看参数
修改参数
查看内存和后台进程的使用情况
创建数据库
重建控制文件
不能nomount的原因有什么?
参数文件有问题
审计文件目录有问题
诊断文件目录有问题
怎样将数据库启动到
nomount
shutdown --> nomount
startup nomount
SYS> select status from v$instance;
STATUS
------------
STARTED --> nomount
查看后台启动进程
select name from v$bgprocess where paddr<>'00';
~~~~~~~~~~~~~~~~~~~~~~
第
2个阶段:mount
数据库做了什么?
加载控制文件的信息到内存
需要什么?
控制文件
我们能做什么?
查看存储相关的信息
可以备份、还原、恢复
移动日志文件和数据文件
将数据文件
offline
打开和关闭归档模式
打开和关闭闪回数据库的功能
删除数据库
不能启动到mount的原因?
控制文件损坏,丢失
怎样将数据库启动到
mount?
shutdown --> mount
startup mount
nomount --> mount
alter database mount;
SYS> select status from v$instance;
STATUS
------------
MOUNTED
~~~~~~~~~~~~~~~~~~~~~~
第
3个阶段:open
数据库做了什么?
打开联机日志和数据文件,检查数据一致性
需要什么?
开联机日志和数据文件
我们能做什么?
任何操作
不能启动到open状态的原因?
数据文件有问题
日志文件有问题
怎样将数据库启动到
open?
shutdown --> open
startup
mount --> open
alter database open;
nomount --> open
alter database mount;
alter database open;
所有的
oracle数据库都可以使用read only方式打开,
不是所有的
oracle数据库都可以使用read write方式打开(physical standby);
alter database open read only;
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY
alter database close后就不能使用alter database open
因为一个实例的生命周期内只能打开一个数据库,只有重新建立一个实例才可以。
#################################################################################################################################
数据库的停止:四种模式
shutdown
*正常停库: shutdown normal = shutdown
新的连接不允许建立(普通用户)
等待查询结束
(等待会话结束disconnect)
等待事务结束(
commit & rollback)
强制产生检查点
关闭联机日志和数据文件
关闭控制文件
关闭实例
*事务级停库:shutdown transactional
新的连接不允许建立(普通用户)
不等待查询(查询被终止)
等待事务结束(
commit & rollback)
强制产生检查点
关闭联机日志和数据文件
关闭控制文件
关闭实例
*立即停库:shutdown immediate (生产库最常用的方式)
新的连接不允许建立(普通用户)
不等待查询(查询被终止)
不等待事务(事务被强制
rollback)
强制产生检查点
关闭联机日志和数据文件
关闭控制文件
关闭实例
*强制停库:shutdown abort
相当于拔电源!数据库是脏库!重启的时候需要实例的恢复!
starup force的使用
:
startup force = shutdown abort + startup
startup force nomount = shutdown abort + startup nomount
startup force mount = shutdown abort + startup mount
利用下面命令监控实例启动状态
ipcs -s
ipcrm -s
在系统级别强制停库
:
ps -ef | grep ora_
kill -9 ### ### ###
使用oracle自带脚本,系统级别停库(可以使用该选项dbstart实现数据库的自起,相关实验笔记以后写)
dbshut
======================================================================
由于本人能力有限,存在字面,表达错误请指正。