Oracle数据库体系结构、启动过程、关闭过程
一、Oracle数据库体系结构
体系结构由下面组件组成:
1、Oracle服务器(Server):由数据库实例和数据库文件组成,另外在用户建立与服务器的连接时启动服务器进程并分配PGA(程序全局区)
(1)数据库实例(Instance)
数据库实例由一些内存区和后台进程组成。
(a)内存区:共享池、数据库高速缓存、重做日志缓存、流池以及其他可选内存区
(b)后台进程:系统监控进程(SMON)、进程监控(PMON)、数据库写进程(DBWR)、日志写进程(LGWR)、检验点进程(CKPT)、其他进程
(2)数据库文件
数据库文件由数据文件、控制文件、重做日志文件组成。
(a)数据文件:数据库中的实际数据
(b)控制文件:包含维护数据库和验证数据库完整性的信息,是二进制文件。
(c)重做日志文件:包含数据库发生变化的记录,在发生故障时用于数据恢复。
2、服务器进程
3、用户进程
4、参数文件
也称为数据库初始化文件,定义数据库实例的特性,包含为SGA中内存结构分配空间的参数。
分为pfile文件和spfile文件。
(a)pfile文件:文件名默认为init.ora,属于静态文件,可以使用文本编辑器编辑,修改后需要重启实例才生效。
(b)spfile文件:文件名默认为spfile<ORACLE_SID>.ora,属于二进制的动态文件,只能通过Oracle指令修改,修改后直接生效。
Oracle 11g默认使用spfile启动,也可以使用pfile文件启动数据库,如:startup pfile='d:\init_123.ora'
5、密码文件
授予用户启动和关闭数据库实例。
6、归档日志文件
二、数据库启动过程
启动过程涉及到三个状态:nomount、mount、open
1、nomount状态
只打开数据库实例。
使用startup nomount启动。
C:\Users\LC>sqlplus /nolog
SQL> connect /as sysdba
已连接。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 1686925312 bytes
Fixed Size 2176368 bytes
Variable Size 989858448 bytes
Database Buffers 687865856 bytes
Redo Buffers 7024640 bytes
SQL> select * from v$controlfile;
未选定行
SQL> show parameter control_files;
NAME TYPE VALUE
---------------------------------------------------------------------------------------------------------------
control_files string D:\APP\LC\ORADATA\TESTDB\CONTROL01.CTL, D:\APP\LC\FLASH_RECOVERY_AREA\TESTDB\CONTROL02.CTL
说明:
select * from v$controlfile;用于测试此时控制文件是否已打开。
show parameter control_files;获取控制文件的位置。
2、mount状态
根据参数文件中控制文件的位置找到并打开控制文件,读取控制文件中的各种参数信息,如数据文件和日志文件的位置等。
启动到mount状态有二种方式,一是使用指令startup mount直接启动到mount状态,二是在数据库是nomount状态时使用alter指令切换到mount状态。
SQL> alter database mount;
数据库已更改。
此时使用select * from v$controlfile;能查询到控制文件的信息。
但是此时数据库并没有打开,数据文件无法读取,例如查询表会出错。
3、open状态
将打开数据文件并进行一系列的检查工作,这些检查工作用于数据恢复;
启动到open状态有二种方式,一是使用指令startup(默认是open)或startup open直接启动到open状态,二是在数据库是nomount或mount状态时使用alter指令切换到open状态。在启动数据库时,可以执行startup直接启动数据库到open状态,这个过程仍然要经历上面三个状态。
SQL> alter database open;
数据库已更改。
三、数据库关闭过程
关闭过程和启动相反,经历了close、dismount、shutdown。
可以分步关闭,也可以直接关闭。
分步关闭:
1、close数据库
关闭数据文件、日志文件等。
SQL> alter database close;
数据库已更改。
2、dismount数据库
关闭控制文件。
SQL> alter database dismount;
数据库已更改。
3、shutdown数据库
关闭实例。
shutdown有4个参数:shutdown normal(默认)、shutdown immediate(推荐)、shutdown transactional、shutdown abort
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
另外,有一次测试中,shutdown immediate以后再startup 报错:监听程序当前无法识别连接描述符中请求的服务
关闭当前sqlplus窗口,在开始运行-> sqlplus / as sysdba -> startup
Oracle数据库体系结构、启动过程、关闭过程的更多相关文章
- Oracle数据库的启动和关闭
深刻理解Oracle数据库的启动和关闭 Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能. 一.启动和关闭Oracle数据库 对 ...
- Oracle数据库的启动与关闭
一.概述: Oracle数据库的启动分为启动数据库实例.装载数据库和打开数据库3个过程,对应数据库的3种模式. 启动数据库实例:根据数据库初始化参数文件中参数设置,在内存中为数据库分配SGA.PGA等 ...
- 深刻理解Oracle数据库的启动和关闭 .
Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能. 一.启动和关闭Oracle数据库 对于大多数Oracle DBA来说,启动和 ...
- Oracle数据库的启动和关闭实例
在开始了解oracle数据库的命令之前,先来看一个东西:SQL*PLUS(sqlplus) Oracle的sql*plus是与oracle进行交互的客户端工具.在sql*plus中,可以运行sql*p ...
- oracle数据库实例启动与关闭
区分数据库与实例:实例是指各种内存结构和服务进程,数据库是指基于磁盘存储的数据文件.控制文件.参数文件.日志文件和归档日志文件组成的物里文件集合. 数据库实例启动: startup [nomount ...
- oracle数据库的启动、关闭、连接
登陆数据库 方法一: $ sqlplus / as sysdba [oracle@dev /]$ sqlplus / as sysdba SQL*Plus: Release Production on ...
- DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)
2014-08-07 Created By BaoXinjian
- Linux——oracle数据库实例启动关闭(转)
-->Oracle 数据库实例启动关闭过程 --================================ [root@robinson ~]# su - oracle --查看未启动实例 ...
- Oracle日常运维操作总结-数据库的启动和关闭
下面是工作中对Oracle日常管理操作的一些总结,都是一些基本的oracle操作和SQL语句写法,在此梳理成手册,希望能帮助到初学者(如有梳理不准确之处,希望指出). 一.数据库的启动和关闭 1.1 ...
随机推荐
- python基础之元组、文件操作、编码、函数、变量
1.集合set 集合是无序的,不重复的,主要作用: 去重,把一个列表变成集合,就可以自动去重 关系测试,测试两组数据的交集,差集,并集等关系 操作例子如下: list_1 = [1,4,5,7,3,6 ...
- centos6.4 挂载新盘并移动mysql数据目录
1 centos 挂载新盘并格式化 以vmware workstation12 中安装的centos6. 虚拟机为例进行演示 关机,添加硬盘 开机,格式化硬盘,并挂载 通过命令查看硬盘 fdisk – ...
- Memcached,你懂的
一.Memcached简介 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网 ...
- ADO.NET、NHibernate和Entity Framework的比较
---原文地址:http://www.xuebuyuan.com/2162973.html 1,ADO.NET属于传统的数据访问工具,开发的时候需要我们手动去编写操作数据库的各种操作,当然性能也就不用 ...
- rosetta2014/2015安装时出现INCLUDE(keyerror)错误,解决。
错误: KeyError: 'INCLUDE' 使编译出错 解决方法: [usrname@host source]$ vim tools/build/site.settings 注释# "i ...
- React常用的API说明
楼主刚开始学习react,感受到了他的博大精深,看到很多莫名的用法,不知云云,找了很多没有找到参考手册,只有在中文社区和react官方看了一些,收集了一些比较常用的API,有补充的可以楼下评论补充.后 ...
- windows批处理的介绍
扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件. 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命 ...
- iptables四个表与五个链间的处理关系
转载自:http://www.linuxidc.com/Linux/2012-08/67505.htm netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加.编辑 ...
- linux-bash shell学习
什么是shell?shell就相当于是计算机给我提供的一个操作系统的接口,这里说的bash shell是一种命令行方面的软件,提供给用户来操作系统.
- 依赖注入(DI)和Ninject,Ninject
我们所需要的是,在一个类内部,不通过创建对象的实例而能够获得某个实现了公开接口的对象的引用.这种“需要”,就称为DI(依赖注入,Dependency Injection),和所谓的IoC(控制反转,I ...