久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle參數(shù)設(shè)置之set和reset怎么用

共計(jì) 5097 個(gè)字符,預(yù)計(jì)需要花費(fèi) 13 分鐘才能閱讀完成。

這篇文章主要為大家展示了“Oracle 參數(shù)設(shè)置之 set 和 reset 怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Oracle 參數(shù)設(shè)置之 set 和 reset 怎么用”這篇文章吧。

環(huán)境:Oracle 10.2.0.5 RAC

需求:節(jié)點(diǎn) 1 的 aq_tm_processes 要求恢復(fù)默認(rèn),節(jié)點(diǎn) 2 設(shè)置要求保持不變

背景介紹:

從 10.2 官檔可以查到 aq_tm_processes 參數(shù),看到該參數(shù)的默認(rèn)值是 0,我們姑且叫做它為默認(rèn) 0.

然后,在實(shí)際上發(fā)現(xiàn),這個(gè)默認(rèn) 0 和我們手工將其 SET 設(shè)置成 0,效果是完全不一樣的。

與同事交流此事,最終得知一個(gè)技術(shù)細(xì)節(jié):

Oracle 中,使用 SET 設(shè)置參數(shù)值實(shí)際上是少做很多事情的,如果你想恢復(fù) Oracle 的默認(rèn)值,最有效的辦法就是 RESET 該值,這樣,才會(huì)一切都按照 Oracle 默認(rèn)的設(shè)計(jì)。

具體來(lái)看現(xiàn)在的場(chǎng)景,如果你對(duì)參數(shù) aq_tm_processes 設(shè)置為 0. 那和本來(lái)的默認(rèn) 0 是完全不一樣的。

如果是設(shè)置 0,所有 q00 小工進(jìn)程都會(huì)關(guān)閉不會(huì)再啟動(dòng)。如果是默認(rèn) 0,q00 小工進(jìn)程是可以啟動(dòng)的。

1. 構(gòu)建測(cè)試環(huán)境

目前生產(chǎn)的參數(shù)內(nèi)容是類(lèi)似這樣,有全局設(shè)置,有實(shí)例 1 的設(shè)置,如下:

*.aq_tm_processes=1
jy1.aq_tm_processes=0

我們知道,針對(duì)實(shí)例的設(shè)置優(yōu)先級(jí)是高的,也就是說(shuō)這樣設(shè)置的效果就是實(shí)例 1 該參數(shù)是 0,實(shí)例 2 該參數(shù)是 1.

即:實(shí)例 1 無(wú)法啟動(dòng) q00 小工進(jìn)程,實(shí)例 2 可以啟動(dòng) q00 小工進(jìn)程。

構(gòu)建測(cè)試環(huán)境模擬生產(chǎn):

先設(shè)置 aq_tm_processes 為 1:

alter system set aq_tm_processes = 1 scope=both sid= * 
--create pfile= /tmp/pfile11.ora  from spfile;

此時(shí)參數(shù)文件中就會(huì)有這樣的設(shè)置:

*.aq_tm_processes=1

再設(shè)置實(shí)例 1 的 aq_tm_processes 為 0

alter system set aq_tm_processes = 0 scope=both sid= jy1 
--create pfile= /tmp/pfile12.ora  from spfile;

此時(shí)參數(shù)文件中就會(huì)有這樣的設(shè)置:

*.aq_tm_processes=1
jy1.aq_tm_processes=0

此時(shí)就模擬了生產(chǎn)環(huán)境的現(xiàn)狀。下面來(lái)看下實(shí)際的操作過(guò)程:

SQL  
SQL  alter system set aq_tm_processes = 1 scope=both sid= * 
System altered.
SQL  create pfile= /tmp/pfile11.ora  from spfile;
File created.
SQL  show parameter aq
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
SQL  !ps -ef|grep q00
oracle 1462 27385 0 15:27 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00
oracle 1464 1462 0 15:27 pts/1 00:00:00 grep q00
oracle 26534 1 0 15:08 ? 00:00:00 ora_q002_jy1
oracle 31538 1 0 15:21 ? 00:00:00 ora_q000_jy1
SQL  
SQL  alter system set aq_tm_processes = 0 scope=both sid= jy1 
System altered.
SQL  create pfile= /tmp/pfile12.ora  from spfile;
File created.
SQL  show parameter aq
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
SQL  !ps -ef|grep q00
oracle 2044 27385 0 15:28 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00
oracle 2046 2044 0 15:28 pts/1 00:00:00 grep q00
SQL

可以看到,確實(shí)設(shè)置為 0 之后 q00 進(jìn)程就消失了,即使再重啟實(shí)例也是一樣的,q00 進(jìn)程不再會(huì)啟動(dòng)。

2. 測(cè)試方案

現(xiàn)在我們要做的就是保障不更改節(jié)點(diǎn) 2 的設(shè)置情況下,將節(jié)點(diǎn) 1 的 aq_tm_processes 恢復(fù)默認(rèn)。

2.1 嘗試直接 reset 參數(shù)指定節(jié)點(diǎn) 1,然后重啟驗(yàn)證?

alter system reset aq_tm_processes scope=spfile sid= jy1 
create pfile= /tmp/pfile13.ora  from spfile;

重啟節(jié)點(diǎn) 1 驗(yàn)證?確認(rèn)是否可以實(shí)現(xiàn)需求?

具體實(shí)際操作如下:

SQL  alter system reset aq_tm_processes scope=spfile sid= jy1 
System altered.
SQL  create pfile= /tmp/pfile13.ora  from spfile;
File created.
SQL  show parameter aq
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
SQL  !ps -ef|grep q00
oracle 3801 27385 0 15:32 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00
oracle 3803 3801 0 15:32 pts/1 00:00:00 grep q00
SQL  startup force
ORACLE instance started.
Total System Global Area 599785472 bytes
Fixed Size 2098112 bytes
Variable Size 301993024 bytes
Database Buffers 289406976 bytes
Redo Buffers 6287360 bytes
Database mounted.
Database opened.
SQL  show parameter aq
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
SQL  !ps -ef|grep q00
oracle 4228 1 0 15:33 ? 00:00:00 ora_q000_jy1
oracle 4232 1 0 15:33 ? 00:00:00 ora_q002_jy1
oracle 5021 27385 0 15:35 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00
oracle 5023 5021 0 15:35 pts/1 00:00:00 grep q00
SQL

可以看到,答案明顯是:不可以。

因?yàn)檫@樣只會(huì)將實(shí)例 1 的參數(shù) reset,但是由于之前還有全局參數(shù) *,所以重啟實(shí)例 1 后會(huì)發(fā)現(xiàn),aq_tm_processes 參數(shù)會(huì)是 1。
也就是說(shuō),針對(duì)實(shí)例 1 的設(shè)置去掉了,自然會(huì)沿襲整體的設(shè)置。

2.2 實(shí)驗(yàn)正確的方式

有了上面的基礎(chǔ),就有了實(shí)現(xiàn)需求的思路:

我們想下,如果把全局參數(shù)也 reset,會(huì)影響到節(jié)點(diǎn) 2 之前的設(shè)置,那么這樣,只能將節(jié)點(diǎn) 2 的值單獨(dú)設(shè)定,然后再 reset 全局參數(shù)。

alter system set aq_tm_processes = 1 scope=both sid= jy2 
--create pfile= /tmp/pfile14.ora  from spfile;
alter system reset aq_tm_processes scope=spfile sid= * 
--create pfile= /tmp/pfile15.ora  from spfile;
重啟節(jié)點(diǎn) 1 驗(yàn)證??確認(rèn)是否可以實(shí)現(xiàn)需求?具體實(shí)際操作如下:SQL  alter system set aq_tm_processes = 1 scope=both sid= jy2 
System altered.
SQL  create pfile= /tmp/pfile14.ora  from spfile;
File created.
SQL  alter system reset aq_tm_processes scope=spfile sid= * 
System altered.
SQL  create pfile= /tmp/pfile15.ora  from spfile;
File created.
SQL  startup force
ORACLE instance started.
Total System Global Area 599785472 bytes
Fixed Size 2098112 bytes
Variable Size 301993024 bytes
Database Buffers 289406976 bytes
Redo Buffers 6287360 bytes
Database mounted.
Database opened.
SQL  show parameter aq
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
SQL  !ps -ef|grep q00
oracle 7446 1 1 15:40 ? 00:00:00 ora_q000_jy1
oracle 7448 1 0 15:40 ? 00:00:00 ora_q001_jy1
oracle 7450 1 0 15:40 ? 00:00:00 ora_q002_jy1
oracle 7452 1 0 15:40 ? 00:00:00 ora_q003_jy1
oracle 7480 27385 0 15:41 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00
oracle 7482 7480 0 15:41 pts/1 00:00:00 grep q00
SQL

可以看到,真實(shí)操作測(cè)試驗(yàn)證的答案和預(yù)想的一致:可以。

注:所有創(chuàng)建 pfile 的步驟都可以去掉。當(dāng)時(shí)是因?yàn)橄氪_認(rèn)理論是否正確才給每一步后加了這個(gè)操作。

3. 總結(jié)

那么總結(jié)歸納下,實(shí)際在客戶環(huán)境下,就是應(yīng)該做以下三個(gè)步驟完成需求:

-- 保障節(jié)點(diǎn) 2 的設(shè)置不變
alter system set aq_tm_processes=1 scope=spfile sid= jy2 
--reset 節(jié)點(diǎn) 1 的設(shè)置
alter system reset aq_tm_processes scope=spfile sid= jy1 
--reset 全局的設(shè)置
alter system reset aq_tm_processes scope=spfile sid= *

本文知識(shí)點(diǎn)總結(jié):其實(shí)只需下面這 3 個(gè)知識(shí)點(diǎn)清楚就 ok 了:

reset 操作實(shí)際只是將這個(gè)值從 spfile 中移除;

針對(duì)某個(gè)實(shí)例級(jí)別的設(shè)置優(yōu)先級(jí)高于整體設(shè)置;

注意 Oracle 對(duì)于 SET 參數(shù)值這種方式,實(shí)際上少做了很多事情,簡(jiǎn)單理解就是默認(rèn) 0 和設(shè)置 0 不一樣。

以上是“Oracle 參數(shù)設(shè)置之 set 和 reset 怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-04發(fā)表,共計(jì)5097字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 盱眙县| 红河县| 阳原县| 遵化市| 定陶县| 满城县| 运城市| 怀柔区| 雅江县| 遵义市| 长乐市| 汉沽区| 金川县| 万源市| 宣恩县| 西盟| 吴川市| 桃园市| 都昌县| 台湾省| 阳东县| 萨迦县| 沛县| 日照市| 凌云县| 区。| 定兴县| 赤峰市| 长乐市| 隆尧县| 图们市| 扬中市| 凤城市| 辽阳市| 石渠县| 德格县| 寻乌县| 仪陇县| 项城市| 哈巴河县| 洪江市|