zoukankan      html  css  js  c++  java
  • 教为学:Oracle 11g OCP之路(六):数据库启动与停止

    前言
    关于数据库启动和停止我们如果有所经验,总认为只有一句命令罢了。可是命令后面的的操作过程,如果量化形容,我看见过一本书用了100多页专门讲这个。
    我们只是讲一点点而已。
    启动
    我们眼里的数据库启动情况。
    详细的过程。从网上盗的图。
    1、shutdown->nomount
    这个过程中,sql plus做了一件事,启动实例,使实例的状态变成started。
    我们所要关注的一件事在startup nomount的过程中,数据库加载了一个文件。
    我们先查一下spfile。
    为了验证,数据库会加载这个文件,我们把这个文件挪走。
    为什么我们挪走的是spfileteid.ora而提示的确是initteid.ora,为什么?我们现在先创建这个文件。
    我们再把spfile挪走。启动
    启动到nomount成功。
    也就是说spfile和pfile只要存在一个,实例都是可以启动的。两者有什么区别?
    spfile内容截图:
    明显非纯文本文件,有乱码。
    pfile文件内容:
    teid.__db_cache_size=171966464
    teid.__java_pool_size=4194304
    teid.__large_pool_size=4194304
    teid.__oracle_base='F:\Oracle'#ORACLE_BASE set from environment
    teid.__pga_aggregate_target=41943040
    teid.__sga_target=314572800
    teid.__shared_io_pool_size=0
    teid.__shared_pool_size=125829120
    teid.__streams_pool_size=0
    *.audit_file_dest='F:\Oracle\admin\TEST\adump'
    *.audit_trail='db'
    *.compatible='11.2.0.0.0'
    *.control_files='F:\Oradata\TEST\control01.ctl','F:\Oracle\flash_recovery_area\TEST\control02.ctl'
    *.db_block_size=8192
    *.db_domain=''
    *.db_name='TEST'
    *.db_recovery_file_dest='F:\Oracle\flash_recovery_area'
    *.db_recovery_file_dest_size=5218762752
    *.diagnostic_dest='F:\Oracle'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=TEIDXDB)'
    *.nls_language='SIMPLIFIED CHINESE'
    *.nls_territory='CHINA'
    *.open_cursors=300
    *.pga_aggregate_target=41943040
    *.processes=150
    *.remote_login_passwordfile='EXCLUSIVE'
    *.sga_target=314572800
    *.undo_tablespace='UNDOTBS1'
    pfile是我们根据spfile创建的,意味着其实两者有着相同的作用,简单点说:动态参数修改以后会直接写入spfile之中,而不要像pfile一样,手动修改文本文档。
    spfile的修改:
    参数的种类分为:Database参数、system参数、session参数。
    其实我们更要搞懂的是静态参数和动态参数,它决定了我们该怎么修改。
    为什么会出现上面的场景。我们先得从静态属性和动态属性开始。
    静态属性不能直接修改,需要修改以后,重启服务器。
    动态属性可以直接修改,修改以后不需要重启服务器。
    我们在说说scope的几个值:
    spfile、memory、both。
    不难理解,一个修改到spfile里面,一个在内存中生效,最后那个就是两者都同时修改(不加参数的情况下如此)。
    静态参数先修改到spfile中,再重启生效,动态可以直接两边生效。
    create pfile from spfile;
    create pfile from memory;

    create spfile from pfile;
    create spfile from memory;
    我们稍微总结一下,这个过程可以说是系统通过pfile或者spfile把数据库的实例启动了。
    2、nomount->mount
    从shutdown到nomount,我们使用了spfile或者pfile。
    在pfile里面有这么句。我们可以通过这一句定位到控制文件。
    *.control_files='F:\Oradata\TEST\control01.ctl','F:\Oracle\flash_recovery_area\TEST\control02.ctl'
    这样我们就把Database改到mount状态。
    我们再说说,这一过程,发生了什么?
    简单点说:加载控制文件。
    我们再说说控制文件什么作用。
    a.数据库名称以及数据库创建时间
    b.所有数据文件和重做日志文件的名称和位置。
    c.表空间信息。
    d.offline数据文件信息。
    e.重做日志及归档日志信息等等,不说了。
    我们只要知道很多信息就好,这些分别信息代表什么,看得懂的就说一下,看不懂的就算了。
    这个状态的转变主要就是加载控制文件。
    3、mount->open
    根据控制文件的信息,加载数据库文件,加载日志文件,从而打开数据库。
    关闭
    关闭记住几条命令就行了。
    shutdown

    normal:不允许新连接;等待当前session结束;等待当前的事务结束;强制检查点并关闭文件。

    shutdown transational

    transactional:不允许新连接;不等待当前session结束;等待当前的事务结束;强制检查点并关闭文件。

    shutdown immediate

    immediate:不允许新连接;不等待当前session结束;不等待当前的事务结束;强制检查点并关闭文件。

    shutdown abort

    abort:不允许新连接;不等待当前session结束;不等待当前的事务结束;不强制检查点并关闭文件。

    结束语
    启动需要了解的是几个状态,了解几个文件,特别是spfile和pfile的关系。以及参数的设置,控制文件的作用。
    关闭要记住后两条命令。
    最后献上一篇很详细的文章。
    Oracle 数据库实例启动关闭过程:http://blog.csdn.net/robinson_0612/article/details/5542983
    我坚信初学者更习资料是自己亲手记录。
    我坚信最好的加明白初学者学习的困难在哪里。
    我坚信最好的学学习方法是自己动手。
    我坚信最好的检验方式就是能把自己所学到的东西转手教给别人。
                                     -----作者: 高鹏
  • 相关阅读:
    纹理加载和异步
    地板上创建批量小方块
    创建自定义几何体(以立方体为例)
    WTForms
    angular和vue的差别
    vuejs简单介绍特点
    angularjs简单介绍和特点
    flask重要点
    redis
    DRF之认证组件源码解析
  • 原文地址:https://www.cnblogs.com/jiaoweixue/p/3134699.html
Copyright © 2011-2022 走看看