oracle数据库配置助手来初始化参数,使用服务器参数文件(SPFILE)管理初始化参数...
傳統上,Oracle數據庫的初始化參數存儲在文本初始化參數文件中。為了更好的可管理性,您可以選擇在二進制服務器參數文件中維護初始化參數,該文件在數據庫啟動和關閉期間保持不變。本節介紹服務器參數文件,并介紹如何使用任何一種存儲參數的方法來管理初始化參數。
什么是服務器參數文件?
遷移到服務器參數文件
創建服務器參數文件
SPFILE初始化參數
更改初始化參數值
清除初始化參數值
導出服務器參數文件
備份服務器參數文件
恢復丟失或損壞的服務器參數文件
查看參數設置
什么是服務器參數文件?
服務器參數文件最初是使用CREATE SPFILE語句從文本初始化參數文件構建的。 (它也可以由數據庫配置助手直接創建。)服務器參數文件是無法使用文本編輯器編輯的二進制文件。 Oracle數據庫提供其他界面,用于查看和修改服務器參數文件中的參數設置。
雖然可以使用文本編輯器打開二進制服務器參數文件并查看其文本,但不要手動編輯它。這樣做會損壞文件。將無法啟動實例,如果實例正在運行,則可能會失敗。
當發出沒有PFILE子句的STARTUP命令時,Oracle實例將搜索操作系統特定的默認位置,以查找從中讀取初始化參數設置的服務器參數文件。如果找不到服務器參數文件,則實例將搜索文本初始化參數文件。如果服務器參數文件存在但您想用文本初始化參數文件中的設置覆蓋它,則必須在發出STARTUP命令時指定PFILE子句。
遷移到服務器參數文件
如果當前正在使用文本初始化參數文件(PFILE),請使用以下步驟遷移到服務器參數文件(SPFILE)。
1、如果初始化參數文件位于客戶端系統上,則將文件(例如FTP)從客戶端系統傳輸到服務器系統。
2、使用CREATE SPFILE FROM PFILE語句在默認位置創建一個服務器參數文件。
3、啟動或重新啟動實例
該實例在默認位置找到新的SPFILE并啟動它
創建服務器參數文件
使用CREATE SPFILE語句來創建服務器參數文件。必須具有SYSDBA或SYSOPER系統特權才能執行此語句。
當使用數據庫配置助手創建數據庫時,它會自動創建一個服務器參數文件。
CREATE SPFILE語句可以在實例啟動之前或之后執行。但是,如果實例已使用服務器參數文件啟動,則如果嘗試重新創建實例當前正在使用的服務器參數文件,則會引發錯誤。
可以從現有文本初始化參數文件或內存創建服務器參數文件(SPFILE)。從內存創建SPFILE意味著將正在運行的實例中的初始化參數的當前值復制到SPFILE。
以下示例從文本初始化參數文件/u01/oracle/dbs/init.ora創建服務器參數文件,在這個例子中,沒有指定SPFILE名稱,所以文件是用特定于平臺的默認名稱和位置創建的(https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#CIAJEBBI):
CREATE SPFILE FROM PFILE='/u01/oracle/dbs/init.ora';
下一個示例說明了如何創建服務器參數文件并提供名稱和位置:
CREATE SPFILE='/u01/oracle/dbs/test_spfile.ora'
FROM PFILE='/u01/oracle/dbs/test_init.ora';
下一個示例說明如何根據內存中初始化參數的當前值在默認位置創建服務器參數文件:
CREATE SPFILE FROM MEMORY;
無論使用默認的SPFILE名稱和默認位置,還是指定SPFILE名稱和位置,如果位置中已存在同名的SPFILE,它將被覆蓋而不會顯示警告消息
從文本初始化參數文件創建SPFILE時,與初始化參數文件中的參數設置在同一行中指定的注釋將保留在SPFILE中。所有其他注釋被忽略。
Oracle建議允許數據??庫為SPFILE指定默認名稱并將其存儲在默認位置。這簡化了數據庫的管理。例如,STARTUP命令假定這個默認位置讀取SPFILE。
Table 2-3 PFILE and SPFILE Default Names and Locations on UNIX, LInux, and Windows
Platform
PFILE Default Name
SPFILE Default Name
PFILE Default Location
SPFILE Default Location
UNIX and Linux
initORACLE_SID.ora
spfileORACLE_SID.ora
$ORACLE_HOME/dbs或與數據文件相同位置
沒有使用ASM:
$ORACLE_HOME/dbs或與數據文件相同位置
使用ASM:
與數據文件在同一個磁盤組中
Windows
initORACLE_SID.ora
spfileORACLE_SID.ora
$ORACLE_HOME/database
沒有使用ASM:
$ORACLE_HOME/database
使用ASM:
與數據文件在同一個磁盤組中
啟動時,實例首先搜索名為spfileORACLE_SID.ora的SPFILE,如果未找到,則搜索spfile.ora。使用spfile.ora可以使所有Real Application Cluster(Oracle RAC)實例使用相同的服務器參數文件。 如果兩個SPFILE都未找到,則該實例將搜索文本初始化參數文件initORACLE_SID.ora
如果在默認位置以外的位置創建SPFILE,則必須在默認的PFILE位置創建一個指向服務器參數文件的“stub”PFILE。有關更多信息,請參閱“https://docs.oracle.com/cd/E11882_01/server.112/e25494/start.htm#i1006133”。
當存在Oracle ASM時使用DBCA創建數據庫時,DBCA將SPFILE置于Oracle ASM磁盤組中,并且還會導致創建此stub PFILE。
SPFILE初始化參數
SPFILE初始化參數包含當前服務器參數文件的名稱。當數據庫使用默認的服務器參數文件時,即發出STARTUP命令并且不指定PFILE參數 - SPFILE的值由服務器在內部設置。 SQL * Plus命令SHOW PARAMETERS SPFILE(或任何其他查詢參數值的方法)顯示當前正在使用的服務器參數文件的名稱
更改初始化參數值
兩種初始化參數:
動態初始化參數:可以針對當前的Oracle數據庫實例進行更改。這些更改立即生效
靜態初始化參數:不能為當前實例更改。您必須在文本初始化文件或服務器參數文件中更改這些參數,然后在更改生效之前重新啟動數據庫。
設置或更改初始化參數值
使用ALTER SYSTEM語句的SET子句來設置或更改初始化參數值。可選的SCOPE子句按照下表中的描述來指定更改的范圍:
SCOPE Clause
Description
SCOPE = SPFILE
該更改僅適用于服務器參數文件。效果如下:
對當前實例沒有改變
對于動態和靜態參數,更改在下次啟動時有效并且是持久的
這是靜態參數允許的唯一SCOPE規范。
SCOPE = MEMORY
該更改僅在內存中應用。效果如下:
該更改是針對當前實例進行的,并立即生效。
對于動態參數,效果是即時的,但它不是持久的,因為服務器參數文件未更新。
對于靜態參數,該規范是不允許的。
SCOPE = BOTH
該更改將應用??于服務器參數文件和內存中。效果如下:
該更改是針對當前實例進行的,并立即生效。
對于動態參數,由于服務器參數文件已更新,所以效果是持久的。
對于靜態參數,這個規范是不允許的。
如果實例未啟動服務器參數文件,則指定SCOPE = SPFILE或SCOPE = BOTH是錯誤的。如果使用服務器參數文件啟動實例,則默認值為SCOPE = BOTH;如果使用文本初始化參數文件(PFILE)啟動實例,則默認值為MEMORY。
對于動態參數,還可以指定DEFERRED關鍵字。指定時,更改僅對未來會話有效。
當將SCOPE指定為SPFILE或BOTH時,可選的COMMENT子句可讓將文本字符串與參數更新相關聯。注釋被寫入服務器參數文件。
以下語句更改連接被刪除之前失敗的登錄嘗試的最大次數。它包含注釋,并明確指出只能在服務器參數文件中進行更改。
ALTER SYSTEM SET SEC_MAX_FAILED_LOGIN_ATTEMPTS=3COMMENT='Reduce from 10 for tighter security.'SCOPE=SPFILE;
下一個示例設置了一個復雜的初始化參數,其中包含屬性列表。具體來說,被設置的參數值是LOG_ARCHIVE_DEST_n初始化參數。此聲明可以更改此參數的現有設置或創建新的歸檔目標。
ALTERSYSTEMSET LOG_ARCHIVE_DEST_4='LOCATION=/u02/oracle/rbdb1/',MANDATORY,'REOPEN=2'COMMENT='Add new destination on Nov 29'SCOPE=SPFILE;
當一個值由一系列參數組成時,您不能通過位置或序號編輯單個屬性。每次更新參數時都必須指定完整的值列表,并且新列表完全替換舊列表。
清除初始化參數值
可以使用ALTER SYSTEM RESET命令清除(刪除)用于啟動實例的SPFILE中的任何初始化參數的設置。 SCOPE = MEMORY和SCOPE = BOTH都不允許。 SCOPE = SPFILE子句不是必需的,但可以包含。
可能需要清除SPFILE中的參數,以便在下次數據庫啟動時使用默認值。
導出服務器參數文件
可以使用CREATE PFILE語句將服務器參數文件(SPFILE)導出到文本初始化參數文件。這樣做可能有以下幾個原因:
出于診斷目的,列出當前實例使用的所有參數值。這類似于SQL * Plus SHOW PARAMETERS命令或從V $ PARAMETER或V $ PARAMETER2視圖中選擇。
要修改&spfile;服務器參數文件,首先要導出它,編輯生成的文本文件,然后使用CREATE SPFILE語句重新創建它
導出的文件也可以用來使用PFILE子句啟動實例。
必須具有SYSDBA或SYSOPER系統特權才能執行CREATE PFILE語句。導出的文件在數據庫服務器系統上創建。它包含與參數相關的任何注釋,與參數設置位于同一行。
以下示例從SPFILE創建一個文本初始化參數文件:
CREATE PFILE FROM SPFILE;
由于沒有為文件指定名稱,因此數據庫將創建一個具有平臺特定名稱的初始化參數文件,并且該文件是從特定于平臺的默認服務器參數文件創建的。
以下示例從服務器參數文件創建一個文本初始化參數文件,但在本例中指定了這些文件的名稱:
CREATE PFILE='/u01/oracle/dbs/test_init.ora'
FROM SPFILE='/u01/oracle/dbs/test_spfile.ora';
另一種方法是根據內存中初始化參數的當前值創建一個PFILE。以下是所需命令的示例:
CREATE PFILE='/u01/oracle/dbs/test_init.ora' FROM MEMORY;
備份服務器參數文件
可以通過導出服務器參數文件(SPFILE)來創建備份,如“導出服務器參數文件”中所述。如果數據庫的備份和恢復策略是使用Recovery Manager(RMAN)實施的,那么可以使用RMAN創建SPFILE的備份。備份數據庫時,SPFILE由RMAN自動備份,但RMAN還可以專門創建當前活動SPFILE的備份。
恢復丟失或損壞的服務器參數文件
如果您的服務器參數文件(SPFILE)丟失或損壞,則當前實例可能會失敗,或者下次嘗試啟動數據庫實例可能會失敗。有幾種方法可以恢復SPFILE:
1、如果實例正在運行,請發出以下命令以從內存中的初始化參數的當前值重新創建SPFILE
CREATE SPFILE FROM MEMORY;
該命令使用默認名稱和默認位置創建SPFILE。您也可以用新名稱或指定位置創建SPFILE。有關示例,請參閱“創建服務器參數文件”。
2、如果您有一個有效的文本初始化參數文件(PFILE),請使用以下命令從PFILE重新創建SPFILE
CREATE SPFILE FROM PFILE;
該命令假定PFILE處于默認位置并具有默認名稱。當PFILE不在缺省位置或非默認名稱時,請參閱“創建服務器參數文件”以獲取要使用的命令語法。
3、從備份中恢復SPFILE
有關更多信息,請參閱“備份服務器參數文件”
4、如果以上的方法都不可行,請執行以下步驟:
從警報日志中的參數值列表中創建一個文本初始化參數文件(PFILE):當實例啟動時,用于啟動的初始化參數將寫入警報日志。您可以將警報日志的文本版本(不帶XML標簽)復制并粘貼到新的PFILE中。參閱:https://docs.oracle.com/cd/E11882_01/server.112/e25494/diag.htm#CHDGCEIH
從PFILE創建SPFILE
在參數更新期間讀取/寫入錯誤
如果在參數更新期間讀取或寫入服務器參數文件時發生錯誤,則會在警報日志中報告錯誤,并忽略服務器參數文件的所有后續參數更新。此時,您可以執行以下操作之一:
關閉實例,恢復服務器參數文件并在本節前面介紹,然后重新啟動實例。
如果不關心后續參數更新不會持久,則繼續運行數據庫。
查看參數設置
可以通過多種方式查看參數設置,如下表所示:
Method
Description
SHOW PARAMETERS
此SQL * Plus命令顯示當前會話有效的初始化參數的值。
SHOW SPPARAMETERS
此SQL * Plus命令在服務器參數文件(SPFILE)中顯示初始化參數的值。
CREATE PFILE
此SQL語句根據SPFILE或當前的內存設置創建文本初始化參數文件(PFILE)。然后您可以使用任何文本編輯器查看PFILE。
V$PARAMETER
該視圖顯示當前會話有效的初始化參數的值。
V$PARAMETER2
該視圖顯示當前會話有效的初始化參數的值。在此視圖中區分列表參數值更容易,因為每個列表參數值都顯示在單獨的行中。
V$SYSTEM_PARAMETER
該視圖顯示實例中有效的初始化參數的值。新會話從實例范圍的值繼承參數值。
V$SYSTEM_PARAMETER2
該視圖顯示實例中有效的初始化參數的值。新會話從實例范圍的值繼承參數值。在此視圖中區分列表參數值更容易,因為每個列表參數值都顯示在單獨的行中。
V$SPPARAMETER
該視圖顯示SPFILE的當前內容。如果SPFILE未被實例使用,則該視圖在ISSPECIFIED列中返回FALSE值。
參考資料
https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN00202
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的oracle数据库配置助手来初始化参数,使用服务器参数文件(SPFILE)管理初始化参数...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Effective Java~34. 用
- 下一篇: linux cmake编译源码,linu