Home PC Games Linux Windows Database Network Programming Server Mobile  
           
  Home \ Database \ Flow control message transmission between RAC     - Use this one-time password via SSH secure login Linux (Programming)

- Linux environmental performance data acquisition system (Linux)

- Linux Oracle delete archived logs (Database)

- General Linux interface server parameter tuning (Server)

- Percona MySQL 5.6 semi-synchronous replication (Database)

- CentOS 6.4 Python 2.6 upgrade to 2.7 (Linux)

- Linux FAQ - How to fix tar:Exitingwith failure status due to previous errors (Linux)

- VMware Workstation virtual machine startup error: Could not open / dev / vmmon in CentOS 6 (Linux)

- Web server security policy (Linux)

- MySQL 5.6 Open full query log (Database)

- RHEL5 stalled due to power service error system can not start (Linux)

- Java Prototype Pattern (Programming)

- MyCAT log analysis (Database)

- CentOS 6.x Basic System Optimization after installation (Linux)

- Character Encoding notes: ASCII, Unicode and UTF-8 (Linux)

- It is time to upgrade your gulp 4.0 (Programming)

- C ++ in the elimination Wunused (Programming)

- Into the Java keyword instanceof (Programming)

- Installation and use the telnet command under CentOS 6.x (Linux)

- CoreOS Linux introduces Kubernetes kubelet (Server)

 
         
  Flow control message transmission between RAC
     
  Add Date : 2018-11-21      
         
         
         
  RAC system for data blocks between nodes and node consistency is guaranteed through mechanisms to ensure that the message, that is, we often say gcs and ges of these messages to ensure the. These messages respectively LMD and LMS process between instances of transmission;

LMD handles message information, such as the state of the block, lock level and other information, and LMS will be responsible for transferring data block, we do not discuss this mechanism consistency, focusing on the message transfer and flow control.

Whether or LMD LMS messaging, the information transmitted through the UDP protocol for passing messages through the private network, and transfer time between instances of message transmission, the message is interactive with each other, can not It has been sent by one node while the other node is only responsible for sustained receives;
So time between instances of transmission must balance the chance of transmission of the message, the reasonable control of the flow between each other, RAC by introducing the concept of ticket in the transmission between each other and the probability of traffic control;

For ticket conceptual understanding and best practice, Oracle has two related documents can refer to:

Resolving ORA-481 and "terminating the instance due to error 481" (Doc ID 1950963.1)
Best Practices and Recommendations for RAC databases using very large SGA (e.g. 100 GB) (Doc ID 1619155.1)

Here we can see that the number of Oracle is held by a node ticket to send and receive messages flow control, a node sends a message queue at the same time will take a ticket to the peer, peer ticket will increased local ticket will be reduced, the local node will be calculated locally available tickets based on the available information and the buffer has been received and sent a request ticket information (null-req),
When there is no ticket available locally, the local LMS / LMD will enter the message waiting queue and constant checking ticket latch inside information, to determine whether there is information available ticket available until the end of the sent back message, and bring back available after the tickets, locally to continue to send messages to the peer;


We can query the dynamic view: GV $ GES_TRAFFIC_CONTROLLER to get the number of tickets avalible on each node, and you can TCKT_WAIT judge whether LMD LMS or are waiting ticket, if we continue to see each other here waiting, UDP buffer described in package information is not timely treatment, or during the transmission of the lost;
Of course, we can empirically see lms / lmd message transmission in the case before the crash of the queue to determine whether the problem is caused by lack of ticket, but usually, it does require a guess, not as good as direct access to the GV $ GES_TRAFFIC_CONTROLLER intuitive.

Our most common problem is described in 1619155.1 RAC hang / LMD crashes instance with ORA-600 [kjmscndscq: timeout]
and
ORA-00481 After "The instance eviction reason is 0x2" due to Lack of Ticket (Doc ID 1644015.1)

These two issues are relatively clear:

Alarm log: ORA-600 [kjmscndscq: timeout] before or ora-00481 error of "The instance eviction reason is 0x2"


Because instructions are between instances tickets shortages led to fault message transmission LMS / LMD between timeouts occur.

This problem is particularly evident on the HP platform, because LMS HP platforms are not generally true process of RR (real time) mode, leading LMS did not get the timely dispatch of the CPU priority questions about the process, please refer to the following documents:

HP-UX: HPUX_SCHED_NOAGE and Scheduling Priority-Policy for LMS in RAC (Doc ID 759082.1)

So for users of HP platforms, if the SGA area is relatively large (usually more than 100G), business frequently update the same data block table live on multiple nodes, it is very easy to run into such problems.


Solution:

The following document gives most of the solution:

ORA-00481 After "The instance eviction reason is 0x2" due to Lack of Ticket (Doc ID 1644015.1)
Best Practices and Recommendations for RAC databases using very large SGA (e.g. 100 GB) (Doc ID 1619155.1)

If you run your system on the 12.1.0.2 version should be noted that LMD process between each node should be consistent (and the default number is the number of CPU-related) number, if the number of different LMD need patch 17,821,214;
     
         
         
         
  More:      
 
- Ubuntu users how to install the latest Nvidia graphics drivers (Linux)
- Ubuntu 14.04 / 12.04 subscribe users to install software Liferea 1.10.10 (Linux)
- Mahout source code analysis: FP-Growth algorithm parallelization (Programming)
- iOS GCD multithreading simple to use (Programming)
- Android thread mechanism --AsyncTask (Programming)
- Usage sed some of the parameters (Linux)
- Binding multiple network cards in Linux using command nmcli (Linux)
- Oracle metadata Reconstruction experiments (Database)
- Ubuntu Gitolite management Git Server code base permissions (Server)
- The temporary operation of the document mkstemp on Linux (Linux)
- Phoenix agents use P2P WebRTC development (Programming)
- To assign multiple IP addresses NIC on the CentOS 7 (Linux)
- NAT and firewall under Linux (Linux)
- Chrome plug-in management, online-offline installation, part of the plug presentations (Linux)
- How to manage the time and date at systemd Linux systems (Linux)
- Proficient in C / C ++ can also find a very good job (Programming)
- Java String and StringBuffer and StringBuilder Comments (Programming)
- Python regular expressions: how to use regular expressions (Programming)
- Unix system security configuration (Linux)
- Use Android Studio and Gradle packaged multi-version APK (Programming)
     
           
     
  CopyRight 2002-2022 newfreesoft.com, All Rights Reserved.