zoukankan      html  css  js  c++  java
  • Oracle的启动过程

    Oracle的启动过程详解

    Oracle的启动过程共经历四个阶段:

      shutdownnomountmountopen

    shutdown
    nomount过程:

                          读初始参数文件
                         
    分配物理内存
                         
    启动后台进程
                         
    定位到控制文件
                         
    打开/alert文件
       nomount
    过程可以访问的动态性能视图:v$parameter,v$sga,v$option,v$process,v$version,v$instance
    nomount
    mount过程:

                          打开控制文件
                      
    确认 database的结构信息
       mount
    过程可以访问的动态性能视图: v$thread,v$controlfile,v$database,v$datafile,v$datafile_header,v$logfile
      
    以下任务必须在mount状态下进行:

                               命名数据文件
                              
    启用和禁用重作日志归档选项
                              
    执行完全数据库恢复
    mount
    open过程:

            打开数据文件
                   
    打开重做日志文件
    最后阶段中,oracle服务器验证所有数据文件和重做日志文件是否可以打开,并检查数据库的一致性,如果需要,smon进程会启动例程恢复。

    自上而下:

    shutdown

    nomount读取初始化参数,并且分配物理内存,通过初始化参 数定位到control file,后台进程启动,写alter文 件,如果alter文件不存在将创建它

    SQL> startup nomount
    ORACLE
    例 程已经启动。

    Total System Global Area 167772160 bytes
    Fixed Size                  1247900 bytes
    Variable Size              83887460 bytes
    Database Buffers           79691776 bytes
    Redo Buffers                2945024 bytes

    altert文件中内容:

    Fri Dec 28 11:34:06 2007
    Starting ORACLE instance (normal)
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    Picked latch-free SCN scheme 2
    Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST
    Autotune of undo retention is turned on.
    IMODE=BR
    ILAT =18
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    ksdpec: called for event 13740 prior to event group initialization
    Starting up ORACLE RDBMS Version: 10.2.0.1.0.
    System parameters with non-default values:
    processes                = 150
    __shared_pool_size       = 75497472
    __large_pool_size        = 4194304
    __java_pool_size         = 4194304
    __streams_pool_size      = 0
    spfile                   = E:\ORACLE\PRODUCT\10.2.0\DB_2\DBS\SPFILEORCL.ORA
    sga_target               = 167772160
    control_files            = E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL, E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL, E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
    db_block_size            = 8192
    __db_cache_size          = 79691776
    compatible               = 10.2.0.1.0
    db_file_multiblock_read_count= 16
    db_recovery_file_dest    = E:\oracle\product\10.2.0/flash_recovery_area
    db_recovery_file_dest_size= 2147483648
    undo_management          = AUTO
    undo_tablespace          = UNDOTBS1
    remote_login_passwordfile= EXCLUSIVE
    db_domain                =
    dispatchers              = (PROTOCOL=TCP) (SERVICE=orclXDB)
    job_queue_processes      = 10
    audit_file_dest          = E:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\ADUMP
    background_dump_dest     = E:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\BDUMP
    user_dump_dest           = E:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP
    core_dump_dest           = E:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\CDUMP
    db_name                  = orcl
    open_cursors             = 300
    pga_aggregate_target     = 16777216
    PMON started with pid=2, OS id=3280
    PSP0 started with pid=3, OS id=2972
    MMAN started with pid=4, OS id=2280
    DBW0 started with pid=5, OS id=828
    LGWR started with pid=6, OS id=1936
    CKPT started with pid=7, OS id=3844
    SMON started with pid=8, OS id=596
    RECO started with pid=9, OS id=3252
    CJQ0 started with pid=10, OS id=1932
    MMON started with pid=11, OS id=3788
    Fri Dec 28 11:34:17 2007
    starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
    MMNL started with pid=12, OS id=928
    Fri Dec 28 11:34:17 2007
    starting up 1 shared server(s) ...

    nomount状态:
       
    可以访问到实例

    SQL> select * from v$instance;

    INSTANCE_NUMBER              INSTANCE_NAME         HOST_NAME                      
    --------------- -------------------------------- -------------------------------
           1                      orcl                 ORACLE10G          

                              

         可以访问到后台进程

    select * from v$bgprocess;

         可以访问到内存结构

       SQL> select * from v$sga;

    NAME                                          VALUE
    ---------------------------------------- ----------
    Fixed Size                                  1247900
    Variable Size                              83887460
    Database Buffers                           79691776
    Redo Buffers                                2945024      

       但不可以访问database结构

    SQL> select * from v$database;
    select * from v$database
                  *
    1 行出现错误
    :
    ORA-01507: ??????

    mount读并打开控制文件,并确认到database的结构信息

           SQL> alter database mount
               2 /

           数据库已更改。

           SQL> select * from v$database;

          DBID NAME      CREATED        RESETLOGS_CHANGE# RESETLOGS_TIME PRIOR_RESETLOGS_CHANGE# PRIOR_RESE
    ---------- --------- -------------- ----------------- --------------
    1170053590 ORCL      25-12? -07                534907 25-12? -07                           1 30-8? -05     ARCHIVELOG         

         

    可以找到有什么样的表空间

    SQL> select * from v$tablespace;

           TS# NAME                           INC BIG FLA ENC
    ---------- ------------------------------ --- --- --- ---
             0 SYSTEM                         YES NO YES
             1 UNDOTBS1                       YES NO YES
             2 SYSAUX                         YES NO YES
             4 USERS                          YES NO YES
             3 TEMP                           NO NO YES
             6 EXAMPLE                        YES NO YES

    已选择6行。

    有什么样的数据文件组成:

    SQL> select * from v$datafile
    2 /


    FILE# CREATION_CHANGE# CREATION_TIME         TS#     RFILE# STATUS ENABLED    CHECKPOINT_CHANGE# CHECK
    ------- ---------------- -------------- ---------- ---------- ------- ---------- ----------------
          1                9 30-8? -05              0          1 SYSTEM READ WRITE             777989 28-12? -07      
          2           532340 30-8? -05              1          2 ONLINE READ WRITE             777989 28-12? -07      
          3             6100 30-8? -05              2          3 ONLINE READ WRITE             777989 28-12? -07      
          4             9769 30-8? -05              4          4 ONLINE READ WRITE             777989 28-12? -07      
          5           559801 25-12? -07              6          5 ONLINE READ WRITE             777989 28-12? -07      

    有什么样的日志文件组 成

    SQL> select * from v$logfile;
    行将被截断


        GROUP# STATUS TYPE    MEMBER
    ---------- ------- ------- ----------------------------------------------------------
             3         ONLINE E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
             2         ONLINE E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
             1         ONLINE E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG

    在这个状态用户表还不能打开

    open所有文件被打开,并确认database状态

    SQL> alter database open;

    数据库已更改。

  • 相关阅读:
    关于导出Excel表中存在部门或用户数据权限问题
    进阶之路005 增删改查/数据导入导出之导出功能
    进阶之路004 增删改查/数据导入导出之查询功能
    进阶之路003 增删改查/数据导入导出之修改功能
    进阶之路002 增删改查/数据导入导出之删除功能
    进阶之路001 增删改查/数据导入导出之新增功能
    springboot常见注解 2020-01-19
    学习设计模式
    java并发
    java并发
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7170458.html
Copyright © 2011-2022 走看看