oracle中的open,oracle数据库启动从nomount到open
oracle数据库启动从nomount到open
oracle数据库启动过程中的3种状态:
■ nomount
■ mount
■ open
下面详细介绍oracle数据库从nomount到open的过程
在启动数据库前需要使用拥有sysdba或者sysoper系统特权的用户连接到数据库实例.启动或者
关闭数据库。
nomount:
1、查找初始化参数文件,如果没有找到,oracle数据库将不能被启动,这时候可以在startup
命令后面指定spfile,pfile来启动数据库.默认存在3个初始化参数文件,默认的位置在:
$oracle_home/dbs/spfilesid.ora //sid指的是实例名.
$oracle_home/dbs/spfile.ora
$oracle_home/dbs/initsid.ora
oracle将会按照上面的顺序,查找各初始化参数文件,如果排在前面的初始化参数文件已经
被找到那么oracle将忽略后面的初始化文件。以找到的第一个初始化参数文件启动oracle实例.如
果oracle没有找到初始化参数文件,实例将不会被构建,当然数据库也就不会被启动了。
说是说默认有3个初始换参数文件,但是你的数据库有几个就要眼见为实了。
[oracle@zeng ~]$ cd $ORACLE_HOME/dbs
[oracle@zeng dbs]$ ll
total 32
-rw-rw----. 1 oracle oinstall 1544 Feb 5 22:14 hc_DBUA0.dat
-rw-rw----. 1 oracle oinstall 1544 Feb 16 22:37 hc_oracle.dat
-rw-r--r--. 1 oracle oinstall 2851 Feb 16 23:15 init.ora
-rw-r-----. 1 oracle oinstall 24 Feb 5 22:28 lkORACLE
-rw-r-----. 1 oracle oinstall 1536 Feb 7 12:24 orapworacle
drwx------. 2 oracle oinstall 4096 Feb 5 22:14 peshm_DBUA0_0
drwx------. 2 oracle oinstall 4096 Feb 5 22:28 peshm_oracle_0
-rw-r-----. 1 oracle oinstall 2560 Feb 6 03:12 spfileoracle.ora
看,我的数据库中只存在两个初始化参数文件,分别是:
spfileoracle.ora(spfile)
init.ora(pfile)
命名也与默认的方式有些不一样。
spfile是二进制文件,不能用正常的方式,打开查看编辑。pfile是文本文件,可以用于
编辑产生spfile文件.
下面是pfile中的部分内容.
[oracle@zeng dbs]$ vi init.ora
###############################################################################
# Change '' to point to the oracle base (the one you specify at
# install time)
db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/flash_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest=''
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (ora_control1, ora_control2)
compatible ='11.2.0'
2、读取初始化参数文件的内容,确定各项初始化参数的值。
3、依据初始化参数的值,构造SGA.
4、依据初始化参数的值,创建oracle后台进程.
5、打开alert log,trace files以正确的语法把启动过程中的详细参数设置写入alert log。
在momount阶段可以用于执行数据库创建,某些备份与恢复工作。
alert log是由参数background_dump_dest设定的,可以通过下面的方式来查看一下
SQL> show parameter background_dump_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest string /opt/oracle11g/diag/rdbms/orac
le/oracle/trace
alert log file和trace files是存储在trace文件夹内的.在实例启动过程中如果发现日志文件不存在将会被创建,如果存在日志信息将会被添加在里面,如果启动过程中出现了什么问题将会在相同的位置产生trace files。alert log文件是文本文件,一般格式是:alert_sid.log该文件会随着实例启动与运行容量不断增大,你可以选择删除该文件,在数据库运行过程中也可以删除该文件。不过不建议删除该文件,占不了多大空间的,删除它干嘛.
mount:
nomount状态的数据库,可以通过读取控制文件来mount数据库,这时候实例就开始和某个数据库关联起来了。oracle是通过读取初始化参数文件来知道控制文件存放的位置与数量的。如果任何的控制文件损坏或者丢失数据库将不能被mount。可以通过control_files参数来查看
控制文件的位置与数量
SQL> show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /opt/oracle11g/oradata/oracle/
oracle/control01.ctl, /opt/ora
cle11g/oradata/oracle/oracle/c
ontrol02.ctl, /opt/oracle11g/o
radata/oracle/oracle/control03
.ctl
控制文件中记录着数据文件与在线重做日志的位置与数量,这些信息oracle在mount阶段还不会去验证,这些信息将用于open阶段。在mount阶段只有数据库管理员可以访问。
open:
1、打开除了undo表空间以外的所有的在线数据文件。
如果在数据库shutdown 以前有表空间已经offline了,oracle在启动过程中会忽略这些表空间不会去打开该表空间中的数据文件。
2、获得一个undo表空间。
如果有多个undo表空间可用,那么将使用undo_tablespace参数指定的undo表空间。如果该参数没有指定,将使用查找到的第一个可以的undo表空间。
3、打开所有在线重做日志。
如果任何数据文件或者在线重做日志文件损坏丢失,数据库将停留在mount阶段.在某些情况下需要执行恢复工作。
当数据库open以后普通用户就可以创建会话登录数据库与数据库交互.
oracle中的open,oracle数据库启动从nomount到open相关推荐
- Oracle中如何记录访问数据库的登录信息?
曾有同学问过,能不能知道都有谁登陆过Oracle数据库, 碰巧看到老杨的这篇历史文章<Oracle中如何记录访问数据库的登陆信息>,介绍了几种实现这个需求的方案,学习一下. 1. 有哪些审 ...
- 【DB笔试面试713】在Oracle中,如何将一个数据库添加到CRS中?
♣ 题目部分 在Oracle中,如何将一个数据库添加到CRS中? ♣ 答案部分 虽然通过DBCA(DataBase Configuration Assistant,数据库配置助手)创建的数据库会自动加 ...
- oracle中插曲时间,Oracle 11G 数据库迁移【expdp/impdp】
0x01 环境 A 机器,操作系统 CentOS7.3,Oracle版本:11G,IP地址:192.168.1.11 B 机器,操作系统 CentOS7.3,Oracle版本:11G,IP地址:192 ...
- 查看oracle中path,查看oracle进程启动时的环境变量
当我们使用sqlplus本地登录oracle数据库时,设置的环境变量ORACLE_HOME和oracle启动时的环境变量ORACLE_HOME不一致时,会出现连接报错. 那么有什么办法可以看到orac ...
- 如何向oracle中导入数据,Oracle导入导出数据库的语法_Oracle_Oracle语法_Oracle数据库_课课家...
在Oracle当中如何才能对数据库的语法进行导入导出呢?其实啊,这有不止一种方法呢.事实上啊,在Oracle当中,不仅可以在Oracle编辑器中用图形化的方式导入导出文理文件的数据方式,而且还可以采用 ...
- oracle中call用法,Oracle数据库中 call 和 exec的区别
Oracle数据库中 call 和 exec的区别 今天发现了一个小东西,觉得很有意思,查找了一些资料,跟大家分享一下: 在sqlplus中: 在第三方提供的工具(如:plsqldev) 总结: ex ...
- oracle中master实例,oracle基础(基本介绍)
数据库 磁盘上存储的数据的集合 在物理上表现为数据文件.日志文件和控制文件等 在逻辑上以表空间形式存在 必须首先创建数据库,然后才能使用Oracle 数据库实例 每个启动的数据库都对应一个数据库实例, ...
- oracle中DBWR全称,Oracle基本术语大全
Oracle基本术语大全 §2.4.2 重做日志工作模式Oracle可以在两种模式之一来工作: 1)ARCHIVELOG模式(可恢复) Oracle 一般至少有两个日志文件.它们轮流交替地被写入所作的 ...
- oracle中的open,Oracle 深入分析Open过程
数据库的数据都存放在数据文件当中,当数据库开启时,Oracle怎么完成从数据文件读取数据到内存当中这个初始化过程呢?SQL> startup mount; ORACLE instance sta ...
最新文章
- 图神经网络从入门到入门
- 构建企业级业务高可用的延时消息中台
- cisco 访问控制列表ACL笔记
- 2021年春季学期-信号与系统-第二次作业参考答案-第六小题
- python测试开发自学教程-自动化平台测试开发- Python 测试开发实战
- 整理:各个浏览器及web服务器对URL(get)长度的限制
- Evernote 印象笔记赞一个(非广告)
- 【pmcaff】苏杰:产品经理对技术做这些,就完蛋了
- QT的QGLFormat类的使用
- python中的__new__和__init__
- 保证你现在和未来不失业的十种关键技术
- logback-spring.xml
- 质性研究工具_MAXQDA在质性数据分析中的使用——免费的中文在线研讨会!
- webpack 介绍 安装 常用命令
- oracle宿舍管理系统实训报告,学生宿舍管理系统_开题报告
- 宏碁传奇14 Swift 指纹模块失效解决
- 三种css样式应用方式,CSS样式三种形式
- java服务监控并发送邮件_详解Spring Boot Admin监控服务上下线邮件通知
- CVPR 2022 Oral|港中文开源PoseC3D:基于3D-CNN的骨骼动作识别框架
- 百度CTO王海峰:亚洲丰富实践场景推动AI技术落地探索