使用altersystemset修改參數(shù)不生效-創(chuàng)新互聯(lián)

最近在用虛擬機上的Oracle RAC做實驗,看到后臺日志一直報錯,原因是配置的log_archive_dest_2參數(shù)指到了節(jié)點2,而節(jié)點2又沒有開機,所以導(dǎo)致一直有報錯。于是想這一參數(shù)是之前做實驗的時候修改的,現(xiàn)在不需要了,直接把這個參數(shù)重置一下就可以了,于是執(zhí)行了下面的語句:

創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元玉門做網(wǎng)站,已為上家服務(wù),為玉門各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220alter system reset log_archive_dest_2;

再使用show parameter查看參數(shù)已經(jīng)被清空了:

SQL> show parameter log_archive_dest_2  NAME      TYPE  VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest_2      string

看alert日志中報錯也沒有了,以為這樣事情就結(jié)束了。但事實上還沒有結(jié)束。等下一次數(shù)據(jù)庫重啟后看到之前的報錯又出現(xiàn)了,而且log_archive_dest_2參數(shù)的設(shè)置又恢復(fù)到了重置之前的值:

SQL> show parameter log_archive_dest_2  NAME      TYPE  VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest_2      string  service=rac2

難道是上次重置沒有成功嗎?

從上次的檢查結(jié)果來看重置是成功的,而且alert日志中也提示修改成功。

那為什么這么靈異的事情居然發(fā)生了呢?

嘗試再次重置:

SQL> alter system reset log_archive_dest_2; alter system reset log_archive_dest_2 * ERROR at line 1: ORA-32010: cannot find entry to delete in SPFILE

看到出現(xiàn)上面的報錯,是說spfile中沒有相應(yīng)的條目可以刪除。

如果沒有條目我的設(shè)置又是從哪里來的呢?

于是生成pfile來查看參數(shù)文件中關(guān)于log_archive_dest_2具體是怎么設(shè)置的:

orcl2.log_archive_dest_1='location=/home/oracle/rac2' orcl1.log_archive_dest_1='location=/home/oracle/rac1' *.log_archive_dest_1='location=+data' orcl2.log_archive_dest_2='service=rac1' orcl1.log_archive_dest_2='service=rac2'

從上面可以看到針對每一個實例的log_archive_dest_2都做了設(shè)置,難道是這個原因么?

再次嘗試重置,這次語句如下:

alter system reset log_archive_dest_2 sid='orcl1';

再次生成pfile文件,看到orcl1.log_archive_dest_2='service=rac2'這條記錄已經(jīng)沒有了,說明已經(jīng)把配置清除了,重啟實例再次查看:

SQL> show parameter log_archive_dest_2  NAME      TYPE  VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest_2      string

alert日志中也不再報錯了。

那么問題又來了,我第一次清除的又是什么配置呢?

有經(jīng)驗的同學(xué)應(yīng)該已經(jīng)想到這個問題的原因了。我們繼續(xù)看下面的分析。

我們再回到第一次生成的spfile文件中可以看到如下配置,我們以log_archive_dest_1參數(shù)為例

orcl2.log_archive_dest_1='location=/home/oracle/rac2' orcl1.log_archive_dest_1='location=/home/oracle/rac1' *.log_archive_dest_1='location=+data'

對于log_archive_dest_1參數(shù)設(shè)置有兩類,一類是'*.'開頭的,一個是以'<sid>.'開頭的。'*.'開頭的設(shè)置是對所有與數(shù)據(jù)庫相關(guān)的且沒有設(shè)置該參數(shù)的實例有效,而以'<sid>.'開頭的設(shè)置只對設(shè)置對應(yīng)的實例有效。

我這前是對兩個實例orcl1和orcl2的log_archive_dest_1分別設(shè)置了不同的值,而分別設(shè)置之前所有的實例的log_archive_dest_1參數(shù)值都是'location=+data'。

我們再來看alter system set|reset parameter的語法:

set parameter

parameter_name =    parameter_value [, parameter_value ]...    [ COMMENT = string ]    [ DEFERRED ]    [ { SCOPE = { MEMORY | SPFILE | BOTH }      | SID = { 'sid' | '*' }      }...    ]

reset parameter

parameter_name    [ { SCOPE = SPFILE       | SID = { 'sid' | '*' }      }...    ]

從上面的語法可以看到,設(shè)置和重置參數(shù)都有一個可選項:SID = { 'sid' | '*' },而默認(rèn)的都是SID='*'。

這里應(yīng)該就可以解釋我第一次重置log_archive_dest_2時為什么可以成功,而第二次沒有成功的原因:我第一次刪除了*.log_archive_dest_2='xxxx'這一條目,第一次再次刪除時文件中沒有了,所以報錯。

這也能解釋為什么重置時加上sid='orcl1'項后重啟依然生效。

還有一個問題就是如果參數(shù)文件中,對于同一個參數(shù)同時有'*.'開頭的和以'<sid>.'開頭的參數(shù)設(shè)置時,Oracle會選哪個做為實例的參數(shù)設(shè)置的,我們來看一句官方文檔中對SID的描述,就可以回答這個問題了:

SID The SID clause lets you specify the SID of the instance where the value will take effect.

  • Specify SID = '*' if you want Oracle Database to change the value of the parameter for all instances that do not already have an explicit setting for this parameter.

  • Specify SID = 'sid' if you want Oracle Database to change the value of the parameter only for the instance sid. This setting takes precedence over previous and subsequent ALTER SYSTEM SET statements that specify SID = '*'.

If you do not specify this clause, then:

  • If the instance was started up with a pfile (traditional plain-text initialization parameter file), then Oracle Database assumes the SID of the current instance.

  • If the instance was started up with an spfile (server parameter file), then Oracle Database assumes SID = '*'.

小提示:可以使用show spparameter <parameter_name>查看spfile中對于參數(shù)的設(shè)置

sys@ORA11G>show spparameter log_archive_dest_1 SID  NAME        TYPE    VALUE -------- ----------------------------- ----------- ---------------------------- ora11g  log_archive_dest_1        string    location=/home/oracle/dump *  log_archive_dest_1        string    location=/u01/

參考:http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_2014.htm#i2061284

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前標(biāo)題:使用altersystemset修改參數(shù)不生效-創(chuàng)新互聯(lián)
文章鏈接:http://muchs.cn/article16/cddhgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、手機網(wǎng)站建設(shè)、企業(yè)建站靜態(tài)網(wǎng)站電子商務(wù)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)