初始參數文件:
Oracle在啟動實例時要讀取初始參數文件。
參數文件裡面的參數分為兩種:顯式的隱式的。
參數文件分為兩種:靜態參數文件pfile和永久參數文件spfile
pfile:
$Oracle_HOME/dbs/initSID.ora
可以通過文本編輯器直接編輯,所做的修改在下次啟動實例時生效。
spfile:
$Oracle_HOME/dbs/spfileSID.ora
二進制文件,通過alter system命令來修改。
alter system set parameter = value [scope = memory | spfile | both]
可以通過pfile來生成spfile:
create spfile from pfile;
下面是我的Oracle系統中的初始參數文件:init.ora是示例文件,inittest.ora是pfile,spfiletest.ora是spfile.
[oracle@redhatOracle dbs]$ ls -l *test.ora init.ora
-rw-r--r-- 1 Oracle oinstall 8385 Mar 9 2002 init.ora
-rw-r--r-- 1 Oracle oinstall 987 Dec 15 20:14 inittest.ora
-rw-r----- 1 Oracle oinstall 2560 Dec 15 11:11 spfiletest.ora
啟動數據庫:
nomount狀態:只啟動實例而不加載數據庫,用於創建數據庫或重建控制文件。啟動實例時會在$Oracle_HOME/dbs目錄中按如下順序搜索啟動參數文件:spfileSID.ora,spfile.ora和initSID.ora。可以在startup命令後面通過pfile參數來手工指定啟動參數文件。
mount狀態:加載數據庫但是不打開數據庫訪問,用於維護數據庫。如重命名數據文件,啟用或禁用日志歸檔模式,執行全數據庫恢復。mount階段加載數據庫,與已啟動的實例相關聯,通過參數文件查找控制文件,通過控制文件查找數據文件和Redo日志。
open狀態:正常加載,用戶可訪問數據庫階段。加載數據文件和Redo日志,必要時執行recover操作。
Startup命令:
startup pfile=$Oracle_HOME/dbs/initdb01.ora;
startup nomount;
startup mount;
也可以使用alter database命令改變數據庫的狀態:
alter database db01 mount;
alter database db01 open read only;
Shudown命令:
shutdown normal:不再接受新的連接,待舊有會話都結束後將數據寫入磁盤,做checkpoint,正常關閉文件。
shutdown transactional:當前事務完成時終止會話,將數據寫入磁盤,做checkpoint,正常關閉文件。
shutdown immediate:立刻終止當前會話,不等待事務結束,對當前事務做回滾,做checkpoint,正常關閉文件。
shutdown abort:直接終止進程。(下次啟動數據庫時要做recover)
下面是操作實例:
[oracle@redhatoracle Oracle]$ sqlplus /nolog
SQL*Plus: Release 9.2.0.4.0 - Production on Fri Dec 15 21:28:43 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup nomount;
Oracle instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
SQL> alter database gldb mount;
Database altered.
SQL> alter database gldb open;
Database altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
Oracle instance shut down.
SQL>