Oracle 数据库启动过程的三阶段、停库四种模式详解

目录
  • 数据库的启动过程(3个台阶)
    • 1.nomount
    • 2.mount
    • 3.open

数据库的启动过程(3个台阶)

1.nomount

shutdown --> nomount

startup nomount

select status from v$instance;
SQL>
SQL> conn / as sysdba
Connected to an idle instance.
SQL>
SQL> startup nomount
ORACLE instance started.

Total System Global Area  629145392 bytes
Fixed Size                  9137968 bytes
Variable Size             197132288 bytes
Database Buffers          415236096 bytes
Redo Buffers                7639040 bytes
SQL>
SQL>
SQL>
SQL>
SQL> select status from v$instance;

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

SQL> 

数据库启动到nomount做了什么?

  • 分配实例(ipcs -sm, ps -ef | grep ora_)
  • 写审计文件和警报日志

数据库启动到nomount需要什么?

  • 参数文件
  • 需要审计目录和诊断目录

nomount状态可以做什么?

  • 可以修改参数
  • 可以查看内存和后台进程的信息
  • 可以创建数据库
  • 可以重建控制文件
SQL>
SQL> select * from v$sgainfo;

NAME                                  BYTES RES     CON_ID
-------------------------------- ---------- --- ----------
Fixed SGA Size                      9137968 No           0
Redo Buffers                        7639040 No           0
Buffer Cache Size                 411041792 Yes          0
In-Memory Area Size                       0 No           0
Shared Pool Size                  197132288 Yes          0
Large Pool Size                     4194304 Yes          0
Java Pool Size                            0 Yes          0
Streams Pool Size                         0 Yes          0
Shared IO Pool Size                       0 Yes          0
Data Transfer Cache Size                  0 Yes          0
Granule Size                        4194304 No           0

NAME                                  BYTES RES     CON_ID
-------------------------------- ---------- --- ----------
Maximum SGA Size                  629145392 No           0
Startup overhead in Shared Pool   193465328 No           0
Free SGA Memory Available                 0              0

14 rows selected.

SQL> select name from v$bgprocess where paddr<>'00';

NAME
-----
PMON
CLMN
PSP0
VKTM
GEN0
MMAN
M000
GEN1
SCMN
DIAG
OFSD

NAME
-----
SCMN
DBRM
VKRM
SVCB
PMAN
DIA0
DBW0
LGWR
CKPT
LG00
SMON

NAME
-----
LG01
SMCO
RECO
W000
LREG
W001
PXMN
FENC
D000
MMON
MMNL

NAME
-----
S000
TMON

35 rows selected.

SQL> 

2.mount

shutdown --> mount

  • startup mount

nomount --> mount

  • alter database mount;
SQL>
SQL> select status from v$instance;

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

SQL> alter database mount;

Database altered.

SQL> select status from v$instance;

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

SQL> 

数据库启动到mount做了什么?

  • 加载控制文件的信息到内存

数据库启动到mount状态需要做什么?

  • 控制文件

mount状态可以做什么?

  • 可以备份、还原、恢复
  • 可以移动数据库文件
  • 可以进行数据文件的offline
  • 可以打开和关闭归档模式
  • 可以打开和关闭闪回数据库的功能
SQL>
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u02/oradata/CDB1/system01.dbf
/u02/oradata/CDB1/sysaux01.dbf
/u02/oradata/CDB1/undotbs01.dbf
/u02/oradata/CDB1/pdbseed/system01.dbf
/u02/oradata/CDB1/pdbseed/sysaux01.dbf
/u02/oradata/CDB1/users01.dbf
/u02/oradata/CDB1/pdbseed/undotbs01.dbf
/u02/oradata/CDB1/pdb1/system01.dbf
/u02/oradata/CDB1/pdb1/sysaux01.dbf
/u02/oradata/CDB1/pdb1/undotbs01.dbf
/u02/oradata/CDB1/pdb1/users01.dbf

11 rows selected.

SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------
/u02/oradata/CDB1/temp01.dbf
/u02/oradata/CDB1/pdbseed/temp012022-11-02_15-16-24-663-PM.dbf
/u02/oradata/CDB1/pdb1/temp01.dbf

SQL>
SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u02/oradata/CDB1/redo03.log
/u02/oradata/CDB1/redo02.log
/u02/oradata/CDB1/redo01.log

SQL>

3.open

shutdown --> open

  • startup

nomount ---->  open

  • alter database mount;
  • alter datbase open;

只读方式去打开数据库

SQL>
SQL> startup mount
ORACLE instance started.

Total System Global Area  629145392 bytes
Fixed Size                  9137968 bytes
Variable Size             197132288 bytes
Database Buffers          415236096 bytes
Redo Buffers                7639040 bytes
Database mounted.
SQL>
SQL>
SQL> select status from v$instance;

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

SQL>
SQL> alter database open read only;

Database altered.

SQL>
SQL> select status from v$instance;

STATUS
------------
OPEN

SQL>
SQL>
SQL>
SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ ONLY

SQL> 
SQL>
SQL> startup
ORACLE instance started.

Total System Global Area  629145392 bytes
Fixed Size                  9137968 bytes
Variable Size             197132288 bytes
Database Buffers          415236096 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.
SQL>

数据库启动到open做了什么?

  • 加载联机日志和数据文件

数据库启动到open需要什么?

  • 联机日志和数据文件

open状态可以做什么?

数据库的停止(四种模式)

1.正常停库: shutdown normal = shutdown

  • 普通用户的连接不允许建立
  • 等待查询结束
  • 等待事务结束
  • 产生检查点(数据同步)
  • 关闭联机日志和数据文件
  • 关闭控制文件
  • 关闭实例

2.事务级停库: shutdown transactional

  • 普通用户的连接不允许建立
  • 查询被终止
  • 等待事务结束
  • 产生检查点(数据同步)
  • 关闭联机日志和数据文件
  • 关闭控制文件
  • 关闭实例

3.立即停库 : shutdown immediate (生产库最常用的停库方式)

  • 普通用户的连接不允许建立
  • 查询被终止
  • 事务被回退
  • 产生检查点(数据同步)
  • 关闭联机日志和数据文件
  • 关闭控制文件
  • 关闭实例

4.强制停库 : shutdown abort

相当于拔电源

(停止之后的数据库是脏库)
注意:这些命令需要慎用

startup force = shutdown abort + startup
startup force nomount = shutdown abort + startup nomount
startup force mount = shutdown abort + startup mount

到此这篇关于Oracle 数据库启动三阶段、停库四种模式的文章就介绍到这了,更多相关Oracle 数据库启动内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-11-18

Oracle数据库的启动与关闭方法

一.启动数据$sqlplus "sys/pass as sysdba"sql>startup 二.启动监听器 数据库启动后,如果未启动监听进程,则客户端无法与数据库连接.监听进程的启动方法为:$lsnrctl start在widnows中,可以从服务列表中启动监听器.监听里程配置文件为listener.ora,位于目录/home/app/oracle/product/10.1.0/db1/network/admin/.此配置文件分为两部分,一部分为监听程序本身的配置,包括协议,地

oracle 数据库启动阶段分析

Oracle Server主要由两部分组成:Instance 和Database .Instance 是指一组后台进程/线程和一块共享内存区域,而 Database是指存储在磁盘上的一组物理文件.本文由数据库 如何启动入手. 数据库的启动 首先来分析一下数据库的启动过程,Oracle 数据库的启动主要包含 3 个步骤: (1)启动数据库到 nomount 状态: (2)启动数据库到 mount 状态: (3)启动数据库到 open 状态. 下面逐个来看看各个步骤的具体过程以其含义. 1. 启动数

Oracle数据库的十种重新启动步骤

1. 停应用层的各种程序. 2. 停oralce的监听进程: $lsnrctl stop 3. 在独占的系统用户下,备份控制文件: SQL>alter database backup controlfile to trace; 4. 在独占的系统用户下,手工切换重作日志文件,确保当前已修改过的数据存入文件: SQL>alter system switch logfile; 5. 在独占的系统用户下,运行下面SQL语句,生成杀数据库用户连接的kill_all_session.sql文件: set

oracle、mysql数据库停止与启动的批处理文件

1.关机,取消关机 ::关机 echo 30秒之后关机 %systemroot%\system32\shutdown -s -t 30 ::取消关机 echo 取消关机 %systemroot%\system32\shutdown -a 2.oralce,或者mysql滴服务启动与关闭 ::oralce service start net start OracleVssWriterORCL net start OracleDBConsoleorcl net start OracleOraDb10

Oracle数据库的启动和关闭顺序实例讲解

对于一个oracle数据库新手来说,怎么样进行管理oracle数据库呢? 首先从最简单的启动和关闭数据库来说,下面简单的介绍一下Oracle数据库的启动和关闭顺序实例讲解. 一.oralce的启动顺序: 1.先启动监听程序(对应端口1521) : []#lsnrctl start 2.启动oracle实例: []#sqlplus / as sysdba(回车) SQL>startup --启动的是环境变量中的默认数据库实例 $ORACLE_SID --如果启动多个实例:export ORACLE

详解Linux系统中Oracle数据库程序的启动和关闭方式

在单机环境下,要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle Oracle数据库有以下几种启动方式: 1. startup nomount 非安装启动,这种方式启动下可执行:重建控制文件.重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件. 2. startup mount dbname 安装启动,这种方式启动下可执行: 数据库日志归档. 数据库介质恢复. 使数据文件联机或脱机, 重新

oracle 11g配置 解决启动连接数据库出现的ora错误

按照网上方法并结合实践,整理了一下(以后忘记了可以看看),oracle登录问题的解决办法: 常见的登录连接oracle数据库时遇到的问题ora-12560,01034,27101,00119,00132等,可以按照以下步骤检查和解决. Oracle11g数据库监听,数据库启动  1.添加监听程序(服务器端) 打开net manager 添加监听 添加监听位置(网络地址) 添加数据库服务(oracle主目录可以不填) 2.添加服务命名  3.测试 利用服务器端sqlplus工具E:\app\204

解决Windows 7下安装Oracle 11g相关问题的方法

很多DBA目前还停留在Oracle 9i或者10g,究其原因有可能是Oracle 11g的价格问题.本文将为大家讲解在Windows 7下安装Oracle 11g,也希望大家能从中看到11g的一些新特点. 前不久卸载掉了自己的Windows Vista系统,装上了Windows7 旗舰版,在装机过程中也遇到了很多问题,有些问题是自己不曾遇到过的,但自己尝试着去解决,一步一步尝试着去努力.自己的不懈努力,也换回了成果.比如在装SQL Server 2005和Oracle 11g时就碰到了问题,在装

Docker 拉取 oracle 11g镜像配置的详细教程

话不多说 开始记录docker拉取阿里的oracle11g 镜像并进行配置, 用pl/sql 可以登录为最终结果 navicat连接是在最后一步 参考:https://www.jb51.net/article/223375.htm 但是根据这个进行配置会有一些问题,所以写这篇记录一下,希望可以帮助其他人 开始: ①.开始拉取镜像-执行命令: docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 下载的过程少长,等待吧,喝

Oracle 11g 安装配置方法图文教程

本教程为大家分享了Oracle 11g 安装配置方法图文教程,供大家参考,具体内容如下 环境:Windows 7  64位 背景:自己的电脑上很久没有下载过数据库了,4年前装过一次,后来重新做了很多次系统,导致很多软件都要重新装,今天 公司电脑重新搭建了下开发环境,回到家再来总结下. 总归没坏处,嘿嘿 好了,废话就唠叨到这了,下面具体介绍下,方便以后的小伙伴. 建议大家在安装期间把360关闭,不然很多问题都会出来. 1)首先到这个地址: http://www.oracle.com/technet

解决IDEA配置tomcat启动报错问题

在配置servlet不同路径时遇上以下两个错误: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String:  java.lang.ClassNotFoundException: org.apache.jsp.index_jsp: 对于第一个问题,我上网查阅了很多资料后发现,可能是tomcat版本冲突导致,catalina log如下: 19-Feb-2018

解析Docker 下拉取oracle 11g镜像配置的问题

1.拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 镜像详情:https://dev.aliyun.com/detail.html?spm=5176.1972343.2.8.E6Cbr1&repoId=1969 由于镜像我已经拉取,所以此处显示已存在,查看镜像信息 docker iamges 2.创建并容器信息 docker run -d -p 1521:1521 --name oracle_11g re

Oracle监听器服务不能启动的解决方法

Oracle监听器服务不启动的时候可采取以下措施予以解决: 一.连接主机字符串,提示没有监听器 SVRMGR> connect internal/oracle@orcl: ORA-12541: TNS:no listener SVRMGR> 二.运行监听器,提示地址的协议专用组件指定不正确 在开始菜单运行中键入lsnrctl LSNRCTL for 32-bit Windows: Version 9.0.1.1.1 - Production on 08-6月 -2006 14:31:53 Co

Linux 7下脚本安装配置oracle 11g r2教程

本教程为大家分享了oracle 11g r2安装教程,供大家参考,具体内容如下 一.环境脚本简单配置 #!/bin/bash mv /etc/yum.repos.d/* /tmp mv iso.repo /etc/yum.repos.d/ tar zxvf a.tar.gz mv 7Server /root/ sed -i '3 s/^#//' /etc/yum.repos.d/iso.repo sed -i '4 s/^/#/' /etc/yum.repos.d/iso.repo yum in

Linux下安装Oracle 11g出现prvf-0002错误解决办法

Linux下安装Oracle 11g出现prvf-0002错误解决办法 Linux下安装Oracle 11g,有时会提示一个错误: 提示是不能获取本地节点名. PRVF意思应是安装前的检查,没有查出缩写,我猜是Pre-Requisite VeriFication的缩写.若错了还请指正. 使用oerr工具看看, oerr prvf 0002 0002, ERROR_LOCAL_NODENAME_NOT_FOUND, "Could not retrieve local nodename"

Oracle 11g 客户端的安装和配置的图文教程

数据库和客户端在不同的机器之上. 在安装之前,在安装Oracle数据库的服务器上导航到下面的目录. 将listener.ora和tnsnames.ora中的host中的localhost都改为机器的IP地址,我的为192.168.1.102 而后开始安装Oracle客户端 选择定制,可以自己定义安装的组件. 取消对Oracle Scheduler Agent组件的选择. 进行到80%的时候,会运行下面的配置程序.(一般隐藏在当前界面之后,不要在当前界面傻等啊,呵呵) 主机名,最好用IP地址. 更