国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle參數(shù)設(shè)置教程之set和reset的實用案例

2020-07-26 14:02:33
字體:
供稿:網(wǎng)友

前言

本文主要給大家介紹了關(guān)于Oracle參數(shù)設(shè)置之set和reset的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細的介紹吧。

環(huán)境:Oracle 10.2.0.5 RAC

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

背景介紹:

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

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

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

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

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

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

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

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

*.aq_tm_processes=1jy1.aq_tm_processes=0

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

即:實例1無法啟動q00小工進程,實例2可以啟動q00小工進程。

構(gòu)建測試環(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è)置:

*.aq_tm_processes=1

再設(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è)置:

*.aq_tm_processes=1jy1.aq_tm_processes=0

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

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 aqNAME         TYPE  VALUE------------------------------------ ----------- ------------------------------aq_tm_processes      integer  1SQL> !ps -ef|grep q00oracle 1462 27385 0 15:27 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00oracle 1464 1462 0 15:27 pts/1 00:00:00 grep q00oracle 26534  1 0 15:08 ?  00:00:00 ora_q002_jy1oracle 31538  1 0 15:21 ?  00:00:00 ora_q000_jy1SQL> 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 aqNAME         TYPE  VALUE------------------------------------ ----------- ------------------------------aq_tm_processes      integer  0SQL> !ps -ef|grep q00oracle 2044 27385 0 15:28 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00oracle 2046 2044 0 15:28 pts/1 00:00:00 grep q00SQL> 

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

2.測試方案

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

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

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

重啟節(jié)點1驗證?確認是否可以實現(xiàn)需求?

具體實際操作如下:

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 aqNAME         TYPE  VALUE------------------------------------ ----------- ------------------------------aq_tm_processes      integer  0SQL> !ps -ef|grep q00oracle 3801 27385 0 15:32 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00oracle 3803 3801 0 15:32 pts/1 00:00:00 grep q00SQL> startup forceORACLE instance started.Total System Global Area 599785472 bytesFixed Size     2098112 bytesVariable Size    301993024 bytesDatabase Buffers   289406976 bytesRedo Buffers    6287360 bytesDatabase mounted.Database opened.SQL> show parameter aqNAME         TYPE  VALUE------------------------------------ ----------- ------------------------------aq_tm_processes      integer  1SQL> !ps -ef|grep q00oracle 4228  1 0 15:33 ?  00:00:00 ora_q000_jy1oracle 4232  1 0 15:33 ?  00:00:00 ora_q002_jy1oracle 5021 27385 0 15:35 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00oracle 5023 5021 0 15:35 pts/1 00:00:00 grep q00SQL> 

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

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

2.2 實驗正確的方式

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

我們想下,如果把全局參數(shù)也reset,會影響到節(jié)點2之前的設(shè)置,那么這樣,只能將節(jié)點2的值單獨設(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é)點1驗證??確認是否可以實現(xiàn)需求?具體實際操作如下: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 forceORACLE instance started.Total System Global Area 599785472 bytesFixed Size     2098112 bytesVariable Size    301993024 bytesDatabase Buffers   289406976 bytesRedo Buffers    6287360 bytesDatabase mounted.Database opened.SQL> show parameter aqNAME         TYPE  VALUE------------------------------------ ----------- ------------------------------aq_tm_processes      integer  0SQL> !ps -ef|grep q00oracle 7446  1 1 15:40 ?  00:00:00 ora_q000_jy1oracle 7448  1 0 15:40 ?  00:00:00 ora_q001_jy1oracle 7450  1 0 15:40 ?  00:00:00 ora_q002_jy1oracle 7452  1 0 15:40 ?  00:00:00 ora_q003_jy1oracle 7480 27385 0 15:41 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00oracle 7482 7480 0 15:41 pts/1 00:00:00 grep q00SQL> 

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

注:所有創(chuàng)建pfile的步驟都可以去掉。當(dāng)時是因為想確認理論是否正確才給每一步后加了這個操作。

3.總結(jié)

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

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

本文知識點總結(jié):其實只需下面這3個知識點清楚就ok了:

  • reset操作實際只是將這個值從spfile中移除;
  • 針對某個實例級別的設(shè)置優(yōu)先級高于整體設(shè)置;
  • 注意Oracle對于SET參數(shù)值這種方式,實際上少做了很多事情,簡單理解就是默認0和設(shè)置0不一樣。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對武林網(wǎng)的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 松滋市| 三台县| 景宁| 溧阳市| 沁阳市| 聂荣县| 南丹县| 兴山县| 牟定县| 乌苏市| 长岛县| 邢台县| 安义县| 个旧市| 本溪| 广西| 巴里| 邵阳县| 股票| 永清县| 苍南县| 汉川市| 兰考县| 邵武市| 四平市| 文水县| 定边县| 黎川县| 腾冲县| 永康市| 句容市| 龙井市| 嘉义县| 苍山县| 中卫市| 民和| 祥云县| 栖霞市| 城步| 株洲县| 绥芬河市|