Oracle数据库启动过程

2023-11-17

一、Oracle数据库的四种状态

Oracle数据库有四种状态:SHUTDOWN、NOMOUNT、MOUNT、OPEN.

二、Oracle数据库的启动过程详解

Oracle数据库启动主要包括三个过程:
(1) shutdown状态 ;= 数据库没有启动
(2)启动数据库到 NOMOUNT 状态;=(只是启动instance实例,尚未打开控制文件)= 启动后台进程+分配了内存
(3)启动数据库到 MOUNT 状态;=(加载控制文件)加载了 controlfile
(4)启动数据库到 OPEN 状态;=(执行控制文件,打开数据文件和redo日志文件)
在这里插入图片描述

三、执行 startup 命令,Oracle数据库会依次完成这三个过程;

另外,也可以通过手工命令依次进行:

1、数据库启动到NOMOUNT 状态

该状态查询不到控制文件和数据文件

SQL> startup nomount
ORACLE instance started.

Total System Global Area 3774873224 bytes
Fixed Size		    9141896 bytes
Variable Size		  788529152 bytes
Database Buffers	 2969567232 bytes
Redo Buffers		    7634944 bytes
SQL> select status from  v$instance;

STATUS
------------------------
STARTED

SQL> select status from  v$controlfile;

no rows selected

SQL> select status from  v$datafile;
select status from  v$datafile
                    *
ERROR at line 1:
ORA-01507: database not mounted


SQL> select status from  v$log;
select status from  v$log
                    *
ERROR at line 1:
ORA-01507: database not mounted

已启动实例进程

[oracle@rhel dbs]$ ps -ef |grep sanshi
oracle   126788      1  0 17:28 ?        00:00:00 ora_pmon_sanshi
oracle   126790      1  0 17:28 ?        00:00:00 ora_clmn_sanshi
oracle   126792      1  0 17:28 ?        00:00:00 ora_psp0_sanshi
oracle   126795      1  0 17:28 ?        00:00:01 ora_vktm_sanshi
oracle   126799      1  0 17:28 ?        00:00:00 ora_gen0_sanshi
oracle   126801      1  0 17:28 ?        00:00:00 ora_mman_sanshi
oracle   126805      1  0 17:28 ?        00:00:00 ora_gen1_sanshi
oracle   126808      1  0 17:28 ?        00:00:00 ora_diag_sanshi
oracle   126810      1  0 17:28 ?        00:00:00 ora_ofsd_sanshi
oracle   126813      1  0 17:28 ?        00:00:00 ora_dbrm_sanshi
oracle   126815      1  0 17:28 ?        00:00:00 ora_vkrm_sanshi
oracle   126817      1  0 17:28 ?        00:00:00 ora_svcb_sanshi
oracle   126819      1  0 17:28 ?        00:00:00 ora_pman_sanshi
oracle   126821      1  0 17:28 ?        00:00:00 ora_dia0_sanshi
oracle   126823      1  0 17:28 ?        00:00:00 ora_dbw0_sanshi
oracle   126825      1  0 17:28 ?        00:00:00 ora_lgwr_sanshi
oracle   126827      1  0 17:28 ?        00:00:00 ora_ckpt_sanshi
oracle   126829      1  0 17:28 ?        00:00:00 ora_lg00_sanshi
oracle   126831      1  0 17:28 ?        00:00:00 ora_smon_sanshi
oracle   126833      1  0 17:28 ?        00:00:00 ora_lg01_sanshi
oracle   126835      1  0 17:28 ?        00:00:00 ora_smco_sanshi
oracle   126837      1  0 17:28 ?        00:00:00 ora_reco_sanshi
oracle   126839      1  0 17:28 ?        00:00:00 ora_w000_sanshi
oracle   126841      1  0 17:28 ?        00:00:00 ora_lreg_sanshi
oracle   126843      1  0 17:28 ?        00:00:00 ora_w001_sanshi
oracle   126845      1  0 17:28 ?        00:00:00 ora_pxmn_sanshi
oracle   126849      1  0 17:28 ?        00:00:00 ora_mmon_sanshi
oracle   126851      1  0 17:28 ?        00:00:00 ora_mmnl_sanshi
oracle   126853      1  0 17:28 ?        00:00:00 ora_d000_sanshi
oracle   126855      1  0 17:28 ?        00:00:00 ora_s000_sanshi
oracle   126857      1  0 17:28 ?        00:00:00 ora_tmon_sanshi
oracle   126862      1  0 17:28 ?        00:00:00 ora_m000_sanshi
oracle   127023 121945  0 17:31 pts/0    00:00:00 grep --color=auto sanshi

2 、数据库启动到MOUNT 状态

[oracle@rhel dbs]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jul 5 17:32:25 2023
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> alter database mount;

Database altered.

实例处于mount状态,控制文件、数据文件已加载可查询

在这里插入代码片


SQL> select status from  v$controlfile;

STATUS
--------------



SQL> select status from  v$instance;

STATUS
------------------------
MOUNTED

SQL> select name from  v$controlfile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/SANSHI/control01.ctl
/u01/app/oracle/fast_recovery_area/SANSHI/control02.ctl

SQL> select name,status from  v$controlfile;

NAME
--------------------------------------------------------------------------------
STATUS
--------------
/u01/app/oracle/oradata/SANSHI/control01.ctl


/u01/app/oracle/fast_recovery_area/SANSHI/control02.ctl



SQL> select name,status from  v$datafile;

NAME
--------------------------------------------------------------------------------
STATUS
--------------
/u01/app/oracle/oradata/SANSHI/system01.dbf
SYSTEM

/u01/app/oracle/oradata/SANSHI/sysaux01.dbf
ONLINE

/u01/app/oracle/oradata/SANSHI/undotbs01.dbf
ONLINE


NAME
--------------------------------------------------------------------------------
STATUS
--------------
/u01/app/oracle/oradata/SANSHI/pdbseed/system01.dbf
SYSTEM

/u01/app/oracle/oradata/SANSHI/pdbseed/sysaux01.dbf
ONLINE

/u01/app/oracle/oradata/SANSHI/users01.dbf
ONLINE


NAME
--------------------------------------------------------------------------------
STATUS
--------------
/u01/app/oracle/oradata/SANSHI/pdbseed/undotbs01.dbf
ONLINE

/u01/app/oracle/oradata/SANSHI/pdb1/system01.dbf
SYSTEM

/u01/app/oracle/oradata/SANSHI/pdb1/sysaux01.dbf
ONLINE


NAME
--------------------------------------------------------------------------------
STATUS
--------------
/u01/app/oracle/oradata/SANSHI/pdb1/undotbs01.dbf
ONLINE

/u01/app/oracle/oradata/SANSHI/pdb1/users01.dbf
ONLINE

/u01/app/oracle/oradata/SANSHI/pdb2/system01.dbf
SYSTEM


NAME
--------------------------------------------------------------------------------
STATUS
--------------
/u01/app/oracle/oradata/SANSHI/pdb2/sysaux01.dbf
ONLINE

/u01/app/oracle/oradata/SANSHI/pdb2/undotbs01.dbf
ONLINE

/u01/app/oracle/oradata/SANSHI/pdb2/users01.dbf
ONLINE


NAME
--------------------------------------------------------------------------------
STATUS
--------------
/u01/app/oracle/oradata/SANSHI/pdb3/system01.dbf
SYSTEM

/u01/app/oracle/oradata/SANSHI/pdb3/sysaux01.dbf
ONLINE

/u01/app/oracle/oradata/SANSHI/pdb3/undotbs01.dbf
ONLINE


NAME
--------------------------------------------------------------------------------
STATUS
--------------
/u01/app/oracle/oradata/SANSHI/pdb3/users01.dbf
ONLINE


19 rows selected.

SQL> 

查看参数文件,存放在oracle_home目录

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
[oracle@rhel dbs]$ cd $ORACLE_HOME/dbs
[oracle@rhel dbs]$ ls
hc_sanshi.dat  init.ora  lkSANSHI  orapwsanshi  snapcf_sanshi.f  spfilesanshi.ora
[oracle@rhel dbs]$ ll
total 18308
-rw-rw---- 1 oracle oinstall     1544 Jul  5 17:33 hc_sanshi.dat
-rwxr-xr-x 1 oracle oinstall     3079 May 14  2015 init.ora
-rw-r----- 1 oracle oinstall       24 Jul  4 12:18 lkSANSHI
-rw-r----- 1 oracle oinstall     2048 Jul  4 12:20 orapwsanshi
-rw-r----- 1 oracle oinstall 18726912 Jul  4 12:49 snapcf_sanshi.f
-rw-r----- 1 oracle oinstall     3584 Jul  5 17:33 spfilesanshi.ora
[oracle@rhel dbs]$ 

查看控制文件,存放在oracle_base下的数据文件目录中

[oracle@rhel dbs]$ cd $ORACLE_BASE
[oracle@rhel oracle]$ LS
bash: LS: command not found...
Similar command is: 'ls'
[oracle@rhel oracle]$ ls
admin  audit  cfgtoollogs  checkpoints  diag  fast_recovery_area  oradata  product
[oracle@rhel oracle]$ cd oradata/
[oracle@rhel oradata]$ ls
SANSHI
[oracle@rhel oradata]$ cd SANSHI/
[oracle@rhel SANSHI]$ kls
bash: kls: command not found...
[oracle@rhel SANSHI]$ ls
control01.ctl  pdb2  pdbseed     redo02.log  sysaux01.dbf  temp01.dbf     users01.dbf
pdb1           pdb3  redo01.log  redo03.log  system01.dbf  undotbs01.dbf
[oracle@rhel SANSHI]$ pwd
/u01/app/oracle/oradata/SANSHI
[oracle@rhel SANSHI]$ ll
total 2649240
-rw-r----- 1 oracle oinstall  18726912 Jul  5 17:39 control01.ctl
drwxr-x--- 2 oracle oinstall       104 Jul  4 12:40 pdb1
drwxr-x--- 2 oracle oinstall       104 Jul  4 12:40 pdb2
drwxr-x--- 2 oracle oinstall       104 Jul  4 12:40 pdb3
drwxr-x--- 2 oracle oinstall       111 Jul  4 12:25 pdbseed
-rw-r----- 1 oracle oinstall 209715712 Jul  5 16:43 redo01.log
-rw-r----- 1 oracle oinstall 209715712 Jul  5 16:20 redo02.log
-rw-r----- 1 oracle oinstall 209715712 Jul  5 16:20 redo03.log
-rw-r----- 1 oracle oinstall 629153792 Jul  5 16:43 sysaux01.dbf
-rw-r----- 1 oracle oinstall 954212352 Jul  5 16:43 system01.dbf
-rw-r----- 1 oracle oinstall 138420224 Jul  4 22:01 temp01.dbf
-rw-r----- 1 oracle oinstall 351281152 Jul  5 16:43 undotbs01.dbf
-rw-r----- 1 oracle oinstall   5251072 Jul  5 16:43 users01.dbf
[oracle@rhel SANSHI]$ 

打开数据库

在状态mount下,无法查看表,数据库open状态可以查看表。

SQL> select status from  v$instance;

STATUS
------------------------
MOUNTED

SQL> desc tab;
ERROR:
ORA-01219: database or pluggable database not open: queries allowed on fixed
tables or views only


SQL> alter database open
  2  ;

Database altered.

SQL> desc tab;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 TNAME					   NOT NULL VARCHAR2(128)
 TABTYPE					    VARCHAR2(13)
 CLUSTERID					    NUMBER

SQL> 

shutdown关闭数据库

1、利用“shutdown immediate”命令执行某些清除工作后才关闭数据库;

SQL> shutdown immediate
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.

2、利用“shutdown abort”命令直接关闭数据库,会话会被终止。

SQL> shutdown abort
ORACLE instance shut down.
SQL> 

3、利用“shutdown normal”命令正常关闭数据库;

SQL> shutdown normal

4、shutdown transaction

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle数据库启动过程 的相关文章

  • 如何使用过程填充数据库

    我有大约 15 个不同的表 其中填充了不同的数据和不同的实体关系 我需要创建一个脚本 用这些表的内容填充我的数据库 脚本完成后 我使用 sqlplus 在 cmd 中运行它 然后使用 START文件路径 我有两个不同的 sql 文件 一个名
  • MySQL 相当于 ORACLES 的rank()

    Oracle 有 2 个函数 rank 和dense rank 我发现它们对于某些应用程序非常有用 我现在正在 mysql 中做一些事情 想知道他们是否有与这些相同的东西 没有什么直接等效的 但你可以用一些 不是非常有效的 自连接来伪造它
  • SQL 连接中的多个条件

    如何指定多个条件SQL加入 我知道A key B key除此之外是强制性的 以下对于指定多个条件是否正确SQL ON A key B key and or cond1 and or cond2 etc OR ON A key B key w
  • 什么时候空值在列中“安全”?

    设计数据库时是否存在允许列为空与 3nf 规范化的一般经验法则 我有一个表 其中的列主要由空值 85 组成 但表大小不超过 10K 记录 不是很大 它主要用于日志记录和记录保存 因此大多数事务将是插入和选择 而不是更新 我试图同时考虑性能和
  • Oracle ODP.Net 与实体框架 6 - 从表视图中选择时出现 ORA-00955

    我创建了两个应用程序 第一个使用 ODP Net 另一个没有实体 效果很好 static void Main string args OracleConnection con new OracleConnection using conne
  • 如何关闭 Oracle 密码过期功能?

    我正在使用 Oracle 进行开发 我经常用于重建数据库的引导帐户的密码已过期 如何永久关闭该用户 以及所有其他用户 的密码过期功能 我使用的是 Oracle 11g 默认情况下密码会过期 要更改 Oracle 中某个用户配置文件的密码过期
  • 在Oracle中,是否可以将以逗号分隔的非常大的字符串(clob)转换为具有更好性能的表

    我需要通过逗号分隔符将非常大的 clob 字符串转换为表 下面的函数需要很长时间 有没有返回表的快速函数 create or replace FUNCTION UDF STRSPLIT2 P STR IN CLOB P DELIM IN V
  • 了解 Mac 上的 Oracle Java

    我在 OS X 上使用 Java 很多很多年了 最近当 Apple 停止默认包含 Java 时 我放弃了操作系统并为我安装了它 当然是 Apple 的版本 现在我使用的是 OS X 10 8 并且需要安装 Java 7 因此我刚刚获得了 D
  • 如何使用 Hibernate 3.3.2GA 将 TIMESTAMP WITH TIME ZONE 映射到 Java 数据类型?

    如何映射 Oracle 列类型TIMESTAMP WITH TIME ZONE http download oracle com docs cd B19306 01 server 102 b14225 ch4datetime htm i10
  • 为什么我的层次结构查询显示重复记录?

    我的要求是找到一个月中所有过去的天数 以下是我的示例查询 CREATE TABLE custom date full sno NUMBER curr date DATE INSERT INTO custom date full VALUES
  • Oracle:PL/SQL 中查看值是否存在的最快方法:列表、VARRAY 或临时表

    UPDATE如果您想查看很长的原始问题 请查看编辑 这是问题的更清晰的简短版本 我需要看看是否GroupA 不总是GroupA 这会改变每个循环迭代 存在于大约 200 个组的 列表 数组 临时表 等等 中 如何存储这 200 个组完全由我
  • PL/SQL 触发器问题

    我正在尝试编写一个触发器来填充包含员工更新工资信息的表 我现在遇到一个无法解决的问题 这是要填充的表 drop table SalUpdates cascade constraints create table SalUpdates Sal
  • 相当于 Oracle 的 SQL*Plus 中 MySQL 的 \G

    在 Oracle 的 SQL Plus 中 SELECT 的结果以表格方式显示 有没有办法以键值方式显示一行 例如MySQL的 G option http slaptijack com software enabling vertical
  • 将行连接成 CLOB

    关于这个主题有很多类似的问题 但我找不到任何解决方案来考虑最终结果对于 varchar2 来说太大的任何问题 所以我想做的就是改变这一点 Column1 Column2 1 Hello 1 world 1 please help 2 Tha
  • SQL:两个没有完整列匹配的表的并集

    我有一个table A其中有一组列A1 A2和一个具有一组列的 table bB1 B2 碰巧的是A2 B1但其余列不匹配 也不应该匹配 我想附加表格 所以我使用UNION ALL 对于不匹配的列 我使用null as COLUMN NAM
  • 仅使用 SQL 中的 MAX 函数更新重复行

    我有一张这样的桌子 假设为了举例 NAME是一个唯一的标识符 NAME AGE VALUE Jack Under 65 3 Jack 66 74 5 John 66 74 7 John Over 75 9 Gill 25 35 11 Som
  • 用C++连接oracle数据库

    我正在寻找一种方法来连接到远程 Oracle 数据库并从 C 控制台应用程序中的表中读取一些数据 有人可以给我一些提示吗 谢谢 soci http soci sourceforge net http soci sourceforge net
  • 如何使用 EclipseLink 处理以 Oracle 类型作为输入或输出的 Oracle 存储过程调用

    我进行了概念验证 以了解使用 EclipseLink 调用存储过程的效率如何 我能够使用带有标量 原始数据类型 链接整数 varchar 等 的 EclispeLink 来调用 Oracle 存储过程 我想了解如何使用集合 Oracle 类
  • 如何在sql中提取周数

    我有一个 varchar2 类型的转换列 其中包含以下主菜 01 02 2012 01 03 2012 etc 我使用 to date 函数将其转换为另一列中的日期格式 这是我得到的格式 01 JAN 2012 03 APR 2012 当我
  • 在 BEFORE INSERT 触发器中使用 IF EXISTS (SELECT ...) (Oracle)

    我的代码不起作用 Oracle 告诉我创建触发器时出现构建错误 显然我无法获得有关构建错误的更准确信息 我以前确实没有做过很多SQL 所以我对语法不太熟悉 我有一种预感 Oracle 不喜欢我的 IF EXISTS SELECT THEN

随机推荐

  • Python -- Numpy:添加一列

    np insert 指定位置添加一列 a np arange 12 reshsape 3 4 print a array 0 1 2 3 4 5 6 7 8 9 10 11 b np ones 3 print b array 1 1 1 n
  • IDEA远程调试

    1 概述 原理 本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信 传递调试指令和调试信息 被调试程序的远程虚拟机 作为 Debug 服务端 监听 Debug 调试指令 jdwp是Java Debug Wire
  • 23062day4

    制作一个简易圆形时钟 头文件 ifndef WIDGET H define WIDGET H include
  • 大话水声通信技术---(BFSK仿真)

    在之前的理论篇中 笔者梳理了水声通信相关的理论知识体系 本次笔者给出了一套基于BFSK的水声通信系统 该系统已经在实际的硬件中得到了验证 通信声呐仿真BPSK方式 几点假设 1 基于射线声学理论 2 几何衰减按球面波传播衰减规律衰减 不考虑
  • python报错之paramiko.ssh_exception.SSHException: EOF during negotiation

    方案1 此方法引自https www cnblogs com lidq p 12030662 html 查找sftp server的位置 find name sftp server 然后查看ssh的配置文件 vim etc ssh sshd
  • matplotlib画二维分布图

    假设我们有一组二维数据 x y label 3 542485 1 977398 1 3 018896 2 556416 1 7 551510 1 580030 1 2 114999 0 004466 1 8 127113 1 274372
  • 51单片机—使用PWM对直流电机调速

    文章目录 什么是PWM PWM是怎么对直流电机进行调速的 通过定时器中断实现PWM调速 上代码 什么是PWM PWM 脉宽调制 是靠改变脉冲宽度来控制输出电压 通过改变周期来控制其输出频率 脉冲可以理解为是IO口的一次高低电平改变 PWM是
  • echarts坐标轴上的刻度竖着排列 并且超出隐藏

    首先 把坐标轴上的刻度竖着排列 大家第一反应肯定想到的是 echarts里的rotate属性 在xAxis里设置axisLabel rotate就搞定了 但是会发现这样垂直展示的话 可能不是很美观 所以就找到了格式器formatter 变成
  • docker构建部署node后端项目

    文章目录 简介 详细过程 1 将node项目打包成 tar 2 将node项目 tar打包成 tar gz 3 构建Dockerfile文件 4 执行命令打包镜像 简介 本次主要想记录一下docker部署node后端项目的过程 方便后面如果
  • CMU15-213 课程笔记 01-课程概览

    知识点 这门课的目的 深入理解当你执行代码时 计算机在做什么 LLDB 基于 LLVM 的命令行调试器 类似 GBD 内存引用 Bug typedef struct int a 2 double d struct t double fun
  • 如何确定一次完整的请求过程——服务链路跟踪

    微服务体系下 一个请求会调用多个服务 整个请求就会形成一个调用链 普通的日志输出是无法将整个体系串联起来 调用过程中某一个节点出现异常 定位排查难度系数增高 这种情况下就需要一个组件 来分析系统性能 展现调用链路 以便出现故障时快速定位并解
  • 【笔记整理】通信原理第四章复习——数字基带传输

    4 1 引言 数字基带信号 数字信号 补充 基带信号 指未经调制的信号 特征是其频谱从零频率或很低频率开始 占据较宽的频带 基带在传输前 必须经过一些处理或某些变换 比如码型变换 波形变换和频谱变换 才能送入信道中传输 处理或变换是为了使信
  • Django-rest-framework框架

    目录 一 Web应用模式 1 1 前后端不分离 二 API接口 三 接口测试工具 Postman 四 RESTful API规范 4 1 数据的安全保障 4 2 接口特征表现 4 3 多数据版本共存 4 4 数据即是资源 均使用名词 可复数
  • VHDL语言实现8位LED流水灯

    VHDL语言实现8位LED流水灯 包含对50MHz时钟信号分频产生1Hz信号 library ieee use ieee std logic 1164 all use ieee std logic unsigned all entity l
  • 1、mos管的工作原理

    文章目录 一 导体 绝缘体 半导体 二 半导体的制作 掺杂 pn结 半导体的单向导电性 三 mos管的工作原理 源极 栅极和漏极 nmos和pmos 电路符号 四 总结 一 导体 绝缘体 半导体 导体 能够导电的介质 绝缘体 不能导电的介质
  • 程序猿眼中的协议:TCP / IP 五层网络模型

    哈喽 大家好 我是你们的老朋友 保护小周 本期为大家带来的是 网络基础原理中的 TCP IP 五层网络模型 主要从协议的概念 网络模型 数据分层传输的流程 几个方面讲解 看完之后可以轻松的理解数据是如何在网络中传输的 确定不来看看嘛 更多精
  • List循环删除集合

    目录 For循环遍历List 增强For循环遍历List 迭代器iterator的remove方法 创建新的对象添加值 For循环遍历List 删除后list大小发生变化 因此索引发生变化 所以删除的元素不是你想要的 解决办法 倒着遍历li
  • qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

    应大家的要求 还是把完整的工程文件贴出来 大家省点事 http www kuaipan cn file id 48923272389086450 htm 先看看运行效果 我用的群创7寸屏 主机是mini2440 分辨率是800 480 程序
  • 转】M1卡密钥破解,收藏

    M1卡说明及使用proxmark3破解方法 看了网上写的一些关于M1卡的文章 多数有些误导之嫌 首先谈谈M1卡的规格 M1卡的容量为1KB 好多网上写8KB 这里其实是有个误区 应该是8K位 1Byte 1B 8位 其实也就是说8k位想到于
  • Oracle数据库启动过程

    一 Oracle数据库的四种状态 Oracle数据库有四种状态 SHUTDOWN NOMOUNT MOUNT OPEN 二 Oracle数据库的启动过程详解 Oracle数据库启动主要包括三个过程 1 shutdown状态 数据库没有启动