📍 ধানমন্ডি, ঢাকা-১২০৫🇬🇧 English

Oracle 19c RAC: Real Application Clusters গভীরভাবে

Oracle Real Application Clusters (RAC) হলো active-active ডেটাবেজ উচ্চ availability-র সোনালি মানদণ্ড। একাধিক দেশে ব্যাংকিং, ফার্মা ও সফটওয়্যার-প্রোডাক্ট ক্লায়েন্টদের জন্য 19c RAC ক্লাস্টার ডিপ্লয় ও পরিচালনার পর আমি আত্মবিশ্বাসের সঙ্গে বলতে পারি: ঠিকভাবে কনফিগার করলে RAC এমন zero-downtime আর্কিটেকচার দেয় যার সঙ্গে অন্য কোনো ডেটাবেজ প্রযুক্তি টেক্কা দিতে পারে না। RAC-তে প্রথম কাজ শুরু করার সময় এমন একটি বিস্তারিত টেকনিক্যাল গাইড আমি খুঁজেছিলাম যা তখন ছিল না — এটি সেই গাইড।

১. Oracle RAC কী এবং কেন ব্যবহার করবেন?

Oracle RAC-এর মাধ্যমে ভিন্ন ভিন্ন physical/virtual সার্ভারে থাকা একাধিক Oracle instance একটিমাত্র shared ডেটাবেজে অ্যাক্সেস করতে পারে। প্রতিটি instance — নিজের node-এ চলে — তার নিজস্ব মেমরি (SGA), background process ও রিসোর্স রাখে, কিন্তু সবাই shared storage-এ (ASM disk group) সংরক্ষিত একই datafile সেট থেকে পড়ে ও তাতে লেখে।

কেন RAC ডিপ্লয় করবেন?

  • উচ্চ availability: একটি node ব্যর্থ হলে টিকে থাকা node গুলো স্বচ্ছভাবে ডেটাবেজ সেবা দিতে থাকে
  • স্কেলেবিলিটি: বেড়ে যাওয়া লোড সামলাতে আরও node যোগ করুন
  • লোড ব্যালান্সিং: SCAN listener ও service-এর মাধ্যমে workload স্বয়ংক্রিয়ভাবে বণ্টিত হয়
  • Zero-downtime প্যাচিং: এক এক করে node-এ rolling patch প্রয়োগ
  • হার্ডওয়্যার ব্যবহার: সব node সক্রিয় — কোনো অলস standby-র অপচয় নেই

২. RAC আর্কিটেকচার: সামগ্রিক চিত্র

একটি সাধারণ ২-node Oracle 19c RAC-তে এই উপাদানগুলো থাকে:

  • দুই বা ততোধিক node (physical সার্ভার বা VM) যারা একই OS চালায়
  • Shared Storage — SAN বা NAS, সব node থেকে দৃশ্যমান
  • Private Interconnect — cache fusion-এর জন্য node গুলোর মধ্যে ডেডিকেটেড নেটওয়ার্ক (10 GbE+)
  • Public Network — ক্লায়েন্ট সংযোগ ও SCAN-এর জন্য
  • Oracle Grid Infrastructure (GI) — Clusterware + ASM
  • Oracle Database 19c — RAC অপশনসহ ইনস্টল করা

৩. Oracle Grid Infrastructure: ভিত্তি

RAC ইনস্টল করার আগে আপনাকে Oracle Grid Infrastructure 19c ইনস্টল করতে হবে। GI দুটি গুরুত্বপূর্ণ সেবা দেয়:

৩.১ Oracle Clusterware (CRS)

Clusterware হলো সেই সফটওয়্যার স্তর যা একাধিক সার্ভারকে একটি একক cluster হিসেবে কাজ করতে দেয়। মূল উপাদানগুলো:

  • Cluster Ready Services (CRS): cluster রিসোর্স সমন্বয়কারী master daemon
  • Cluster Synchronization Services (CSS): voting disk ব্যবহার করে node সদস্যপদ পর্যবেক্ষণ করে
  • Event Manager (EVM): cluster event প্রকাশ করে
  • Oracle Notification Service (ONS): ক্লায়েন্টদের কাছে alert বিতরণ করে
  • ohasd: প্রথম চালু হওয়া daemon; বাকি সবকিছু bootstrap করে

Cluster status যাচাই করা হয় এভাবে:

crsctl check cluster -all
crsctl status resource -t
crsctl status server
olsnodes -n -i -s

৩.২ Automatic Storage Management (ASM)

ASM হলো ডেটাবেজ ফাইলের জন্য Oracle-এর volume manager ও file system। এটি shared disk গুলোকে disk group-এ পুল করে, স্বয়ংক্রিয় striping, mirroring ও rebalancing সহ। একটি সাধারণ RAC-তে গুরুত্বপূর্ণ disk group:

  • +OCR/VOTING: Cluster registry ও voting disk (NORMAL redundancy = ন্যূনতম ৩টি disk)
  • +DATA: Datafile, controlfile, online redo log
  • +RECO: Fast Recovery Area — archive log, RMAN backup, flashback log

৪. SCAN: Single Client Access Name

SCAN হলো Oracle RAC-এর সবচেয়ে মার্জিত ফিচারগুলোর একটি। প্রতিটি node-এর IP জানার বদলে ক্লায়েন্ট একটিমাত্র DNS নামে (যেমন prod-scan.company.com) সংযুক্ত হয়, যা round-robin ভিত্তিতে ৩টি SCAN IP-তে resolve করে। cluster node গুলো জুড়ে তিনটি SCAN listener চলে, ক্লায়েন্ট সংযোগ গ্রহণ করে এবং service registration ও লোড অনুযায়ী উপযুক্ত node-এ রুট করে।

সুবিধা: node যোগ/অপসারণ করলে ক্লায়েন্টের কোনো কনফিগারেশন বদলাতে হয় না। একটি node যোগ করলেন? সেটি স্বয়ংক্রিয়ভাবে SCAN-এর সঙ্গে register হয়ে যায়।

৫. Voting Disk ও OCR

  • Voting Disk: cluster সদস্যপদ সিদ্ধান্তের জন্য ব্যবহৃত হয়। কোনো node যদি অধিকাংশ voting disk-এ অ্যাক্সেস হারায়, split-brain রোধে সেটিকে evict (reboot) করা হয়। NORMAL redundancy-র জন্য ন্যূনতম ৩টি voting disk।
  • Oracle Cluster Registry (OCR): cluster কনফিগারেশন মেটাডেটা সংরক্ষণ করে — node তালিকা, service, রিসোর্স। প্রতি ৪ ঘণ্টা অন্তর স্বয়ংক্রিয়ভাবে backup নেওয়া হয়।

৬. Cache Fusion: RAC কীভাবে সামঞ্জস্য বজায় রাখে

এটিই RAC-এর জাদু। যখন Node A একটি block পরিবর্তন করে, Node B-র সর্বশেষ সংস্করণ দরকার হয়। disk-এ লিখে তারপর পড়ার বদলে RAC Cache Fusion ব্যবহার করে private interconnect-এর মাধ্যমে সরাসরি instance গুলোর মধ্যে block পাঠিয়ে দেয়। Global Cache Service (GCS) মালিকানা সমন্বয় করে; Global Enqueue Service (GES) node জুড়ে lock পরিচালনা করে।

এই কারণেই low-latency private interconnect নিয়ে কোনো আপস চলে না। ন্যূনতম 10 GbE, আদর্শভাবে high-throughput সিস্টেমের জন্য 25 GbE বা InfiniBand।

৭. Oracle 19c RAC ইনস্টল করা — উচ্চ-স্তরের ধাপ

  1. পূর্বশর্ত: OS (Oracle Linux 7/8), shared storage কনফিগার করা, time sync (chrony/NTP), SCAN-এর জন্য DNS, swap, hugepages
  2. node গুলোর মধ্যে SSH user equivalence কনফিগার করুন oraclegrid ইউজারের জন্য
  3. cluster verification চালান: ./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup
  4. Grid Infrastructure 19c ইনস্টল করুন OUI (gridSetup.sh)-এর মাধ্যমে — "Configure Oracle Grid Infrastructure for a New Cluster" বেছে নিন
  5. ASM disk group তৈরি করুন OCR/VOTING, DATA, RECO-র জন্য
  6. Oracle Database 19c software only ইনস্টল করুন oracle ইউজার হিসেবে
  7. RAC ডেটাবেজ তৈরি করুন DBCA দিয়ে — RAC database template বেছে নিন
  8. cluster health যাচাই করুন crsctl status resource -t দিয়ে
  9. সর্বশেষ Release Update প্যাচ প্রয়োগ করুন (সবসময় সর্বশেষ RU চালান)

৮. অপরিহার্য RAC ম্যানেজমেন্ট কমান্ড

এগুলো আয়ত্ত করুন — এগুলোই আপনার প্রতিদিনের সঙ্গী:

# Cluster health
crsctl check cluster -all
crsctl status resource -t

# Database management
srvctl status database -d MYDB
srvctl start database -d MYDB
srvctl stop database -d MYDB -o immediate
srvctl config database -d MYDB

# Instance management
srvctl start instance -d MYDB -i MYDB1
srvctl stop instance -d MYDB -i MYDB2 -o transactional

# Services
srvctl add service -d MYDB -s OLTP -preferred MYDB1,MYDB2
srvctl start service -d MYDB -s OLTP
srvctl status service -d MYDB

# SCAN and listeners
srvctl status scan
srvctl status scan_listener
lsnrctl status LISTENER_SCAN1

# ASM
asmcmd lsdg
sqlplus / as sysasm
SELECT name, state, total_mb, free_mb FROM v$asm_diskgroup;

৯. RAC প্যাচিং: Rolling Update

RAC-এর সবচেয়ে বড় জয়গুলোর একটি — zero downtime-এ এক এক করে node-এ প্যাচ প্রয়োগ করুন:

  1. Node 1 থেকে সংযোগ drain করুন (service relocate করুন)
  2. Node 1-এ service ও instance বন্ধ করুন
  3. Node 1-এ OPatch / OPatchAuto প্রয়োগ করুন
  4. Node 1 চালু করুন, service ফিরিয়ে relocate করুন
  5. Node 2 (ও অন্যান্য)-এর জন্য পুনরাবৃত্তি করুন

সবসময় প্যাচ আগে non-prod RAC-তে পরীক্ষা করুন। ত্রৈমাসিক Release Update (RU) সুপারিশ করা হয়।

১০. ১৮ বছরের প্রোডাকশন থেকে RAC বেস্ট প্র্যাকটিস

  • সবসময় ASM ব্যবহার করুন — datafile-এর জন্য raw device বা NFS নয়। 19c-তে ASMLib-এর চেয়ে ASM Filter Driver (AFD) বেশি পছন্দনীয়।
  • নেটওয়ার্ক আলাদা করুন: Public + Private (interconnect) ভিন্ন switch-এ
  • redundancy-র জন্য private interconnect bonding ব্যবহার করুন (HAIP আপনাকে এটি দেয়)
  • Hugepages: সম্পূর্ণ SGA-র জন্য কনফিগার করুন — পারফরম্যান্স উল্লেখযোগ্যভাবে বাড়ায়
  • Time sync: বাধ্যতামূলক। drift অদ্ভুত eviction ঘটায়। chrony ব্যবহার করুন।
  • service ব্যবহার করুন: কখনও সরাসরি instance-এ সংযুক্ত হবেন না। service আপনাকে স্বচ্ছ failover দেয় (TAF/FAN/AC)।
  • cluster event পর্যবেক্ষণ করুন: crsctl eventscluster_interconnects health-এ Enterprise Manager বা কাস্টম alerting সেট করুন।
  • আপনার topology ডকুমেন্ট করুন: node নাম, IP, VIP, SCAN, disk group, service — হালনাগাদ diagram রাখুন।
  • ত্রৈমাসিক failover drill অনুশীলন করুন। আত্মবিশ্বাস আসে মহড়া থেকে।

১১. সাধারণ RAC সমস্যা ও সমাধান

  • Node Eviction: সাধারণত নেটওয়ার্ক বা storage সমস্যা। /var/log/messages, ocssd.log, নেটওয়ার্ক ping time যাচাই করুন।
  • ধীর Cache Fusion: interconnect latency যাচাই করুন (oradebug ipc)। "gc cr block 2-way" wait event খুঁজুন।
  • Voting Disk হারানো: quorum হারালে cluster বন্ধ হয়ে যায়। crsctl replace votedisk দিয়ে OCR backup থেকে restore করুন।
  • ASM ভারসাম্যহীন: কম-লোডের সময় ALTER DISKGROUP DATA REBALANCE POWER 8; চালান।
  • OPatch ব্যর্থতা: প্যাচিংয়ের আগে সবসময় opatch lsinventory snapshot দিয়ে ORACLE_HOME backup নিন।

১২. কখন RAC ব্যবহার করবেন না

RAC শক্তিশালী, তবে সবসময় সঠিক উত্তর নয়:

  • একক-অ্যাপ workload যেগুলোর HA দরকার নেই — অতিরিক্ত
  • সীমিত বাজেট — RAC-তে shared storage, বেশি লাইসেন্স, জটিল সেটআপ দরকার
  • দক্ষ DBA ছাড়া — RAC নিরাপদে চালাতে দক্ষতা লাগে
  • শুধু DR-এর জন্য — বদলে Data Guard ব্যবহার করুন

সবচেয়ে উপযুক্ত: mission-critical OLTP সিস্টেম যেখানে প্রতি মিনিট ডাউনটাইমে বড় অঙ্কের খরচ হয় — ব্যাংক, টেলকো, এয়ারলাইন, ERP backend।

শেষ কথা

Oracle 19c RAC হলো এন্টারপ্রাইজ-গ্রেড workload-এর জন্য এন্টারপ্রাইজ-গ্রেড সফটওয়্যার। জটিলতা বাস্তব — কিন্তু ফলটাও তেমনই। সঠিকভাবে আর্কিটেক্ট করা, ভালোভাবে পর্যবেক্ষণ করা একটি RAC cluster বছরের পর বছর নিরবচ্ছিন্ন সেবা দেয়। ভুলগুলো তখনই ঘটে যখন টিম RAC-কে "শুধু দুটি ডেটাবেজ" ভাবে — এটি তা নয়। এটি নিজস্ব আচরণ, ব্যর্থতার ধরন ও রিকভারি প্যাটার্নসহ একটি একক distributed সিস্টেম।

আপনার প্রতিষ্ঠান যদি RAC ডিপ্লয়মেন্ট, migration পরিকল্পনা করে, কিংবা বিদ্যমান cluster নিয়ে সমস্যায় থাকে, আসুন কথা বলি। আমি একাধিক শিল্পে — ব্যাংকিং, ফার্মা, সফটওয়্যার, ম্যানুফ্যাকচারিং — প্রোডাকশন RAC cluster আর্কিটেক্ট ও পরিচালনা করেছি, আর RAC-এর যে বিরল সমন্বয় দরকার — ব্যবহারিক অভিজ্ঞতার ক্ষত আর আর্কিটেকচারাল স্পষ্টতা — তা নিয়ে আসি।

🔗 RAC সেটআপ বা সাপোর্ট দরকার?

Oracle RAC কনফিগারেশন, ট্রাবলশুটিং, পারফরম্যান্স টিউনিং ও migration। বিনামূল্যে ৩০ মিনিটের পরামর্শ।

📩 বিনামূল্যে পরামর্শ RAC মূল্য দেখুন
নাসির উদ্দিন খান — Oracle DBA ও AI কনসালট্যান্ট

লেখক পরিচিতি

নাসির উদ্দিন খান সিনিয়র আইটি কনসালট্যান্ট · Oracle DBA · ERP ও AI বিশেষজ্ঞ OCP · Red Hat Certified · MBA · CSV · ১৮+ বছরের অভিজ্ঞতা

নাসির একজন Oracle Certified Professional এবং CSV-সার্টিফায়েড আইটি কনসালট্যান্ট, অবস্থান ঢাকা, বাংলাদেশ। ম্যানুফ্যাকচারিং, ফার্মা, ব্যাংকিং ও হেলথকেয়ার প্রতিষ্ঠানে Oracle ডেটাবেজ, WebLogic, ERP এবং অন-প্রিমিস AI নিয়ে তাঁর ১৮+ বছরের হাতে-কলমে অভিজ্ঞতা রয়েছে।

তথ্যসূত্র ও আরও পড়ুন

এই গাইডটি ব্যাংকিং, ম্যানুফ্যাকচারিং ও ফার্মা পরিবেশে হাতে-কলমে Oracle RAC ডিপ্লয়মেন্ট অভিজ্ঞতা এবং Oracle-এর অফিসিয়াল RAC ডকুমেন্টেশনের ভিত্তিতে তৈরি।

সম্পর্কিত লেখা

💬