• 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环境)。

  • 相关阅读:
    Hadoop 3.1.1
    java乐观锁和悲观锁
    git push时提示The authenticity of host 'github.com (52.74.223.119)' can't be established.
    github 提交使用git commit,报错Please tell me who you are
    Mac adb 提示 command not found. 解决办法
    Mac系统下安卓使用uiautomator配置SDK及真机环境配置
    python随笔:启动django报错
    ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/Django-1.11.23.dist-info' Consider using the `--user` option or check the
    Python中安装bs4后,pycharm依然报错ModuleNotFoundError: No module named 'bs4'
    Python中__init__和self的意义和作用
  • 原文地址:https://www.cnblogs.com/zmc60/p/16387206.html
Copyright © 2020-2023  润新知