oracle启动过程2
5个目标点(知识点)
环境说明,连接实例,hash运算
dbs目录文件解释
参数文件解释
启动过程三阶段
实战演练
本次课程目标是讲解oracle实例的启动过程
首先了解一下本次实验环境
之前已经创建好了一个数据库--wode,当前是关闭状态
查看参数文件:ll $ORACLE_HOME/dbs
查看SID:echo $ORACLE_SID,如果没有,可以export ORACLE_SID=wode一下
其次讲解基本原理
1:ORACLE使用环境变量里(ORACLE_SID+ORACLE_HOME)的值进行hash运算,来确定SGA区的内存地址。
2:如果当你使用sqlplus / as sysdba 连接到一个idle的instance时,表示你使用的(ORACLE_SID+ORACLE_HOME) hash后的值在内存中没有找到相应的sga区,一个可能是数据库没有启动,另一个可能是和当前正在运行的数据库的(ORACLE_SID+ORACLE_HOME)内容不相同,导致你没有正确的连接到当前的数据库的SGA。
参数文件
参数文件里包含数据库初始化参数,用于设置数据库实例和数据库的运行特征及使用限制。
oracle支持两种类型的参数文件,oracle按照参数文件的设定启动实例并打开数据库
initorcl.ora是实例的文本参数文件 文本型必须通过手工修改
spfileorcl.ora是实例的服务器参数文件,是默认启动文件 二进制型通过alter system命令修改
pfile 文本型,通常命名为initSID.ora,pfile并不一定存在,可以手动创建,需要查看参数文件内容时,可以通过创建一个文本型的。因为spfile二进制的不能直接查看。过程如下
sqlplus / as sysdba
SQL> create pfile from spfile;
File created.
生成的文件为initSID.ora在ORACLE_HOME/dbs目录下
也可以用 create spfile from pfile,二者可以相互转化。
spfile 二进制,通常命名为spfileSID.ora。
如何判断数据库启动是使用spfile还是pfile初始化文件.可以用下方法,默认是spfile
show parameter spfile
注意事项
可以这样用,startup pfile=$ORACLE_HOME/dbs/initorcl.ora
但不可以这样用,startup spfile=$ORACLE_HOME/dbs/spfileorcl.ora
虽然可以显式指定具体pfile作为启动数据库的参数文件,但这里需要注意的是,不可以显式指定某个spfile作为启动的参数文件。
下面的用法是不正确的。
SQL> startup spfile=$ORACLE_HOME/dbs/spfilefgy.ora
SP2-0714: invalid combination of STARTUP options
错误提示:startup命令后面跟随的选项不正确。原因很简单,spfile作为系统参数文件是在启动过程中自动识别到的,其命名规则也是固定的。因此请不要尝试显式的去使用spfile启动数据库。
此时,如果我们显式的使用pfile是可以完成数据库的启动。
启动过程:拿到了oracle_sid,oracle_home,参数文件,然后启动,挂载,打开
启动实例:启动到nomount 状态,这个阶段数据库读取参数文件(spfile/pfile)文件中的参数,启动数据库实例。
初始化参数文件默认位置在 $ORACLE_HOME/dbs 目录下,
在提交startup命令之后,ORACLE_HOME/dbs目录下Oracle会自动按照如下的顺序查找参数文件完成数据库的启动。
1)spfile$ORACLE_SID.ora
2)spfile.ora
3)init$ORACLE_SID.ora
这一阶段主要是指定控制文件及数据库实例名,分配系统全局区,启动后台进程,打开alertSID.log文件和跟踪文件。
挂载数据库:Mount数据库的过程是读参数文件中描述的控制文件,校验控制文件的正确性,将控制文件的内容读入到内存,mount是挂接的意思,是操作系统中的概念.一旦mount之后,就是将一个没有意义的实例和一个数据库发生了联系.因为实例是空壳.没有任何数据库和该实例发生关系,我们可以理解为实例是水泵,放到哪个水塘里就会抽取哪里的数据,实例是通用的.mount的意思是将一个通用的水泵放入到指定的水塘.
打开数据库:Alter database open;
读控制文件中描述的数据文件
验证数据文件的一致性,如果不一致,使用日志文件将数据库文件恢复到一致的状态.
数据库open后,普通用户才可以访问数据库
用户的表才为可见
我们现在回想一下数据库启动的三个台阶,我们先读的是参数文件,参数文件可以由我们来编写.读完参数
文件后又读了控制文件,控制文件描述了数据文件和日志文件的信息,如果控制文件丢失可以重新建立,最
后是读数据文件.数据文件里才存放了我们的数据.数据库将启动分为三个台阶,目的是我们可以准确的知
道哪里有问题,迅速的排除.有点象老鼠拖木钎,大头在后面.由最开始的一个1k的参数文件,最后到几个t
的大型数据库.当我们只打startup而不加任何参数的时候.默认是到open,等于startup open;
第五实战演练
正常输出
sqlplus / as sysdba
startup nomount
select instance_name,status from v$instance;
show parameter pfile
select value from v$spparameter where name='control_files';
alter database mount;
select instance_name,status from v$instance;
select OPEN_MODE from v$database;
alter database open;
select instance_name,status from v$instance;
select OPEN_MODE from v$database;
select name from v$controlfile;
shutdown immediate
异常输出
模拟参数文件丢失或损坏,直接
rm spfilewode.ora
模拟控制文件丢失或损坏,直接
rm control01.ctl
两个控制文件缺一不可,而且还要一样,否则数据库不能启动
模拟数据文件的丢失或损坏,直接
正常启动关闭输出
[oracle@db dbs]$ ll
total 36
-rw-rw----. 1 oracle oinstall 1544 Oct 10 15:29 hc_orcl.dat
-rw-rw----. 1 oracle oinstall 1544 Oct 22 14:45 hc_wode.dat
-rw-r--r--. 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-r-----. 1 oracle oinstall 24 Oct 10 15:27 lkORCL
-rw-r-----. 1 oracle oinstall 24 Oct 17 20:31 lkWODE
-rw-r-----. 1 oracle oinstall 1536 Oct 10 15:29 orapworcl
-rw-r-----. 1 oracle oinstall 1536 Oct 17 20:53 orapwwode
-rw-r-----. 1 oracle oinstall 2560 Oct 19 15:35 spfileorcl.ora
-rw-r-----. 1 oracle oinstall 2560 Oct 22 14:45 spfilewode.ora
[oracle@db dbs]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat Oct 22 14:46:14 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL> startup nomount
ORACLE instance started. Total System Global Area 4142166016 bytes
Fixed Size 2259760 bytes
Variable Size 2348811472 bytes
Database Buffers 1778384896 bytes
Redo Buffers 12709888 bytes
SQL> select instance_name,status from v$instance; INSTANCE_NAME STATUS
---------------- ------------
wode STARTED SQL> show parameter pfile NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0
/dbhome_1/dbs/spfilewode.ora
SQL> select value from v$spparameter where name='control_files'; VALUE
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/wode/control01.ctl
/u01/app/oracle/fast_recovery_area/wode/control02.ctl SQL> alter database mount; Database altered. SQL> select instance_name,status from v$instance; INSTANCE_NAME STATUS
---------------- ------------
wode MOUNTED SQL> select OPEN_MODE from v$database; OPEN_MODE
--------------------
MOUNTED SQL> alter database open; Database altered. SQL> select OPEN_MODE from v$database; OPEN_MODE
--------------------
READ WRITE SQL> select instance_name,status from v$instance; INSTANCE_NAME STATUS
---------------- ------------
wode OPEN SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down. 异常输出 如果参数文件损坏或丢失,可以从下面的地方复制一个到dbs目录下,并重命名为initSID.ora
[oracle@db dbs]$ rm -rf spfilewode.ora
下面这个文件本身是文本型的,所以即使重命名为spfilewode.ora,启动时也会报错
[oracle@db dbs]$ cp /u01/app/oracle/admin/wode/pfile/init.ora.9172016205213 spfilewode.ora
[oracle@db dbs]$ ll
total 36
-rw-rw----. 1 oracle oinstall 1544 Oct 10 15:29 hc_orcl.dat
-rw-rw----. 1 oracle oinstall 1544 Oct 22 14:23 hc_wode.dat
-rw-r--r--. 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-r-----. 1 oracle oinstall 24 Oct 10 15:27 lkORCL
-rw-r-----. 1 oracle oinstall 24 Oct 17 20:31 lkWODE
-rw-r-----. 1 oracle oinstall 1536 Oct 10 15:29 orapworcl
-rw-r-----. 1 oracle oinstall 1536 Oct 17 20:53 orapwwode
-rw-r-----. 1 oracle oinstall 2560 Oct 19 15:35 spfileorcl.ora
-rw-r-----. 1 oracle oinstall 1635 Oct 22 14:24 spfilewode.ora
[oracle@db dbs]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat Oct 22 14:24:43 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL> startup nomount
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initwode.ora'
SQL> quit
Disconnected
[oracle@db dbs]$ mv spfilewode.ora initwode.ora
[oracle@db dbs]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat Oct 22 14:25:24 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL> startup
ORACLE instance started. Total System Global Area 4142166016 bytes
Fixed Size 2259760 bytes
Variable Size 2248148176 bytes
Database Buffers 1879048192 bytes
Redo Buffers 12709888 bytes
Database mounted.
Database opened.
SQL> show parameter pfile NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
SQL> create spfile from pfile; File created. SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@db dbs]$ ll
total 40
-rw-rw----. 1 oracle oinstall 1544 Oct 10 15:29 hc_orcl.dat
-rw-rw----. 1 oracle oinstall 1544 Oct 22 15:01 hc_wode.dat
-rw-r--r--. 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-r-----. 1 oracle oinstall 1635 Oct 22 14:59 initwode.ora
-rw-r-----. 1 oracle oinstall 24 Oct 10 15:27 lkORCL
-rw-r-----. 1 oracle oinstall 24 Oct 17 20:31 lkWODE
-rw-r-----. 1 oracle oinstall 1536 Oct 10 15:29 orapworcl
-rw-r-----. 1 oracle oinstall 1536 Oct 17 20:53 orapwwode
-rw-r-----. 1 oracle oinstall 2560 Oct 19 15:35 spfileorcl.ora
-rw-r-----. 1 oracle oinstall 2560 Oct 22 15:01 spfilewode.ora
[oracle@db dbs]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat Oct 22 15:02:05 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL> startup
ORACLE instance started. Total System Global Area 4142166016 bytes
Fixed Size 2259760 bytes
Variable Size 2248148176 bytes
Database Buffers 1879048192 bytes
Redo Buffers 12709888 bytes
Database mounted.
Database opened.
SQL> show parameter pfile NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0
/dbhome_1/dbs/spfilewode.ora [oracle@db wode]$ rm -rf control01.ctl
[oracle@db wode]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat Oct 22 15:10:42 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL> startup
ORACLE instance started. Total System Global Area 4142166016 bytes
Fixed Size 2259760 bytes
Variable Size 2264925392 bytes
Database Buffers 1862270976 bytes
Redo Buffers 12709888 bytes
ORA-00205: error in identifying control file, check alert log for more info SQL> select OPEN_MODE from v$database;
select OPEN_MODE from v$database
*
ERROR at line 1:
ORA-01507: database not mounted SQL> select instance_name,status from v$instance; INSTANCE_NAME STATUS
---------------- ------------
wode STARTED SQL> select name from v$controlfile; NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/wode/control01.ctl
/u01/app/oracle/fast_recovery_area/wode/control02.ctl
oracle启动过程2的更多相关文章
- Oracle学习笔记--Oracle启动过程归纳整理
Oracle 启动过程分为nomount状态mount状态open状态 每个状态下Oracle都会进行不同的操作:1.nomount状态 在$ORACLE_HOME/dbs目录下寻找参数文件 参数文件 ...
- 转载:oracle 启动过程--oracle深入研究
Oracle数据库的启动-nomount状态深入解析 通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是 ...
- ORACLE 启动过程
1 STARTUP NOMOUNT 1.读取环境变量下dbs目录下的参数文件(spfile/pfile) 查找参数文件的顺序如上面列表的,读取优先级: spfilechongshi.ora > ...
- oracle启动过程
Oracle 的启动需要经历四个状态,SHUTDOWN .NOMOUNT .MOUNT .OPEN. SHUTDOWN状态 ...
- Oracle 数据库启动过程
一 启动数据库 Oracle启动过程涉及几种模式,这些模式涉及不同的文件,每个状态下数据库做不同的事情,同时这些模式适用于不同的维护需求,主要的模式有三种:NOMOUNT.MOUNT.OPEN. 1 ...
- ORA-01262,oracle启动报错,及Oracle启动原理
错误状态: SQL> startup ORA-01261: Parameter db_recovery_file_dest destination string cannot be transl ...
- Oracle数据库体系结构、启动过程、关闭过程
一.Oracle数据库体系结构体系结构由下面组件组成:1.Oracle服务器(Server):由数据库实例和数据库文件组成,另外在用户建立与服务器的连接时启动服务器进程并分配PGA(程序全局区) (1 ...
- oracle的启动过程(不分模式启动)
Oracle数据库的完整启动过程包含以下3个步骤: 简单地说,就是:启动实例-->加载数据库-->打开数据库. -------------------------------------- ...
- oracle参数文件与启动过程
oracle随系统启动而启动 cs65-64桌面版orcle-11.2.0.4 启动监听器,后台进程,OEM. 注意: 如果只做一和三,只能启动后台进程,监听器不启动,如果只做二和三,只能启动监听器, ...
随机推荐
- python Beautiful Soup 采集it books pdf,免费下载
http://www.allitebooks.org/ 是我见过最良心的网站,所有书籍免费下载 周末无聊,尝试采集此站所有Pdf书籍. 采用技术 python3.5 Beautiful soup 分享 ...
- 《基于Scyther的秘钥建立协议设计》-------摘抄整理
本篇论文额主要创新点: 利用Scyther软件,通过对一个不安全的秘钥建立协议逐步添加并验证安全属性,最终建立一个安全的秘钥建立协议. 通过形式化分析软件设计秘钥建立协议课可以提高协议设计效率,减 ...
- 如何使用Metasploit进行汽车安全性测试
前言 针对汽车的攻击和入侵是当前最前沿的领域和最热门的话题之一.随着自动驾驶汽车技术的发展,在未来这个领域将变得更加重要.作为汽车黑客快速发展的一部分,我最喜欢的黑客工具之一Metasploit也开发 ...
- Map集合中get不存在的key值
返回的值是null 测试代码 import java.util.HashMap; import java.util.Map; public class Test { public static voi ...
- idou老师教你学Istio11 : 如何用Istio实现流量熔断
在之前的最佳实践中,已经带大家通过一系列的实践任务领略了Istio的无穷魅力.今天,将向大家介绍如何用Istio实现流量熔断. 熔断机制是创建弹性微服务应用程序的重要模式.熔断可以帮助您自由控制故障影 ...
- ubuntu---记录. opencv3.4.7
一.下载 https://github.com/opencv/opencv/archive/3.4.7.zip wget -c https://github.com/opencv/opencv/arc ...
- 深度解析Word2vec
Word2vec 本质上是一种降维操作--把词语从 one-hot encoder 形式的表示降维到 Word2vec 形式的表示,即Distributed Representation.也就是,通过 ...
- JAVA遇见HTML——JSP篇(JSP状态管理)
案例:Cookie在登录中的应用 URL编码与解码的工具类解决中文乱码的问题,这个工具类在java.net.*包里 编码:URLEncoder.encode(String s,String enc)/ ...
- RHEL7-RHCE培训系列教程,让您零基础入门Linux运维
本教程是旨在帮助那些刚入门IT行业或计划从事IT行业的初学者(包括开发人员和运维人员,以及想要在Linux系统维护上提升自己的网络管理员),0基础入门Linux运维,完整学习完成本系列课程相当于培训机 ...
- python集合以及编码初识
一.集合 set 集合是无序的,天然能去重,是可变的.例:s = {1,2,3,4,5} s = {} s1 = {1} print(type(s)) # 空{}就是字典 print(type(s1 ...