设为首页收藏本站
查看: 108|回复: 0

[PHP] 深入解析Oracle数据库

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2018-7-3 21:41:00 | 显示全部楼层 |阅读模式
    深入解析Oracle数据库,数据库的启动与关闭,控制文件与数据库初始化

      数据库的启动:
    nomount:Oracle首先寻找参数文件,然后根据参数文件中的设置,创建实例,分配内存,启动后台进程。
    mount:oracle可以从参数文件中获得控制文件的位置信息,然后找到控制文件,并且根据控制文件中记录的数据文件位置进行数据文件的存在性判断。
    open:oracle将根据控制文件中 记录的信息,找到数据文件、日志文件的位置,然后进行检查点及完整性检查。如果不存在问题就可以启动数据库,如果存在不一致或文件丢失则需要进行恢复。oracle进行的检查中包括以下两项:
    第一次,检查数据文件头中的检查点计数(checkpoint cnt)是否和控制文件中的检查点计数(checkpoint cnt)一致。
    第二次,检查数据文件的开始(system change number)scn和控制文件中记录的该文件的结束(system change number)scn是否一致。
    数据库的关闭:
    close:注意close数据库仅允许在没有连接的情况下进行,否则可能遇到ORA-01093错误。
    dismount:
    shutdown:
    几种关闭方式的对比: shutdown normal:任何新的连接都将不再允许连到数据库,但是在数据库关闭之前,oracle需要等到当前连接的所有用户都从数据库中退出。采用这种方式闭关数据库,在下一次启动时不需要进行任何的实例恢复。
    shutdown immediate:当前正在被oracle处理的事务立即中断,未提交的事务将全部回滚,系统不等待连接到数据库的用户退出,强制断开所有的连接用户。然后执行检查点,将变更数据全部写回数据文件,关闭数据库。使用这种方式关闭数据库,在下次启动数据库时不需要进行实例恢复,是一种安全的数据库关闭方式。
    shutdown transactional:数据库不再允许建立新的连接,禁止新事务的进行,,但是允许当前活动事务执行完毕。在所有活动的事务执行完后,数据库将与shutdown immediate同样的方式关闭数据库。
    shutdown abort:数据库会立即终止所有用户连接、中断所有事务、立即关闭数据库,未完成事务不会回滚,数据库也不会执行检查点,在下次启动时,数据库必须执行实例恢复。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表