分享

Oracle数据库的启动和关闭

 peijs5201314 2015-04-20


Oracle数据库的启动和关闭



一、数据库启动三阶段:
1、nomount:只加载实例(SGA+后台进程)
查看数据库状态:select instance_name,status from v$instance; ==> STARTED
select * from v$sgainfo; ==> 与内存相关的
如何启动:在停止状态 ==> startup nomount
数据库已经启动 ==> startup force nomount
这3个状态只能按nomount.mount,open的顺序往上启动
数据库作了什么:
(启动instance)
1.读取参数文件
2.产生警报日志
3.分配了内存
4.后台进程启动
需要什么条件: (1)参数文件,目的分配内存和后台进程;
    (2)实例管理(告警日志和追踪文件)的存储目录,目的写警报日志($ORACLE_BASE/admin/$ORACLE_SID/{a|b|c|u}dump)
adump:audit_file_dest
bdump:background_dump_dest
cdump:core_dump_dest
udump:user_dump_dest
如果不设置,默认使用$ORACLE_HOME/rdbms/log/里
我们可以作什么: 1)查看部分动态性能视图,即v$(v$instance v$sga v$process v$bgprocess)等(参数与内存和后台进程相关的视图)
2)修改初始化参数 可以向上兼容,在另外两个阶段也可以做
3)创建数据库
4)重新创建控制文件 只能在nomount阶段做
此阶段不能看数据字典(以dba_ ,all_ ,user_ 开头的)
数据字典的数据来源是以$结尾的基表
动态性能视图的数据来源是以x$开头的内存表|固定表
SYS@ora10g> startup nomount
ORACLE instance started.


Total System Global Area  230686720 bytes
Fixed Size    1218676 bytes
Variable Size   75499404 bytes
Database Buffers  150994944 bytes
Redo Buffers    2973696 bytes
SYS@ora10g> select instance_name,status from v$instance;


INSTANCE_NAME STATUS
------------------------ ----------
ora10g STARTED


SYS@ora10g> 


2、mount
如何启动:(1)startup mount
(2)已经启动的状态,从nomount到mount状态   ==> alter database mount
数据库作了什么:从参数文件中获得控制文件的位置 加载控制文件到内存
控制文件包含数据库的物理结构(DBF+REDO)和数据库的状态信息(SCN(system change number))
需要什么条件:需要所有的控制文件都在,并且状态是一致的(最多8份,最少1份,互为镜像)
如果找不到报错ORA_205 :把控制文件放到show parameter control;查到的目录里
或者修改此目录alter system set control_files='/../control01.ctl','control02.ctl','control03.ctl',;
相互间版本不一致报错ORA_214:用高版本覆盖低版本(cp)
控制文件在哪:由初始化参数 control_file 决定,该参数指向几个控制文件,数据库就需要几个文件
如何查看:MOUNTED
我们可以作什么: (1)可以查看大多数动态性能视图(v$xxx,可以查看文件头信息v$datafile_header) 
但不能查询数据字典
(2)可以移动数据文件(dbf)和联机日志文件(redo)、tempfile
alter database rename file 'OLD_NAME' to 'NEW_NAME';
移动的条件: 'new'在目的地存在(验证文件头)
'old'在控制文件存在(验证源)
被移动的文件必须是静态的
(3)可以备份还原恢复数据库(用rman)
(4)可以作数据库级别的 offline 和 online ,但不能作表空间的 offline 和 online 
(5)可以修改数据库的归档模式
(6)可以打开和关闭闪回数据库的功能




3、open
如何启动:从mount状态修改到open状态 ==>alter database open
数据库作了什么:按照控制文件的指针寻找到数据库文件和联机日志文件,并且要校验文件的有效性
需要什么条件:需要所有的物理文件都在,并且是好的
找到对应文件,并且验证文件状态(一致性)
不一致要经历介质恢复或实例恢复
介质恢复 需要DBA参与
实例恢复 需要恢复内存丢失的数据,自动完成
1扫描日志,找到需要恢复的数据
2开始应用日志去恢复(前滚)
3打开数据库
4找到未提交的事务,进行回滚
5释放资源(延迟释放)
实例崩溃后,再启动只能保证已提交的事务
控制文件在哪:由初始化参数 control_file 决定,该参数指向几个控制文件,数据库就需要几个文件
我们可以作什么:
数据文件 日志文件都已打开 随意查看 修改使用
但有些操作只能在mount下和nomount下完成 例如改归档模式就只能在mount
open并不是一切皆可
nomount mount open没有子集包含的关系.
二、数据库的关闭

是否允许新连接 是否等待当前会话结束 是否等待当前事务处理结束 强制选择检查点并关闭文件
abort
immediate
transactional        否
normal

三、数据库的生命周期
nomount-->mount-->open-->close-->dismount-->shutdown
alter database close;了数据库就从open进入到mount阶段,此时就不能再alter database open;了

四、查看数据库的启动阶段
select open_mode from v$database;
12c查看数据库的启动阶段,可以用上面的命令也可以用下面的命令
select name,open_mode from v$pdbs;
alter session set container=...;切换容器的命令

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多