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