一、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数据库体系结构、启动过程、关闭过程的更多相关文章

  1. Oracle数据库的启动和关闭

    深刻理解Oracle数据库的启动和关闭 Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能. 一.启动和关闭Oracle数据库 对 ...

  2. Oracle数据库的启动与关闭

    一.概述: Oracle数据库的启动分为启动数据库实例.装载数据库和打开数据库3个过程,对应数据库的3种模式. 启动数据库实例:根据数据库初始化参数文件中参数设置,在内存中为数据库分配SGA.PGA等 ...

  3. 深刻理解Oracle数据库的启动和关闭 .

    Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能. 一.启动和关闭Oracle数据库 对于大多数Oracle DBA来说,启动和 ...

  4. Oracle数据库的启动和关闭实例

    在开始了解oracle数据库的命令之前,先来看一个东西:SQL*PLUS(sqlplus) Oracle的sql*plus是与oracle进行交互的客户端工具.在sql*plus中,可以运行sql*p ...

  5. oracle数据库实例启动与关闭

    区分数据库与实例:实例是指各种内存结构和服务进程,数据库是指基于磁盘存储的数据文件.控制文件.参数文件.日志文件和归档日志文件组成的物里文件集合. 数据库实例启动: startup [nomount ...

  6. oracle数据库的启动、关闭、连接

    登陆数据库 方法一: $ sqlplus / as sysdba [oracle@dev /]$ sqlplus / as sysdba SQL*Plus: Release Production on ...

  7. DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)

    2014-08-07 Created By BaoXinjian

  8. Linux——oracle数据库实例启动关闭(转)

    -->Oracle 数据库实例启动关闭过程 --================================ [root@robinson ~]# su - oracle --查看未启动实例 ...

  9. Oracle日常运维操作总结-数据库的启动和关闭

    下面是工作中对Oracle日常管理操作的一些总结,都是一些基本的oracle操作和SQL语句写法,在此梳理成手册,希望能帮助到初学者(如有梳理不准确之处,希望指出). 一.数据库的启动和关闭 1.1 ...

随机推荐

  1. 【转】PHP ob_start() 函数介绍

    php ob_start 与 ob_end_flush() 是 php 的缓冲输出函数. ob_start([string output_callback])- 打开输出缓冲区,所有的输出信息不在直接 ...

  2. Vim命令

    多行缩进: shift+v >或者< 撤销: :u

  3. OpenCV Haartraining

    opencv_haartraining.exe -data xml -vec pos.vec -bg neg/neg.txt -w 20 -h 20 -mem 144 opencv_haartrain ...

  4. Android Studio Jni 环境搭建

    第一步:NDK环境搭建,点击下图红色框区域查看NDK下载和环境配置 安照正常情况是很慢的或者无法下载成功的,这个时候可以去下载NDK压缩包进行解压.下面给出两个下载地址 (1)官网:http://we ...

  5. JDBC代码模板

    import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; import org.ap ...

  6. C# ref、out、params与值类型参数修饰符

    1.值类型: static void Main(string[] args) { ; ; NumVal(a, b); Console.WriteLine("a={0},b={1}" ...

  7. python for MSSQLserver

    # -*- coding: utf-8 -*- '''python coded by written in 2016/8/31 Used for get win os log for each win ...

  8. UIFont的常用字体

    + (UIFont *)systemFontOfSize:(CGFloat)fontSize;   系统默认字体 + (UIFont *)boldSystemFontOfSize:(CGFloat)f ...

  9. [转]java二维码生成与解析代码实现

    转载地址:点击打开链接 二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大 ...

  10. python :开关,开灯关灯

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...