Cet article vous présente principalement les informations pertinentes sur les cas pratiques de définition et de réinitialisation dans le didacticiel de configuration des paramètres Oracle. L'article le présente en détail à travers un exemple de code. J'espère qu'il pourra s'y référer. aider tout le monde.
Avant-propos
Cet article vous présente principalement le contenu associé à la définition et à la réinitialisation des paramètres Oracle, et le partage pour votre référence et votre étude. Je ne dirai pas grand-chose ci-dessous, prenons. un regard sur les détails.
Environnement : Oracle 10.2.0.5 RAC
Exigences : Les aq_tm_processes du nœud 1 doivent être restaurés par défaut et les paramètres du nœud 2 doivent rester inchangés
Introduction au contexte :
Vous pouvez trouver le paramètre aq_tm_processes dans le fichier officiel 10.2. Vous pouvez voir que la valeur par défaut de ce paramètre est 0. Appelons-le 0 par défaut.
Ensuite, en pratique, nous avons constaté que l'effet de ce 0 par défaut est complètement différent de celui de la mise manuelle de son SET à 0.
J'ai discuté de cette question avec des collègues et j'ai finalement appris un détail technique :
Dans Oracle, utiliser SET pour définir les valeurs des paramètres vous fait en fait économiser beaucoup de travail. Si vous souhaitez restaurer la valeur par défaut d'Oracle, le moyen le plus efficace consiste à RÉINITIALISER la valeur, afin que tout suive la conception par défaut d'Oracle.
En regardant spécifiquement le scénario actuel, si vous définissez le paramètre aq_tm_processes sur 0, il est complètement différent de la valeur par défaut d'origine de 0.
S'il est défini sur 0, tous les processus de travail q00 seront arrêtés et ne seront pas redémarrés. S'il est 0 par défaut, le processus de travail q00 peut être démarré.
1. Construisez l'environnement de test
Le contenu des paramètres actuellement produits est similaire à celui-ci, avec les paramètres globaux et les paramètres de l'instance 1, comme suit :
*.aq_tm_processes=1 jy1.aq_tm_processes=0
Nous savons que la priorité de paramétrage des instances est élevée, ce qui signifie que l'effet de ce paramétrage est que le paramètre pour l'instance 1 est 0 et le paramètre pour l'instance 2 est 1.
C'est-à-dire : l'instance 1 ne peut pas démarrer le processus de travail q00, et l'instance 2 peut démarrer le processus de travail q00.
Créez un environnement de test pour simuler la production :
Définissez d'abord aq_tm_processes sur 1 :
alter system set aq_tm_processes = 1 scope=both sid='*'; --create pfile='/tmp/pfile11.ora' from spfile;
À ce stade dans le fichier de paramètres Il y aura un tel réglage :
*.aq_tm_processes=1
Ensuite, définissez aq_tm_processes de l'instance 1 sur 0
alter system set aq_tm_processes = 0 scope=both sid='jy1'; --create pfile='/tmp/pfile12.ora' from spfile;
A ce moment, il y aura les réglages suivants dans le fichier de paramètres :
*.aq_tm_processes=1 jy1.aq_tm_processes=0
Cela simule le courant situation de l’environnement de production. Jetons un coup d'œil au processus de fonctionnement réel :
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>
Vous pouvez voir qu'après l'avoir mis à 0, le processus q00 disparaît, même si l'instance est redémarré. De même, le processus q00 ne démarrera plus.
2. Plan de test
Ce que nous devons faire maintenant est de restaurer les aq_tm_processes du nœud 1 par défaut sans modifier les paramètres du nœud 2.
2.1 Essayer de réinitialiser directement le paramètre pour spécifier le nœud 1, puis relancer la vérification ?
alter system reset aq_tm_processes scope=spfile sid='jy1'; create pfile='/tmp/pfile13.ora' from spfile;
Redémarrer la vérification du nœud 1 ? Confirmer si les exigences peuvent être respectées ?
Le fonctionnement spécifique réel est le suivant :
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>
Comme vous pouvez le constater, la réponse est évidemment : non.
Parce que cela ne réinitialisera que les paramètres de l'instance 1, mais comme il y avait des paramètres globaux * auparavant, vous constaterez que le paramètre aq_tm_processes sera 1 après le redémarrage de l'instance 1.
En d'autres termes, si les paramètres de l'instance 1 sont supprimés, les paramètres globaux seront naturellement suivis.
2.2 La bonne façon d'expérimenter
Avec la fondation ci-dessus, nous avons l'idée de mettre en œuvre les exigences :
Pensons à ce sujet, si l'on considère la situation globale, les paramètres sont également réinitialisés, ce qui affectera les paramètres précédents du nœud 2. Dans ce cas, la valeur du nœud 2 ne peut être définie que séparément, puis les paramètres globaux sont réinitialisés.
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>
Comme vous pouvez le constater, la réponse à la vérification du test de fonctionnement réel est conforme aux attentes : oui.
Remarque : toutes les étapes permettant de créer un fichier pfile peuvent être supprimées. A cette époque, j'ajoutais cette opération après chaque étape car je voulais confirmer si la théorie était correcte.
3. Résumé
Pour résumer, dans l'environnement client réel, les trois étapes suivantes doivent être effectuées pour répondre aux exigences :
--保障节点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='*';
Explication détaillée de la fonction de traduction et de la fonction de remplacement dans Oracle
À propos de l'utilisation de Contient fonction dans Oracle Résumé
Une brève analyse de l'application des fonctions de table dans Oracle
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!