一、引數檔案講解
1.1、引數檔案的作用
使用STARTUP命令啟用資料以后,它第一步就會呼叫spfileSID.ora引數檔案,通過這個檔案里面的定義和一些設定,來啟動資料庫實體,我們資料庫的很多設定、配置、優化、調整,都是在這個引數檔案里面來控制的,

1.2、引數檔案的分類
1)靜態初始化引數檔案 PFILE(9i之前)
PFILE initSID.ora是一個編輯器修改的文本檔案,可以手動對該檔案進行修改,但是需要在下次資料庫啟動修改才能生效,它的預設路徑是$ORACLE_HOME/dbs,
2)動態初始化引數檔案 SPFILE(10g之后)
SPFILE是一個不用重啟資料庫就能將改變生效的二進制檔案,它保存在Oracle服務器端,能通過ALTER SYSTEM命令直接對引數進行修改,同時能指定改變是臨時在記憶體中生效還是從現在開始永久生效,修改的值能被洗掉,并重置到實體預設的值,
1.3、創建SPFILE
SPFILE能使用命令CREATE SPFILE命令從initSID.ora中創建,并且在資料庫開啟前或開啟后都能執行,
CREATE SPFILE FROM PFILE;
1.4、資料庫啟動查找順序
Oracle啟動時,查找順序為spfile<sid>.ora-->spfile.ora-->init<sid>.ora,
1)spfile<sid>.ora
Unix/Linux預設目錄:$ORACLE_HOME/dbs/
Windows預設目錄:%ORACLE_HOME%\database
2)spfile.ora
Unix/Linux預設目錄:$ORACLE_HOME/dbs/
Windows預設目錄:%ORACLE_HOME%\database
3)init<sid>.ora
Unix/Linux預設目錄:$ORACLE_HOME/dbs/
Windows預設目錄:%ORACLE_HOME%\database
二、引數檔案案例一
2.1、案例說明:某業務系統需要增加物理記憶體,增加記憶體后,需要調整資料SGA、PGA記憶體引數,
1)名詞解釋:
SGA:System Global Area是Oracle Instance的基本組成部分,在實體啟動時分配,系統全域域SGA主要由三部分構成:共享池、資料緩沖區、日志緩沖區,
PGA:Process Global Area是為每個連接到Oracle Database的用戶行程保留的記憶體,
2)在服務器上運行中輸入cmd打開命令提示符,
3)連接Oracle資料庫:
sqlplus "/as sysdba"

4)分別輸入以下指令:
show parameter sga
show parameter pga
show parameter memory
可以看到,sga_target和pag_aggregate_target的值都為0,說明它們都沒有使用Oracle 10g時的管理引數,

可以看到,memory_max_target和memory_target的值都不為0,它們使用的是Oracle 11g時自動記憶體的管理引數,

5)memory_max_target和memory_target的值,最大不可以超過80%的物理記憶體,建議先設到60%左右,此處演示設為1.5G:
alter system set memory_max_target=1536M scope=spfile; alter system set memory_target=1536M scope=spfile; shutdown immediate; startup show parameter memory

三、引數檔案案例二
3.1、案例說明
1)如上例,修改SGA引數時本來要設為1536M,但是不小心設成了153M,并且已經執行了關閉資料庫,此時,因為記憶體過小導致資料庫無法啟動,該怎么辦呢?答案是可以通過pfile來完成spfile的重建,
3.2、ORACLE_HOME環境變數設定
1)在服務器對著"此電腦"點擊"右鍵",選擇"屬性",

2)點擊"高級系統設定",

3)在高級頁下,點擊"環境變數",

4)在系統變數下點擊"新建",

5)輸入變數名"ORACLE_HOME",點擊"瀏覽目錄"選擇Oracle安裝主目錄,然后點擊"確定",

6)由于設定了ORACLE_HOME變數,sqlplus命令對應的環境變數也可以改一下,在系統變數下找到"Path",點擊"編輯",

7)將"C:\app\Administrator\product\11.2.0\dbhome_1\BIN"更改為"%ORACLE_HOME%\bin",

8)一直點擊"確定"后完成環境變數的設定,然后重啟服務器,
3.3、更改memory
1)在服務器上運行中輸入cmd打開命令提示符,
2)輸入以下命令查看database檔案:
cd %ORACLE_HOME%\database dir
可以看到,下面有各個資料庫的引數檔案:

3)連接Oracle資料庫:
sqlplus "/as sysdba"

4)使用spfile檔案來重建pfile檔案,
create pfile='pfile.ora' from spfile='spfiletest.ora';

5)在Oracle安裝目錄的database檔案夾下,使用記事本打開pfile.ora檔案,

6)將*.memory_max_target和*.memory_target的值改為1610612736(此值為位元組,此處設為1.5G,1.5G=1.5*1024*1024*1024B=1610612736B),然后保存,

7)在sqlplus,將pfile檔案重建各個資料庫的spfile檔案,然后啟動資料庫,可以看到,資料庫已可以正黨啟動,
create spfile='spfileorcl.ora' from pfile='pfile.ora'; create spfile='spfiletest.ora' from pfile='pfile.ora'; startup

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/171927.html
標籤:其他
