Oracle參數
一、oracle pfile/spfile區別
pfile 預設的名稱為“init+常式名.ora”檔案路徑:E:\oracle\product\10.2.0\db_1\dbs,這是一個文字檔,可以用任何文本編輯工具開啟。
spfile 預設的名稱為“spfile+常式名.ora”檔案路徑:E:\oracle\product\10.2.0\db_1\dbs以二進位文本形式存在,不能用vi編輯器對其中參數進行修改。
兩個檔案可以用命令 CREATE PFILE FROM SPFILE或CREATE SPFILE FROM PFILE來互相建立
區別:
1、啟動次序 SPfile優先於Pfile。
2、PFILE是靜態檔案,修改之後不會馬上生效,資料庫必須重新啟動讀取這個檔案才行。
3、SPFILE是動態參數檔案,是二進位檔案,不可以直接用記事本等等程式做修改,可以用ALTER命令做修改,不用重起資料庫也能生效。
修改方法:
#查看參數資訊
sql>show parameter;
#修改參數
sql>alter system set 參數名=值 scope=參數2;
參數2取值有如下三種:
1. scope=spfile: 對參數的修改記錄在伺服器初始化參數檔案中,修改後的參數在下次啟動DB時生效。適用於動態和靜態初始化參數。
2. scope=memory: 對參數的修改記錄在內存中,對於動態初始化參數的修改立即生效。在重啟DB後會遺失,會複原為修改前的參數值。
3. scope=both: 對參數的修改會同時記錄在伺服器參數檔案和內存中,對於動態參數立即生效,對靜態參數不能用這個選項。
如果使用了伺服器參數檔案,則在執行alter system語句時,scope=both是default的選項。
如果沒有使用伺服器參數檔案,而在執行alter system語句時指定scope=spfile|both都會出錯。
二、init.ora檔案(E:\oracle\product\10.2.0\db_1\srvm\admin)
該檔案的參數說明:
1)db_name = "clustdb" 一個資料庫標識符,應與CREATE DATABASE 語句中指定的名稱相對應。
2)instance_name = clustdb1 在多個常式使用相同服務名的情況下,用來唯一地標識一個資料庫常式;INSTANCE_NAME 不應與 SID 混淆,它實際上是對在一台主機上共用記憶體的各個常式的唯一標識。
3)control_files = control_files = ("\\.\clustdb_control1", "\\.\clustdb_control2")
4)open_cursors =300
庫快取 指定一個會話一次可以開啟的遊標 (環境地區) 的最大數量,並且限制 PL/SQL 使用的 PL/SQL 遊標快取的大小,以避免使用者再次執行語句時重新進行文法分析。請將該值設定得足夠高,這樣才能防止應用程式耗盡開啟的遊標。
5)db_block_buffers = 200
快取與I/O 緩衝區快取中 Oracle 塊的數量。該參數會顯著影響一個常式的 SGA 總大小。
6)large_pool_size=1048576
池--指定大儲存池的分配堆,它可被多線程伺服器 (MTS) 用作會話記憶體、用作並存執行的訊息緩衝區以及用作 RMAN備份和恢複的磁碟 I/O 緩衝區。
7)java_pool_size=67108864
以位元組為單位,指定 Java 儲存池的大小,它用於儲存 Java 的方法和類定義在共用記憶體中的標記法,以及在調用結束時移植到 Java 會話空間的 Java 對象。
8)log_checkpoint_interval = 10000
指定在出現檢查點之前,必須寫入重做記錄檔中的 OS 塊 (而不是資料庫塊) 的數量。無論該值如何,在切換日誌時都會出現檢查點。較低的值可以縮短常式恢複所需的時間,但可能導致磁碟操作過量。
9)
processes = 220
log_buffer = 8388608
以位元組為單位,指定在 LGWR 將重做日誌條目寫入重做記錄檔之前,用於緩衝這些條目的記憶體量。重做條目保留對資料庫塊所作更改的一份記錄。如果該值大於65536,就能減少重做記錄檔 I/O,特別是在有長時間交易處理或大量交易處理的系統上 **最大值為 500K 或 128K * CPU_COUNT,兩者之中取較大者
10)oracle_trace_enable = true
啟動一個預設的 Oracle Trace 集合,直到該值再次設定為 NULL。
11)timed_statistics=true
收集作業系統的計時資訊,這些資訊可被用來最佳化資料庫和 SQL語句。要防止因從作業系統請求時間而引起的開銷,請將該值設定為零。將該值設定為 TRUE 對於查看長時間操作的進度也很有用。
12)background_dump_dest=%ORACLE_HOME%/admin/clustdb/bdump
指定在 Oracle 操作過程中為後台進程 (LGWR,DBW n 等等) 寫入追蹤檔案的路徑名(目錄或磁碟)。它還定義記錄著重要事件和訊息的資料庫預警檔案的位置。
13)core_dump_dest = /opt/apps/oracle/admin/51cto/cdump
指定核心轉儲位置的目錄名 (用於 UNIX)。
14)user_dump_dest=%ORACLE_HOME%/admin/clustdb/
為伺服器將以一個使用者進程身份在其中寫入調試追蹤檔案的目錄指定路徑名。例如,該目錄可這樣設定: NT 作業系統上的 C:/
ORACLE/UTRC;UNIX 作業系統上的 /oracle/utrc;或 VMS 作業系統上的DISK$UR3:[ORACLE.UTRC]。
15)db_block_size = 8192
一個 Oracle 資料庫塊的大小 (以位元組計)。該值在建立資料庫時設定,而且此後無法更改。 1024 - 65536 (根據作業系統而定)。
16)remote_login_passwordfile = exclusive
指定作業系統或一個檔案是否檢查具有許可權的使用者的口令。如果設定為 NONE,Oracle 將忽略口令檔案。如果設定為EXCLUSIVE,將使用資料庫的口令檔案對每個具有許可權的使用者進行驗證。如果設定為 SHARED,多個資料庫將共用 SYS 和INTERNAL口令檔案使用者
17)job_queue_processes = 4
只用於複製環境。它指定每個常式的 SNP 作業隊列進程的數量 (SNP0, ... SNP9, SNPA, ... SNPZ)。要自動更新錶快照或執行由 DBMS_JOB 建立的請求,請將該參數設定為 1 或更大的值。 0 到 36
18)job_queue_interval = 10
作業隊列 只用於複製環境。它以秒為單位指定該常式的每個 SNPn 後台進程的喚醒頻率。 1 到 3600
19)distributed_transactions = 5
一個資料庫一次可參與的分散式交易處理的最大數量。如果由於網路故障異常頻繁而減少該值,將造成大量未決交易處理。
20)open_links = 4
指定在一次會話中同時開啟的與遠端資料庫的串連的最大數量。該值應等於或超過一個引用多個資料庫的單個 SQL 陳述式中引用的資料庫的數量,這樣才能開啟所有資料庫以便執行該語句。
21)compatible = "9.0.0"
允許使用一個新的發行版,同時保證與先前版本的向後相容性。
22)sort_area_size = 524288
以位元組為單位,指定排序所使用的最大記憶體量。排序完成後,各行將返回,並且記憶體將釋放。增大該值可以提高大型排序的效率。如果超過了該記憶體量,將使用臨時磁碟段。相當於 6 個資料庫塊的值 (最小值) 到作業系統確定的值 (最大值)。
三、alert.log檔案(e:\oracle\product\10.2.0/admin/fgisdb/bdump\alert_fgisdb.log)
警示日誌,在產生錯誤時,啟動和關閉執行個體時,都會記錄資訊到警示日誌中,此外還記錄了不同於預設值的初始參數的列表,alter system,alter database命令,對錶空間,資料檔案的操作,空間不足,損壞的檔案等。警示日誌也會變得很大,可在任意時間重新命名或刪除警示日誌,但是警示日誌記錄了資料庫的各種安全資訊,維護和恢複等資訊,因此可根據時間先後來選擇性刪除。