Heim  >  Artikel  >  Datenbank  >  Beispiele für Oracle-Tutorials zum Festlegen und Zurücksetzen der Verwendung

Beispiele für Oracle-Tutorials zum Festlegen und Zurücksetzen der Verwendung

小云云
小云云Original
2017-12-11 15:03:371445Durchsuche

Dieser Artikel führt Sie hauptsächlich in die praktischen Fälle des Festlegens und Zurücksetzens im Tutorial zum Festlegen von Oracle-Parametern ein. Ich hoffe, dass der Artikel ausführlich darauf verweisen kann allen helfen.

Vorwort

Dieser Artikel stellt Ihnen hauptsächlich den zugehörigen Inhalt des Festlegens und Zurücksetzens von Oracle-Parametereinstellungen vor und teilt ihn als Referenz und zum Studium weiter. Ich werde im Folgenden nicht viel sagen Schauen wir uns die Details an.

Umgebung: Oracle 10.2.0.5 RAC

Anforderungen: Die aq_tm_processes von Knoten 1 müssen auf die Standardeinstellungen zurückgesetzt werden und die Einstellungen von Knoten 2 müssen unverändert bleiben

Hintergrundeinführung:

Sie können den Parameter aq_tm_processes aus der offiziellen Datei 10.2 finden. Sie können sehen, dass der Standardwert dieses Parameters 0 ist. Nennen wir ihn Standard 0.

Dann haben wir in der Praxis festgestellt, dass die Wirkung dieser Standardeinstellung 0 völlig anders ist als die, wenn man SET manuell auf 0 setzt.

Habe diese Angelegenheit mit Kollegen besprochen und schließlich ein technisches Detail erfahren:

In Oracle erspart Ihnen die Verwendung von SET zum Festlegen von Parameterwerten tatsächlich viel Arbeit. Wenn Sie den Standardwert von Oracle wiederherstellen möchten, ist es am effektivsten, den Wert ZURÜCKSETZEN, damit alles dem Standarddesign von Oracle folgt.

Wenn Sie sich speziell das aktuelle Szenario ansehen, unterscheidet es sich völlig vom ursprünglichen Standardwert 0, wenn Sie den Parameter aq_tm_processes auf 0 setzen.

Wenn auf 0 gesetzt, werden alle q00-Arbeitsprozesse heruntergefahren und nicht neu gestartet. Wenn es standardmäßig 0 ist, kann der q00-Workerprozess gestartet werden.

1. Erstellen Sie die Testumgebung

Der aktuell erstellte Parameterinhalt ähnelt diesem, mit globalen Einstellungen und Instanz-1-Einstellungen, wie folgt:

*.aq_tm_processes=1
jy1.aq_tm_processes=0

Wir wissen, dass die Einstellungspriorität für Instanzen hoch ist, was bedeutet, dass diese Einstellung bewirkt, dass der Parameter für Instanz 1 0 und der Parameter für Instanz 2 ist ist 1.

Das heißt: Instanz 1 kann den q00-Workerprozess nicht starten und Instanz 2 kann den q00-Workerprozess starten.

Erstellen Sie eine Testumgebung, um die Produktion zu simulieren:

Setzen Sie zunächst aq_tm_processes auf 1:

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

Zu diesem Zeitpunkt In der Parameterdatei wird es eine solche Einstellung geben:

*.aq_tm_processes=1

Dann setze aq_tm_processes von Instanz 1 auf 0

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

Zu diesem Zeitpunkt gibt es solche Einstellungen in der Parameterdatei:

*.aq_tm_processes=1
jy1.aq_tm_processes=0

Dies simuliert den Strom Situation der Produktionsumgebung. Werfen wir einen Blick auf den tatsächlichen Betriebsprozess:

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>

Sie können sehen, dass der q00-Prozess verschwindet, nachdem er auf 0 gesetzt wurde, auch wenn die Instanz wird neu gestartet. Ebenso wird der q00-Prozess nicht mehr gestartet.

2. Testplan

Was wir jetzt tun müssen, ist, die aq_tm_processes von Knoten 1 auf die Standardeinstellungen zurückzusetzen, ohne die Einstellungen von Knoten 2 zu ändern.

2.1 Versuchen Sie, den Parameter direkt zurückzusetzen, um Knoten 1 anzugeben, und starten Sie dann die Überprüfung neu?

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

Verifizierung von Knoten 1 neu starten? Bestätigen Sie, ob die Anforderungen erreicht werden können?

Der spezifische tatsächliche Vorgang ist wie folgt:

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>

Wie Sie sehen können, lautet die Antwort offensichtlich: Nein.

Da dadurch nur die Parameter von Instanz 1 zurückgesetzt werden, es aber zuvor globale Parameter * gab, werden Sie feststellen, dass der Parameter aq_tm_processes nach dem Neustart von Instanz 1 1 ist.
Mit anderen Worten: Wenn die Einstellungen für Instanz 1 entfernt werden, werden natürlich die Gesamteinstellungen übernommen.

2.2 Die richtige Art zu experimentieren

Auf der oben genannten Grundlage haben wir die Idee, die Anforderungen umzusetzen:

Lass uns nachdenken Wenn wir die Gesamtsituation betrachten, werden auch die Parameter zurückgesetzt, was sich auf die vorherigen Einstellungen von Knoten 2 auswirkt. In diesem Fall kann der Wert von Knoten 2 nur separat eingestellt werden, und dann werden die globalen Parameter zurückgesetzt.

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;

重启节点1验证??确认是否可以实现需求?

具体实际操作如下:

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>

Wie Sie sehen können, entspricht die Antwort auf die Überprüfung des realen Betriebstests den Erwartungen: Ja.

Hinweis: Alle Schritte zum Erstellen einer P-Datei können entfernt werden. Damals habe ich diese Operation nach jedem Schritt hinzugefügt, weil ich bestätigen wollte, ob die Theorie richtig war.

3. Zusammenfassung

Zusammenfassend sollten in der tatsächlichen Kundenumgebung die folgenden drei Schritte durchgeführt werden, um die Anforderungen zu erfüllen:

--保障节点2的设置不变
alter system set aq_tm_processes=1 scope=spfile sid='jy2';
--reset节点1的设置
alter system reset aq_tm_processes scope=spfile sid='jy1';
--reset全局的设置
alter system reset aq_tm_processes scope=spfile sid='*';

Verwandte Empfehlungen:

Detaillierte Erläuterung der Übersetzungsfunktion und Ersetzungsfunktion in Oracle

Über die Verwendung der Contains Funktion in Oracle Zusammenfassung

Eine kurze Analyse der Anwendung von Tabellenfunktionen in Oracle

Das obige ist der detaillierte Inhalt vonBeispiele für Oracle-Tutorials zum Festlegen und Zurücksetzen der Verwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn