oracle啟動的一些基本命令


對於大多數Oracle DBA來說,啟動和關閉Oracle數據庫最常用的方式就是在命令行方式下的Server Manager。從Oracle 8i以后,系統將Server Manager的所有功能都集中到了SQL*Plus中,也就是說從8i以后對於數據庫的啟動和關閉可以直接通過SQL*Plus來完成

 

一、摘要

Oracle數據庫的完整啟動過程是分步驟完成的,包含以下3個步驟:

啟動實例-->加載數據庫-->打開數據庫

因為Oracle數據庫啟動過程中不同的階段可以對數據庫進行不同的維護操作,對應我們不同的需求,所以就需不同的模式啟動數據庫。

1. Oracle啟動需要經歷四個狀態:SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN

2. Oracle關閉的四種方式:Normal, 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模式下,只能訪問那些與控制文件相關的數據字典視圖,包括VTHREAD、VCONTROLFILE、VDATABASE、VDATAFILE 和 V$LOGFILE等,這些視圖都是從控制文件中獲取的。

(3). 模式用途:

重命名數據文件;
添加、刪除或重命名重做日志文件;
執行數據庫完全恢復操作;
改變數據庫的歸檔模式;
3.Open模式(正常打開數據庫)

(1). 命令:startup [open]

(2). 講解:正常按3個步驟啟動數據庫。

(3). 模式用途:

平時不對數據庫做什么維護,像只做應用開發,用這個模式就好了;
4.強制啟動模式

(1). 命令:startup force

(2). 用途&講解:

在某些情況下,使用前面的各種模式都無法成功啟動數據庫時,可以嘗試強制啟動模式。
5. 其他

使用Alter Database語句,還可以在各啟動模式間切換。並且,還可以對數據庫設置不同的狀態用於不同的操作,如受/非受限抽狀態、只讀。

三、數據庫關閉過程

1. Nomal(正常關閉方式)

(1). 命令:shutdown nomal

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

 

 
文章來源:http://www.jb51.net/article/53532.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM