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 ইনস্টল করা — উচ্চ-স্তরের ধাপ
- পূর্বশর্ত: OS (Oracle Linux 7/8), shared storage কনফিগার করা, time sync (chrony/NTP), SCAN-এর জন্য DNS, swap, hugepages
- node গুলোর মধ্যে SSH user equivalence কনফিগার করুন
oracleওgridইউজারের জন্য - cluster verification চালান:
./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup - Grid Infrastructure 19c ইনস্টল করুন OUI (gridSetup.sh)-এর মাধ্যমে — "Configure Oracle Grid Infrastructure for a New Cluster" বেছে নিন
- ASM disk group তৈরি করুন OCR/VOTING, DATA, RECO-র জন্য
- Oracle Database 19c software only ইনস্টল করুন
oracleইউজার হিসেবে - RAC ডেটাবেজ তৈরি করুন DBCA দিয়ে — RAC database template বেছে নিন
- cluster health যাচাই করুন
crsctl status resource -tদিয়ে - সর্বশেষ 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-এ প্যাচ প্রয়োগ করুন:
- Node 1 থেকে সংযোগ drain করুন (service relocate করুন)
- Node 1-এ service ও instance বন্ধ করুন
- Node 1-এ OPatch / OPatchAuto প্রয়োগ করুন
- Node 1 চালু করুন, service ফিরিয়ে relocate করুন
- 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 eventsওcluster_interconnectshealth-এ 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 lsinventorysnapshot দিয়ে 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। বিনামূল্যে ৩০ মিনিটের পরামর্শ।
তথ্যসূত্র ও আরও পড়ুন
- 📄 Oracle Real Application Clusters Administration Guide (19c)
- 📄 Oracle Grid Infrastructure Installation Guide (19c)
- 📄 Oracle Automatic Storage Management Administrator's Guide (19c)
- 📄 Oracle Maximum Availability Architecture — RAC Best Practices
এই গাইডটি ব্যাংকিং, ম্যানুফ্যাকচারিং ও ফার্মা পরিবেশে হাতে-কলমে Oracle RAC ডিপ্লয়মেন্ট অভিজ্ঞতা এবং Oracle-এর অফিসিয়াল RAC ডকুমেন্টেশনের ভিত্তিতে তৈরি।
