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!