• 35.Oracle之mount阶段


      通常所说的Oracle server主要由两部分组成:Instance和Database, Instance是指一组后台进程和一块共享内存域Database是指存储在磁盘上的一组物理文件。通过instance和Database协同,Oracle数据库才能形成一个动态的可访问关系型数据库系统。

    1.Nomount 阶段

      这是启动的第一步,Oracle首先寻找参数文件,然后感觉参数文件的设置(内存分配等设置),创建instance实例,分配内存后,启动后台进程,也就是启动数据库实例的过程  

    SQL> startup nomount;
    ORACLE instance started.
    
    Total System Global Area 1653518336 bytes
    Fixed Size                  2253784 bytes
    Variable Size             486542376 bytes
    Database Buffers         1157627904 bytes
    Redo Buffers                7094272 bytes
    SQL>

    后台进程:

    oracle     6933      1  0 21:14 ?        00:00:00 ora_pmon_orcl
    oracle     6935      1  0 21:14 ?        00:00:00 ora_psp0_orcl
    oracle     6937      1  7 21:14 ?        00:00:04 ora_vktm_orcl
    oracle     6941      1  0 21:14 ?        00:00:00 ora_gen0_orcl
    oracle     6943      1  0 21:14 ?        00:00:00 ora_diag_orcl
    oracle     6945      1  0 21:14 ?        00:00:00 ora_dbrm_orcl
    oracle     6947      1  0 21:14 ?        00:00:00 ora_dia0_orcl
    oracle     6949      1  0 21:14 ?        00:00:00 ora_mman_orcl
    oracle     6951      1  0 21:14 ?        00:00:00 ora_dbw0_orcl
    oracle     6953      1  0 21:14 ?        00:00:00 ora_lgwr_orcl
    oracle     6955      1  0 21:14 ?        00:00:00 ora_ckpt_orcl
    oracle     6957      1  0 21:14 ?        00:00:00 ora_smon_orcl
    oracle     6959      1  0 21:14 ?        00:00:00 ora_reco_orcl
    oracle     6961      1  0 21:14 ?        00:00:00 ora_mmon_orcl
    oracle     6963      1  0 21:14 ?        00:00:00 ora_mmnl_orcl
    oracle     6965      1  0 21:14 ?        00:00:00 ora_d000_orcl
    oracle     6967      1  0 21:14 ?        00:00:00 ora_s000_orcl
    o

    在nomount节点都已经起来一些后台进程了,如上所示。

    这里可以通过视图v$process中pid(数据库中内部的进程号)和spid(操作系统进程号)进行关联,进行诊断分析。

    2.实例启动最小参数

      在参数文件中,通常需要最少的参数是DB_NAME,只要有这个参数,数据库实例(nomount)就能起来。

    3.ORACLE_SID

      oracle_sid就是oracle system IDentifier的缩写,在oracle系统中,oracle_sid以环境变量的形式出现,当oracle实例启动时,在操作系统上fork的进程就依据这个oracle_sid来创建,这就是它的作用。

    4.INTANCE_NAME

      oracle数据库内部存在一个初始化参数instance_name,用于标示数据库实例的名称,其缺省值通常就是oracle_sid,但是初始化参数instance_name和oracle_sid可以不同,不同的实例可以拥有相同的instance_name

      在同一个ORACLE_HONE下,只要ORACLE_SID不同,数据库不校验instance_name参数,通过简单的参数文件复制,就可以在同一台服务器上创建多个具有相同instance_name的实例,因此,在同一台主机上可以启动多个实例,ORCLE_SID不同,但是拥有了相同的instance_name,

    5.DB_NAME

      相较于instance_name参数来说,DB_NAME代表了实例即将挂载的数据库名称。关系到具体的物理文件。通常缺省的数据库Instance_name和db_name可以设置相同(在rac下,由于多个实例对应一个数据库,所以instance_name和DB_name不同)

    结论:

      1. 一个实例可以mount并打开任何数据库,但是同一时间一个实例只能打开一个数据库

      2.一个数据库可以被多个实例所有mount并打开(rac环境)。

  • 相关阅读:
    JNDI
    在Tomcat上发布JNDI资源
    使用数据库连接池配置数据源
    JDBC连接数据库
    数据库中的一些概念
    线程池和数据库连接池
    springmvc学习指南 之---第25篇 Spring Bean有三种配置方式
    springmvc学习指南 之---第24篇 国际化问题
    深入刨析tomcat 之---第23篇 聊一下web容器的filter配置和defaultservet
    又一本springmvc学习指南 之---第22篇 springmvc 加载.xml文件的bean标签的过程
  • 原文地址:https://www.cnblogs.com/zmc60/p/16387206.html
Copyright © 2020-2023  润新知