This version of "Oracle Real Application Clusters (RAC) 19c & Later – Best Practices" was first presented in Oracle Open World (OOW) London 2020 and includes content from the OOW 2019 version of the deck. The deck has been updated with the latest information regarding ORAchk as well as upgrade tips & tricks.
3. Agenda
• What’s New in Oracle RAC?
• How to best upgrade to Oracle RAC 19c?
• Prepare for Changes
4. Agenda
• What’s New in Oracle RAC?
• How to best upgrade to Oracle RAC 19c?
• Prepare for Changes
5. Oracle RAC is Ready for a New Generation
Ease of use
established with
Oracle RAC 12.2
Best ever
scalability &
performance in
Oracle RAC 18c +
Best ever High
Availability in
Oracle RAC 19c
24 7
https://www.oracle.com/technetwork/database/options/clustering/overview/new-generation-oracle-rac-5975370.pdf
8. What Needs to be Configured for
Continuous Availability?
• RAC or RAC One, Active Data Guard, GoldenGate …Server Stack
• All databases on Flex ASMFlex ASM
• Services for Location TransparencyServices
• Connections appear continuousContinuous Connections
• FAN or 18c Database for drainingDraining
• Application ContinuityInflight work continues
• Drain in a timely mannerSLA’s
https://www.oracle.com/technetwork/database/options/clustering/applicationcontinuity/continuous-service-for-apps-on-atpd-5486113.pdf
9. The TNS Connector String for High Availability
ALIAS =(DESCRIPTION =
(CONNECT_TIMEOUT=90) (RETRY_COUNT=20)(RETRY_DELAY=3)
(TRANSPORT_CONNECT_TIMEOUT=3)
(ADDRESS_LIST =
(LOAD_BALANCE=on)
( ADDRESS = (PROTOCOL = TCP)(HOST=primary-scan)(PORT=1521)))
(ADDRESS_LIST =
(LOAD_BALANCE=on)
( ADDRESS = (PROTOCOL = TCP)(HOST=secondary-scan)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME = gold-cloud)))
Standard for All Drivers starting with Oracle Database 12.2
https://www.slideshare.net/MarkusMichalewicz/oracle-maa-best-practices-applications-considerations
13. The Must Dos
Avoid Pipes
DBMS_PIPE can be
used with RAC, but
application changes
required to make it
work outweigh
benefits.
Use Advanced
Queuing (AQ) instead.
Use Connection Pools
Control the number of
concurrent processes
using a well-balanced
workload across nodes.
Hence, use (FAN
enabled) Connection
Pools.
Use Scalable Sequences
Use non-ordered &
cached sequences if
sequence is used to
generate primary key.
Use Scalable
Sequences (new in 18c)
[see hidden slide]
Avoid Write Contention
Frequent transactional
changes to the same
data blocks in all
instances may result in
“write hot spots”.
Some derivation of this
occurrence is likely the
reason for a less than
expected scaling result.
NUM
INC1()
Sequence
Connection
Pool
https://www.oracle.com/technetwork/database/options/clustering/overview/racappdevbp-3124851.pdf
23. Agenda
• What’s New in Oracle RAC?
• How to best upgrade to Oracle RAC 19c?
• Prepare for Changes
24. De-support of Non-Container Database Architecture
• The Oracle Database non-CDB architecture will be
de-supported from Oracle Database 20c onwards
• To ease the migration to this architecture,
from Oracle Database 19c onwards, the multitenant architecture
supports up to 3 user-created Pluggable Databases of any type
• The Multitenant Option is required for 4 or more user-created PDBs
28. Oracle Clusterware Startup Diagnostics
• Environment changes and incorrect
permissions of binaries can prevent
stack startup
• Oracle Clusterware 19c attempts to
auto-diagnose unsuccessful startup
issues
• Provides detailed logging as needed:
CRS-41053: checking Oracle Grid Infrastructure for file
permission issues
PRVG-2031 : Owner of file ”…gipcd.bin" did not match the
[Expected="grid(54320)" Found="oracle(54325)"]
*NOT all daemons are shown in illustration above
init
cssdAgent
cssdmonitor
ohasd
oraAgent
cssd
crsd
ctssd
HAIP
ACFS
mdnsd
gipcd
evmd
ASM
oraRootAgent
29. Oracle Clusterware Runtime Diagnostics
• Oracle Clusterware 19c processes maintain histograms and statistics
such as trace file rotation frequency, time taken for rotation, etc.
• Preserves critical information on very busy systems
• Severity tagging provides human readable criticality of messages
2019-08-20 08:36:13.142 : CSSD:1871161088: [ ERROR] clssgmclienteventhndlr:
(SENDCOMPLETE) No proc found for ClientID
2019-08-20 08:36:13.188 : CSSD:1871161088: [ INFO] clssgmDeadProc: Removing clientID
2:43454:0 (0x7fda802df820), with GIPC
• New diagnostics monitor thread ensures in-memory logs (UTS) are
periodically written to disk, ensuring diagnostics are available in case
of process crashes
30. Oracle RAC Performance Automation
• My Oracle Support Note 1619155.1 describes “Best Practices and
Recommendations for RAC databases with SGA size over 100GB”
• With RAC 19c, most of the recommendations are auto-configured:
• Dynamic CR slaves to deal with changing workload
• LMS CR slaves (_max_cr_rollbacks deprecated)
• See Note 1630755.1 to reduce “LMS process busy” event in AWR report
• LMS CR Slaves
• Dynamic DLM ticket adjustment to prevent hangs
• Remove _lm_tickets
For RAC Databases with >100 GB SGA
32. Thank you!
Markus Michalewicz (Markus.Michalewicz@oracle.com)
Senior Director of Database Product Management
@KnownAsMarkus
www.linkedin.com/in/markusmichalewicz
www.slideshare.net/MarkusMichalewicz