Maison base de données tutoriel mysql Oracle RAC cache fusion原理测试

Oracle RAC cache fusion原理测试

Jun 07, 2016 pm 04:50 PM
oracle oracle rac

Oracle RAC cache fusion是RAC最核心的工作机制,他把所有实例的SGA虚拟成一个大的SGA区,每当不同的实例请求相同的数据块,这个数

Oracle RAC cache fusion是RAC最核心的工作机制,他把所有实例的SGA虚拟成一个大的SGA区,每当不同的实例请求相同的数据块,这个数据块就需要在实例间进行传递。那到底什么时候传递呢?加上RAC有4个节点,其中的一个节点执行了一条SQL是全表扫描一张表,这个时候这个节点把这张表的数据加载到缓存;其他的节点如果需要相同的数据块会取第一个节点的数据,,那是需要的时候去,还是第一个节点推送呢?
 
  实验设定:
 
  1.清空4个节点的share pool和databuffer,其实当清除第一个节点的时候,其他的节点都已经清除了,从执行清除语句的时间就可以看出。清除后查下各节点data buffer中有没有缓存将要执行的SQL的表。
 
  2.在第一个节点上执行一条SQL.,在其他的节点上看data buffer中是否缓存SQL的表,如果有,说明是数据块是主动推送的。
 
  实验结论:
 
  数据块从第执行的节点推送到其他的节点上,RAC虽然使得使用的资源多了几倍,但由于cache fusion这个特性,上了RAC后的系统系统是否有提升还是未知之数。
 

 

---清理4个节点(54,55,56,57)shared_pool和buffer_cache
 现在节点54上清理share pool和data buffer
 SQL> alter system flush shared_pool;
 系统已更改。
 SQL> alter system flush buffer_cache;
 系统已更改。
 
---在其他的节点55,56,57上同样执行
 
---在第54个节点测试语句
 SQL> SELECT COUNT(1)
  2  FROM MM_DISTRIBUTION W
  3  WHERE    W.DATA_AREA LIKE '03'
  4    || '%'
  5  AND W.CREATE_DATE > TO_DATE('2013-01-01', 'yyyy-mm-dd');
 已用时间:  00: 00: 02.40
 执行计划
 ----------------------------------------------------------
 Plan hash value: 3507380501
 -------------------------------------------------------------------------------------------------------
 | Id  | Operation          | Name            | Rows  | Bytes | Cost (%CPU)| Time    | Pstart| Pstop |
 -------------------------------------------------------------------------------------------------------
 |  0 | SELECT STATEMENT    |                |    1 |    13 |  5209  (2)| 00:01:03 |      |      |
 |  1 |  SORT AGGREGATE    |                |    1 |    13 |            |          |      |      |
 |  2 |  PARTITION LIST ALL|                | 43668 |  554K|  5209  (2)| 00:01:03 |    1 |    2 |
 |*  3 |    TABLE ACCESS FULL| MM_DISTRIBUTION | 43668 |  554K|  5209  (2)| 00:01:03 |    1 |    2 |
 -------------------------------------------------------------------------------------------------------
 Predicate Information (identified by operation id):
 ---------------------------------------------------
    3 - filter("W"."CREATE_DATE">TO_DATE('2013-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
              "W"."DATA_AREA" LIKE '03%')
 统计信息
 ----------------------------------------------------------
        2997  recursive calls
          0  db block gets
      24196  consistent gets
      23581  physical reads
          0  redo size
        334  bytes sent via SQL*Net to client
        338  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          39  sorts (memory)
          0  sorts (disk)
          1  rows processed
 
SQL> /
 
已用时间:  00: 00: 00.28
 
执行计划
 ----------------------------------------------------------
 Plan hash value: 3507380501
 -------------------------------------------------------------------------------------------------------
 | Id  | Operation          | Name            | Rows  | Bytes | Cost (%CPU)| Time    | Pstart| Pstop |
 -------------------------------------------------------------------------------------------------------
 |  0 | SELECT STATEMENT    |                |    1 |    13 |  5209  (2)| 00:01:03 |      |      |
 |  1 |  SORT AGGREGATE    |                |    1 |    13 |            |          |      |      |
 |  2 |  PARTITION LIST ALL|                | 43668 |  554K|  5209  (2)| 00:01:03 |    1 |    2 |
 |*  3 |    TABLE ACCESS FULL| MM_DISTRIBUTION | 43668 |  554K|  5209  (2)| 00:01:03 |    1 |    2 |
 -------------------------------------------------------------------------------------------------------
 Predicate Information (identified by operation id):
 ---------------------------------------------------
    3 - filter("W"."CREATE_DATE">TO_DATE('2013-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
              "W"."DATA_AREA" LIKE '03%')
 统计信息
 ----------------------------------------------------------
          0  recursive calls
          0  db block gets
      23554  consistent gets
          0  physical reads
          0  redo size
        334  bytes sent via SQL*Net to client
        338  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
 
---在4个节点查看share_pool中的SQL是否同步
 select sql_text from v$sql s where sql_text like '%MM_DISTRIBUTION%';
 
---在4个节点查看测试buffer_cache,可以看到其他的3个节点都已同步缓存数据
 select count(b.object_name)
  from sys.v_x$bh a, user_objects b
  where a.OBJ = b.object_id
    and b.object_name = 'MM_DISTRIBUTION'
    and a.STATE 0;    ---state=0表示free,其他表示已占用
 COUNT(B.OBJECT_NAME)
 --------------------
                23543 

Oracle教程:实例故障恢复

Linux-6-64下安装Oracle 12C笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

本文永久更新链接地址:

linux

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Combien de temps les journaux de la base de données Oracle seront-ils conservés ? Combien de temps les journaux de la base de données Oracle seront-ils conservés ? May 10, 2024 am 03:27 AM

La durée de conservation des journaux de la base de données Oracle dépend du type de journal et de la configuration, notamment : Redo logs : déterminé par la taille maximale configurée avec le paramètre "LOG_ARCHIVE_DEST". Redo logs archivés : Déterminé par la taille maximale configurée par le paramètre "DB_RECOVERY_FILE_DEST_SIZE". Redo logs en ligne : non archivés, perdus au redémarrage de la base de données et la durée de conservation est cohérente avec la durée d'exécution de l'instance. Journal d'audit : Configuré par le paramètre "AUDIT_TRAIL", conservé 30 jours par défaut.

Fonction pour calculer le nombre de jours entre deux dates dans Oracle Fonction pour calculer le nombre de jours entre deux dates dans Oracle May 08, 2024 pm 07:45 PM

La fonction dans Oracle pour calculer le nombre de jours entre deux dates est DATEDIFF(). L'utilisation spécifique est la suivante : Spécifiez l'unité d'intervalle de temps : intervalle (tel que jour, mois, année) Spécifiez deux valeurs de date : date1 et date2DATEDIFF(interval, date1, date2) Renvoie la différence en jours

L'ordre des étapes de démarrage de la base de données Oracle est L'ordre des étapes de démarrage de la base de données Oracle est May 10, 2024 am 01:48 AM

La séquence de démarrage de la base de données Oracle est la suivante : 1. Vérifiez les conditions préalables ; 2. Démarrez l'écouteur ; 3. Démarrez l'instance de base de données ; 4. Attendez que la base de données s'ouvre ; 6. Vérifiez l'état de la base de données ; . Activez le service (si nécessaire) ; 8. Testez la connexion.

Comment utiliser l'intervalle dans Oracle Comment utiliser l'intervalle dans Oracle May 08, 2024 pm 07:54 PM

Le type de données INTERVAL dans Oracle est utilisé pour représenter les intervalles de temps. La syntaxe est INTERVAL <precision> <unit> Vous pouvez utiliser des opérations d'addition, de soustraction, de multiplication et de division pour utiliser INTERVAL, ce qui convient aux scénarios tels que le stockage de données temporelles et. calculer les différences de dates.

Comment voir le nombre d'occurrences d'un certain caractère dans Oracle Comment voir le nombre d'occurrences d'un certain caractère dans Oracle May 09, 2024 pm 09:33 PM

Pour trouver le nombre d'occurrences d'un caractère dans Oracle, effectuez les étapes suivantes : Obtenez la longueur totale d'une chaîne ; Obtenez la longueur de la sous-chaîne dans laquelle un caractère apparaît. Comptez le nombre d'occurrences d'un caractère en soustrayant la longueur de la sous-chaîne ; de la longueur totale.

Exigences de configuration matérielle du serveur de base de données Oracle Exigences de configuration matérielle du serveur de base de données Oracle May 10, 2024 am 04:00 AM

Exigences de configuration matérielle du serveur de base de données Oracle : Processeur : multicœur, avec une fréquence principale d'au moins 2,5 GHz Pour les grandes bases de données, 32 cœurs ou plus sont recommandés. Mémoire : au moins 8 Go pour les petites bases de données, 16 à 64 Go pour les tailles moyennes, jusqu'à 512 Go ou plus pour les grandes bases de données ou les charges de travail lourdes. Stockage : disques SSD ou NVMe, matrices RAID pour la redondance et les performances. Réseau : réseau haut débit (10GbE ou supérieur), carte réseau dédiée, réseau à faible latence. Autres : alimentation stable, composants redondants, système d'exploitation et logiciels compatibles, dissipation thermique et système de refroidissement.

De quelle quantité de mémoire Oracle a-t-il besoin ? De quelle quantité de mémoire Oracle a-t-il besoin ? May 10, 2024 am 04:12 AM

La quantité de mémoire requise par Oracle dépend de la taille de la base de données, du niveau d'activité et du niveau de performances requis : pour le stockage des tampons de données, des tampons d'index, l'exécution d'instructions SQL et la gestion du cache du dictionnaire de données. Le montant exact dépend de la taille de la base de données, du niveau d'activité et du niveau de performances requis. Les meilleures pratiques incluent la définition de la taille SGA appropriée, le dimensionnement des composants SGA, l'utilisation d'AMM et la surveillance de l'utilisation de la mémoire.

Comment remplacer une chaîne dans Oracle Comment remplacer une chaîne dans Oracle May 08, 2024 pm 07:24 PM

La méthode de remplacement de chaînes dans Oracle consiste à utiliser la fonction REPLACE La syntaxe de cette fonction est : REPLACE(string, search_string, replace_string). Étapes d'utilisation : 1. Identifiez la sous-chaîne à remplacer ; 2. Déterminez la nouvelle chaîne pour remplacer la sous-chaîne ; 3. Utilisez la fonction REPLACE pour remplacer. L'utilisation avancée inclut : les remplacements multiples, le respect de la casse, le remplacement des caractères spéciaux, etc.

See all articles