#800 Oracle启动的一些基本命令

  其他  [公开]
icon孙锋在 2022-8-1 下午3:44 编写
  编辑(登录)
  收藏
  响应调查   响应调查

  主题

对于大多数 Oracle DBA 来说,启动和关闭 Oralce 数据库最常用的方式是在命令行方式下的 Server Manager。从Oracle 8i 以后,系统将 Server Manager 的所有功能都集中到了 SQL Plus 中,也就是说从8i 以后对于数据库的启动和关闭可以直接通过SQL Plus来完成。

一、摘要

Oracle 数据库的完整启动过程是分步骤完成的,包含以下3个步骤:

启动实例-->加载数据库-->打开数据库

因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需要以不同的模式启动数据库。

(1) Oracle 启动需要经历四个状态:SHUTDOWN,NOMOUNT,MOUNT,OPEN

(2) Oracle 关闭的四种方式:Norma,Immediate,Transactional,Abort

(3) 启动和关闭过程详解

二、数据库启动过程

1.NoMount 模式(启动实例不加载数据库)

(1) 命令:startup nomount

(2) 讲解:这种启动模式只会创建实例,并部加载数据库,Oracle 仅为实例创建各种内存结构和服务进程,不会打开任何数据文件。在 Nomount 模式下,只能访问那些与 SGA 区相关的数据字典视图,包括 VPARAMETER, VSGA, VPROCESS和VSESSION等,这些视图中的信息都是从SGA区种获取的,与数据库无关。

(3) 模式用途

创建新数据库

重建控制文件

2.Mount模式(加载数据库但不打开数据库)

(1) 命令: startup mount

(2) 讲解:这种启动模式将为实例加载数据库,但保持数据库为关闭状态,因为加载数据库时需要打开数据库控制文件,但数据文件和重做日志文件都无法进行读写,所以用户还无法对数据库进行操作。在 Mount 模式下,只能访问那些与控制文件相关的数据字典视图,包括VTHREADD,VCONTROLFILE,VDATABASE,VDATAFILE 和 v$LOGFILE等,这些视图都是从控制文件中获取的。

(3) 模式用途

重命名数据文件

添加、删除或重命名redo日志文件

执行数据库完全恢复操作

改变数据库完全恢复操作

改变数据库的归档模式

3.Open模式(正常打开数据库)

(1) 命令:startup [open]

(2) 讲解:正常按3个步骤启动数据库

(3) 模式用途

平时不对数据库做什么维护,像只做应用开发,用这个模式就可以

4.强制启动模式

(1) 命令: startup force

(2) 讲解 & 用途:在某些情况下,使用前面的各种模式都无法成功启动数据库时,可以尝试强制启动模式。

5.其他

使用 Alter Database 语句,还可以在各启动模式间切换,并且还可以对数据库设置不同的状态用于不同的操作,如受限/非受限状态、只读。

三、数据库关闭过程

  1. Noraml (正常关闭方式)
    (1)命令:shutdown normal
    (2)讲解:正常方式关闭数据时,Oracle 执行如下操作

    • 阻止任何用户建立新的连接
    • 等待当前所有正在联机的用户主动断开连接(此方式下 Oracle 不会立即断掉当前用户的连接,这些用户仍然操作相关的操作)
    • 一旦所有的用户都断开连接,则立即关闭、卸载数据库,并终止实例。(所以,一般以正常方式关闭数据库时,应该通知所有在线的用户尽快断开连接)
  2. Immediate (立即关闭方式)
    (1)命令:shutdown immediate
    (2)讲解:

    • 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。
    • Oracle 不等待在线用户主动断开连接,强制终止用户的当前事务,将任何未提交的事务回退
      直接关闭、卸载数据库,并终止实例。(如果存在太多未提交的事务,此方式将会耗费很长时间终 止和回退事务)
  3. Transactional (事务关闭方式)
    (1)命令:shutdown transactional
    (2)讲解:这种方式节约正常关闭方式跟立即关闭方式之间,响应时间会比较快,处理也将比较 得当,
    执行过程如下:

    • 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。
    • 等待所有未提交的活动十五提交完毕,然后立即断开用户的连接。
    • 直接关闭、卸载数据库,并终止实例。
  4. Abort (终止关闭方式)
    (1)命令:shutdown abort
    (2)讲解:这是比较粗暴的一种关闭方式,当前3种方式都无法关闭时,可以尝试使用终止方式 来关闭数据库,但是以这种方式关闭数据库将会丢失一部分数据信息,当重新启动实例并打开数据库时,后台进程 SMON 会执行实例恢复操作。一般情况下,应当尽量避免使用这种方式来关闭数据库。

    执行过程如下:

    • 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。
    • 立即终止当前正在执行的 SQL 语句
    • 任何未提交的事务均不被退回
    • 直接断开所有用户的连接,关闭、卸载数据库,并终止实例。

四、案例数据库启动全过程

1 Step1. sqlplus /'as sysdba' 
2
3 SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 3 22:48:27 2012`
4 Copyright (c) 1982, 2005, Oracle. All rights reserved.
5 Connected to an idle instance.
6 
7 Step2. Startup nomount
8
9 ORACLE instance started.
10
11 -->
12 Total System Global Area 167772160 bytes
13 Fixed Size     1218316 bytes
14 Variable Size    104859892 bytes
15 Database Buffers   58720256 bytes
16 Redo Buffers    2973696 bytes
17
18 oracle@db1:~> ps -ef | grep ora_
19 oracle 3626 1 0 22:48 ? 00:00:00 ora_pmon_orcl1
20 oracle 3628 1 0 22:48 ? 00:00:00 ora_psp0_orcl1
21 oracle 3630 1 0 22:48 ? 00:00:00 ora_mman_orcl1
22 oracle 3632 1 0 22:48 ? 00:00:00 ora_dbw0_orcl1
23 oracle 3634 1 0 22:48 ? 00:00:00 ora_lgwr_orcl1
24 oracle 3636 1 0 22:48 ? 00:00:00 ora_ckpt_orcl1
25 oracle 3638 1 0 22:48 ? 00:00:00 ora_smon_orcl1
26 oracle 3640 1 0 22:48 ? 00:00:00 ora_reco_orcl1
27 oracle 3642 1 0 22:48 ? 00:00:00 ora_cjq0_orcl1
28 oracle 3644 1 0 22:48 ? 00:00:00 ora_mmon_orcl1
29 oracle 3646 1 0 22:48 ? 00:00:00 ora_mmnl_orcl1
30 oracle 3648 1 0 22:48 ? 00:00:00 ora_d000_orcl1
31 oracle 3650 1 0 22:48 ? 00:00:00 ora_s000_orcl1
32
33 Step3. Startup mount
34 
35 Oracle instance started.
36 -->
37 Total System Global Area 167772160 bytes
38 Fixed Size 1218316 bytes
39 Variable Size 104859892 bytes
40 Database Buffers 58720256 bytes
41 Redo Buffers 2973696 bytes
42 Database mounted.
43 
44 Step4. Startup
45 
46 ORACLE instance started.
47
48 -->
49 Total System Global Area 167772160 bytes
50 Fixed Size 1218316 bytes
51 Variable Size 104859892 bytes
52 Database Buffers 58720256 bytes
53 Redo Buffers 2973696 bytes
54 Database mounted.
55 Database opened.

 附加文件     - [0]


 添加评论