一、Oracle的启动和关闭原理

1、oracle启动的步骤分析

SQL> startup            --这是启动数据库的命令
ORACLE instance started.    --第一个阶段,启动实例,nomount的状态
Total System Global Area  608174080 bytes
Fixed Size            1268920 bytes
Variable Size          230687560 bytes
Database Buffers      373293056 bytes
Redo Buffers            2924544 bytes
Database mounted.        --第二个阶段,装载数据库,mount状态
Database opened.        --第三个阶段,打开数据库,open状态

2、oracle数据库的分阶段启动

2.1 将数据库启动到nomount状态,只是启动实例

SQL> startup nomount
ORACLE instance started.

Total System Global Area  608174080 bytes
Fixed Size            1268920 bytes
Variable Size          230687560 bytes
Database Buffers      373293056 bytes
Redo Buffers            2924544 bytes

原理:读取参数文件spfile文件
参数文件路径:$ORACLE_HOME/dbs
[oracle@oracle3 dbs]$ ll
总计 48
-rw-r----- 1 oracle oinstall  1544 06-05 15:47 hc_LAW.dat
-rw-rw---- 1 oracle oinstall  1544 06-09 09:25 hc_ORCL.dat
-rw-r--r-- 1 oracle oinstall 12920 2001-05-03 initdw.ora
-rw-r----- 1 oracle oinstall  8385 1998-09-11 init.ora
-rw-r----- 1 oracle oinstall    24 06-04 16:20 lkORCL
-rw-r----- 1 oracle oinstall  1536 06-04 16:23 orapwORCL
-rw-r----- 1 oracle oinstall  2560 06-09 09:23 spfileORCL.ora

spfileORCL.ora:就是oracle启动所要读取的参数文件

反解spfile文件

SQL> create pfile from spfile;

File created.

在$ORACLE_HOME/dbs下多了这个文件
-rw-r--r-- 1 oracle oinstall   987 06-09 09:28 initORCL.ora        --默认是没有这个文件的

在initORCL.ora文件中,关于内存组件的参数:
*.sga_target=605028352
*.pga_aggregate_target=201326592
ORCL.__db_cache_size=373293056
ORCL.__java_pool_size=33554432
ORCL.__large_pool_size=4194304
ORCL.__shared_pool_size=192937984
ORCL.__streams_pool_size=0

oracle的后台进程:
[oracle@oracle3 ~]$ ps aux | grep ora_
oracle    3473  0.0  0.6 694896 13096 ?        Ss   09:25   0:00 ora_pmon_ORCL
oracle    3475  0.0  0.5 694312 11372 ?        Ss   09:25   0:00 ora_psp0_ORCL
oracle    3477  0.0  1.0 694312 21756 ?        Ss   09:25   0:00 ora_mman_ORCL
oracle    3479  0.0  0.6 695992 13200 ?        Ss   09:25   0:00 ora_dbw0_ORCL
oracle    3481  0.0  0.5 694312 11420 ?        Ss   09:25   0:00 ora_lgwr_ORCL
oracle    3483  0.0  0.5 694312 12248 ?        Ss   09:25   0:00 ora_ckpt_ORCL
oracle    3485  0.0  0.5 694312 11436 ?        Ss   09:25   0:00 ora_smon_ORCL
oracle    3487  0.0  0.5 694312 11376 ?        Ss   09:25   0:00 ora_reco_ORCL
oracle    3489  0.0  0.5 694312 11396 ?        Ss   09:25   0:00 ora_cjq0_ORCL
oracle    3491  0.0  0.5 694312 11548 ?        Ss   09:25   0:00 ora_mmon_ORCL
oracle    3493  0.0  0.5 694312 11392 ?        Ss   09:25   0:00 ora_mmnl_ORCL
oracle    3495  0.0  0.5 694820 11460 ?        Ss   09:25   0:00 ora_d000_ORCL
oracle    3497  0.0  0.5 694308 10836 ?        Ss   09:25   0:00 ora_s000_ORCL

查看监听器的状态
Service "ORCL" has 1 instance(s).
  Instance "ORCL", status BLOCKED, has 1 handler(s) for this service...

nomount阶段使用场合:作数据库的维护操作,最经常做的就是控制文件的重建。

2.2 将数据库启动到mount状态,装载数据库

SQL> alter database mount;        --这是只有在nomount状态下才能够使用这条命令

Database altered.

SQL> startup mount;            --直接将数据库启动到mount状态,直接跳到第二阶段
ORACLE instance started.

Total System Global Area  608174080 bytes
Fixed Size            1268920 bytes
Variable Size          230687560 bytes
Database Buffers      373293056 bytes
Redo Buffers            2924544 bytes
Database mounted.

原理:读取控制文件

在参数文件中有关于控制文件的路径:
*.control_files='/u01/oracle/oradata/ORCL/control01.ctl','/u01/oracle/oradata/ORCL/control02.ctl','/u01/oracle/oradata/ORCL/control03.ctl'

[oracle@oracle3 ~]$ cd /u01/oracle/oradata/ORCL/
[oracle@oracle3 ORCL]$ ll *.ctl
-rw-r----- 1 oracle oinstall 7061504 06-09 09:53 control01.ctl
-rw-r----- 1 oracle oinstall 7061504 06-09 09:53 control02.ctl
-rw-r----- 1 oracle oinstall 7061504 06-09 09:53 control03.ctl

控制文件是一个二进制文件,想要读取的话需要将之trace出来,trace出来的文件放在/u01/oracle/admin/ORCL/udump

LOGFILE
  GROUP 1 '/u01/oracle/oradata/ORCL/redo01.log'  SIZE 50M,
  GROUP 2 '/u01/oracle/oradata/ORCL/redo02.log'  SIZE 50M,
  GROUP 3 '/u01/oracle/oradata/ORCL/redo03.log'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  '/u01/oracle/oradata/ORCL/system01.dbf',
  '/u01/oracle/oradata/ORCL/undotbs01.dbf',
  '/u01/oracle/oradata/ORCL/sysaux01.dbf',
  '/u01/oracle/oradata/ORCL/users01.dbf',
  '/u01/oracle/oradata/ORCL/example01.dbf'
CHARACTER SET ZHS16GBK
;
日志文件和数据文件的路径是存储在控制文件中的

注意:

实例跟数据库已经关联起来
   SYS用户能够访问数据库
   其他非SYS用户是无法访问数据库的
   SQL> conn system/orcl
   ERROR:
   ORA-01033: ORACLE initialization or shutdown in progress

Warning: You are no longer connected to ORACLE.

mount状态的使用场合:
   做数据库的恢复和数据的迁移

2.3 打开数据库
 
SQL> alter database open;    --这里是在mount状态下才能使用这条命令

Database altered.

SQL> startup            --直接将数据库打开,直接三级跳
ORACLE instance started.

Total System Global Area  608174080 bytes
Fixed Size            1268920 bytes
Variable Size          230687560 bytes
Database Buffers      373293056 bytes
Redo Buffers            2924544 bytes
Database mounted.
Database opened.

转载于:https://blog.51cto.com/fengsonglin/1615213

oracle的启动与关闭原理-数据路的分阶段启动相关推荐

  1. oracle 开始一个事务,oracle的启动与关闭原理-事务commit或者rollback

    oracle的启动与关闭原理-事务commit或者rollback 4.事务 4.1事务的概念 从第一个DML语句开始执行,以rollback或者commit为结束标记,之前所有的DML操作(inse ...

  2. centos 中svn服务的启动、关闭、重启, 以及添加开机启动

    CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Linux标准 ...

  3. oracle不能关闭,Oracle shutdown immediate无法关闭数据库解决方法

    在测试服务器上使用shutdown immediate命令关闭数据库时,长时间无法关闭数据库,如下所示 1: [oracle@DB-Server admin]$ sqlplus / as sysdba ...

  4. mysql启动与关闭(手动与自动)

    手动管理mysql的启动与关闭 [root@mysql ~]# service mysql start --手动启动mysql Starting MySQL. SUCCESS! [root@mysql ...

  5. mysql启动、关闭与登录

    按照上述三篇随笔中的方法安装mysql,其启动.关闭和登录方法如下. mysql启动基本原理:/etc/init.d/mysqld是一个shell启动脚本,启动后最终会调用mysql\bin\mysq ...

  6. 【docker】 docker-server启动重启关闭

    [docker] docker-server启动重启关闭 1.背景 2.docker-server启动 3.docker-server重启 4.docker-server关闭 1.背景 docker官 ...

  7. Oracle 原理: 11g的启动和关闭

    1.Oracle 11g启动中,读取参数文件的顺序. 9i之前,只有静态参数文件pfile,9i开始有了动态参数文件spfile,优先使用动态参数文件.查找参数文件路径可以在sql_plus查看: s ...

  8. Oracle 11g-oracle 启动与关闭

    Oracle 11g-oracle 启动与关闭 Target: 1.理解Oracle-11g启动中读取参数文件的顺序: 2.理解Oracle的四种状态: 3.掌握状态变换的方法. 1.启动中读取参数文 ...

  9. oracle的quit命令,Oracle的启动和关闭

    Oracle数据库的启用和关闭需要DBA权限,本文介绍的全部操作由sysdba来执行. 在运行数据库实例的操作系统的shell里执行以下命令就可以获得sysdba权限. sqlplus / as sy ...

  10. oracle数据库从关闭到启动,Oracle数据库的启动和关闭详细过程

    一.数据库打开 startup数据库正常启动 1.startup nomount 启动 Oracle DB 实例:NOMOUNT ,创建sga,创建了alert日志,用于create db,creat ...

最新文章

  1. Newtonsoft.Json文件错误
  2. Part2_2 Bs4常见操作
  3. java学习笔记3--类与对象的基础
  4. MarkdownPad官方网站
  5. 人工智能会让工作环境变得更公平,还是更压抑?
  6. Delphi用ini文档实现界面无闪烁多语言转换
  7. 安装JavaFX Scene Builder 到Eclipse
  8. 创新方法(TRIZ)理论及应用
  9. 数据结构名词解释(考试没有,供参考)
  10. 多记,多问为什么,最古老的学习方法怎么能丢?!
  11. 《四 spring源码》spring的事务注解@Transactional 原理分析
  12. 通过pcm音频数据计算分贝
  13. 解析 DES 加密算法(C语言):
  14. 凑个热闹 谈谈网红沈大师
  15. input选择框样式修改与自定义
  16. 北京实时公交查询——Flutter 入坑实战
  17. 【Matlab】系统预定义变量——元胞数组与结构体
  18. c++/c/java 资源共享群
  19. android cpu负载 工具,【专家专栏】Android性能测试之CPU
  20. Android存储访问框架的使用

热门文章

  1. spring+hibernate--直接修改数据库,再通过hibernate查询数据不变
  2. VS 2003/VS 2005 迅雷资源下载网址
  3. Mac使用磁盘工具创建(dmg)映像文件超详细步骤
  4. TeamViewer 收不到邮件该怎么办?
  5. CentOS7 Docker 安装 PHP,Mysql,phpmyadmin
  6. 网易云上线新版容器服务,开放更多Kubernetes功能
  7. centos7.3 防火墙设置
  8. CMSSDK功能介绍和关联用户系统
  9. MongoDB 和 mySql 的关系
  10. 软件发布!DOTA2统计学