কম্পিউটার

ওরাকল RAC নোড ওয়েটিং এর ভূমিকা

একটি Oracle Real Application Clusters (RAC) পরিবেশে, সমস্ত দৃষ্টান্ত বা সার্ভার ব্যক্তিগত নেটওয়ার্কে উচ্চ-গতির আন্তঃসংযোগ ব্যবহার করে একে অপরের সাথে যোগাযোগ করে। যদি একটি RAC-এর ইনস্ট্যান্স সদস্যরা এই প্রাইভেট ইন্টারকানেক্টের মাধ্যমে একে অপরের সাথে পিং করতে বা সংযোগ করতে ব্যর্থ হয়, তবে সমস্ত সার্ভার যেগুলি শারীরিকভাবে চালু এবং চলমান (এবং সেই সার্ভারগুলিতে ডাটাবেস ইনস্ট্যান্সগুলি) স্প্লিট-ব্রেইন নামে পরিচিত একটি অবস্থায় পরিণত হতে পারে। .

একটি ওরাকল ক্লাস্টারে (ওরাকল RAC 12c রিলিজ 2 সংস্করণের আগে), যখন নেটওয়ার্ক বা ডিস্ক সমস্যার কারণে অ্যাসপ্লিট-ব্রেন সমস্যা দেখা দেয়, তখন সর্বনিম্ন নোড-সংখ্যার নোড ক্লাস্টারে টিকে থাকে। যাইহোক, সর্বশেষ Oracle RAC 12cRelease 2-এর সাথে, অ্যালগরিদমে একটি পরিবর্তন হয়েছে যার দ্বারা উচ্ছেদ করা হবে এমন প্রার্থীর নোডগুলিকে নির্দিষ্ট ক্ষেত্রে বেছে নেওয়া হয় যেখানে সাব-ক্লাস্টারে সমান সংখ্যক নোড তৈরিতে বিভক্ত-মগজের ফলাফল হয়। .

এই ব্লগ পোস্টটি নতুন নোড-ওয়েটিং বৈশিষ্ট্যের উপর ভিত্তি করে OracleRAC 12c রিলিজ 2-এ নোড উচ্ছেদ অ্যালগরিদমের পরিবর্তনগুলি কভার করে৷

নোড-ওয়েটিং অ্যালগরিদমের ভূমিকা

নিম্নলিখিত চিত্রটি নোড-ওয়েটিং অ্যালোরিদমকে চিত্রিত করে।

ওরাকল RAC নোড ওয়েটিং এর ভূমিকা ওরাকেলে নোড ওয়েটিং

সূত্র:https://goo.gl/images/qarxrq

নোড ওয়েটিং হল ওরাকল RAC 12c রিলিজ 2 এর সাথে প্রবর্তিত একটি নতুন বৈশিষ্ট্য যা বেড়ার সময় একটি ক্লাস্টারে হোস্ট করা কাজের চাপকে বিবেচনা করে। যখন একটি বিভক্ত-মস্তিষ্কের অবস্থা ঘটে, তখন ওরাকল ক্লাস্টারওয়্যার বেঁচে থাকা দল নির্বাচন করার জন্য নির্দিষ্ট নিয়ম প্রয়োগ করে এবং সিস্টেমটি সমালোচনামূলক সংস্থানগুলির সাথে চলমান একটি নোডকে উচ্ছেদ করতে পারে। এই নতুন বৈশিষ্ট্যটি ব্যবহার করে, আমরা নির্দিষ্ট নোডগুলিতে ওজন নির্ধারণ করতে পারি এবং নোডটিকে ক্লাস্টার থেকে বন্ধ হওয়া থেকে বাঁচাতে পারি।

একটি নতুন তৈরি ট্যাগ, CSS\_CRITICAL , বিভিন্ন স্তরে বা উপাদানগুলিতে সেট করা যেতে পারে তাদের "সমালোচনামূলক" হিসাবে চিহ্নিত করতে যাতে ক্লাস্টার ব্যর্থতার ক্ষেত্রে সেগুলি সংরক্ষণ করার চেষ্টা করে। যখন ওরাকল ক্লাস্টারওয়্যার একটি বিভক্ত মস্তিষ্কের ক্ষেত্রে কোন নোডকে উচ্ছেদ করতে হবে সে সম্পর্কে সিদ্ধান্ত নেয়, তখন CSS_CRITICAL ট্যাগ ততক্ষণ সম্মানিত হয় যতক্ষণ না অন্য কোনও প্রযুক্তিগত কারণ নোডের বেঁচে থাকা নিষিদ্ধ করে (যেখানে ব্যর্থতার সময় নোডের অন্তত একটি গুরুত্বপূর্ণ উপাদান থাকে)। ধারণাটি বেশিরভাগ কাজকে প্রভাবিত না করার অনুমতি দেয়, যদি অন্য সবকিছু সমান হয়।

নোড-ওয়েটিং অ্যালগোরিটিম কাজগুলি

নোড-ওয়েটিং অ্যালগরিদম নিম্নলিখিত কাজগুলি সম্পাদন করে:

  • ডাটাবেস দৃষ্টান্ত বা পরিষেবাগুলিতে ওজন বরাদ্দ করে। আমরা -css_critical সেট করতে পারি yes srvctl ডাটাবেস যোগ করুন দিয়ে অথবা srvctl পরিষেবা যোগ করুন কমান্ড যখন আমরা একটি ডাটাবেস উদাহরণ বা পরিষেবা যোগ করি। আমরা srvctl modify ডাটাবেস দিয়ে প্যারামিটার সেট বা পরিবর্তন করতে পারি এবং srvctl পরিবর্তিত পরিষেবা কমান্ড।
  • নন ora.* সংস্থানগুলিতে ওজন বরাদ্দ করে। আমরা -attr CSS_CRITICAL=yes ব্যবহার করি *crsctl add resource* এবং *crsctl modify resource* কমান্ড সহ প্যারামিটার যখন আমরা সম্পদ যোগ বা পরিবর্তন করি।
  • একটি সার্ভারে ওজন বরাদ্দ করে। আমরা -css_critical সেট করি yes এর প্যারামিটার crsctl সেট সার্ভারের সাথে আদেশ।

ডাটাবেস দৃষ্টান্ত বা পরিষেবাগুলিতে ওজন নির্ধারণের কিছু উদাহরণ নীচে দেওয়া হল:

$srvctl modify database –d <dbname> css\_critical yes
$srvctl modify service  –db  <dbname> -service <service_name> css_critical yes

যদি সম্পদে ওজন বরাদ্দ না করা হয়, তাহলে অ্যালগরিদম নিম্নলিখিত বিবেচনাগুলি পরীক্ষা করে:

  • কোন নোডে সর্বাধিক সংখ্যক পরিষেবা তৈরি করা হয়েছে?
  • উদাহরণস্বরূপ সিঙ্গেলটন পরিষেবাগুলি তৈরি করা হয়েছে?
  • নোডটি কি একটি কনফিগার করা ফ্লেক্স এএসএম উদাহরণ?
  • একটি সর্বজনীন নেটওয়ার্ক ব্যর্থতা ছিল?
  • নোড কি ধরনের - হাব বা পাতা?

টেস্ট কেস

নিম্নলিখিত কোড ওয়াক-থ্রু একটি কেস পরীক্ষা করে যেখানে bond2 একটি দুই-নোড ক্লাস্টারের জন্য ব্যক্তিগত আন্তঃসংযোগ হিসাবে ব্যবহৃত হয়।

$oifcfg getif
bond0  147.167.80.0  global  public
bond2  10.168.33.32  global  cluster\_interconnect
$olsnodes -s -n
node1   1       Active
node2   2       Active
$
$crsctl set server css\_critical yes
$crsctl get server css\_critical
CRS-5092: Current value of the server attribute CSS_CRITICAL is yes.
$

node1 এবং node2-এর মধ্যে যোগাযোগের ব্যর্থতা অনুকরণ করতে bond2 বন্ধ করি:

#ifdown bond2

$olsnodes -s -n
node1   1       Active
node2   2       Inactive

OCSSD.trc

থেকে আউটপুট
2018-01-09 11:01:21.220 :    CSSD:1825834752: clssnmrCheckNodeWeight: node(1) has weight stamp(393228187) pebbles (0) goldstars (0) flags (3) SpoolVersion (0)
2018-01-09 11:01:21.220 :    CSSD:1825834752: clssnmrCheckNodeWeight: node(2) has weight stamp(0) pebbles (0) goldstars (0) flags (0) SpoolVersion (0)
2018-01-09 11:01:21.727 :    CSSD:1825834752: clssnmrCheckNodeWeight: node(1) has weight stamp(393228187) pebbles (0) goldstars (0) flags (3) SpoolVersion (0)
2018-01-09 11:01:21.727 :    CSSD:1825834752: clssnmrCheckNodeWeight: node(2) has weight stamp(0) pebbles (0) goldstars (0) flags (0) SpoolVersion (0)
2018-01-09 11:01:21.727 :    CSSD:1825834752: clssnmrCheckNodeWeight: Server pool version not consistent
2018-01-09 11:01:21.727 :    CSSD:1825834752: clssnmrCheckNodeWeight: stamp(393228187), completed(1/2)

উপসংহার

RAC 12c রিলিজ 2 থেকে শুরু করে, নতুন অ্যালগরিদম নোডগুলিকে বিভক্ত বা ধরে রাখার সিদ্ধান্ত নেয় (একটি বিভক্ত-মস্তিষ্কের পরিস্থিতিতে) নিম্নরূপ:

  • যদি সাব-ক্লাস্টারগুলি বিভিন্ন আকারের হয়, তবে কার্যকারিতা আগের রিলিজের মতোই।

  • যদি সমস্ত সাব-ক্লাস্টার একই আকারের হয়, তাহলে কার্যকারিতা নিম্নরূপ পরিবর্তন করা হয়েছে:

    • যদি সাব-ক্লাস্টারগুলির সমান নোডের ওজন থাকে, তবে সর্বনিম্ন নোড নম্বর সহ সাব-ক্লাস্টারটি টিকে থাকে তা নিশ্চিত করার জন্য, একটি দুই-নোড ক্লাস্টারে, সর্বনিম্ন নোড নম্বর সহ নোডটি টিকে থাকে৷
    • যদি সাব-ক্লাস্টারগুলির অসম নোডের ওজন থাকে, তবে উচ্চতর ওজনের সাব-ক্লাস্টারটি টিকে থাকে তা নিশ্চিত করার জন্য, একটি দুই-নোড ক্লাস্টারে, কম ওজনের কারণে সর্বনিম্ন নোড নম্বর সহ নোডটি উচ্ছেদ করা হয়।

সার্ভারের ওজন-ভিত্তিক নোড উচ্ছেদ ব্যবহার করে, মস্তিষ্কের বিভক্ত হওয়ার ক্ষেত্রে কোন ক্লাস্টার নোডগুলি বন্ধ বা উচ্ছেদ করা উচিত তা নির্বাচন করে আমরা OracleClusterware ব্যর্থতা পুনরুদ্ধার প্রক্রিয়ার উপর আরও নিয়ন্ত্রণ লাভ করি। যদি আপনার কোন প্রশ্ন থাকে বা এই বিষয়ে নির্দেশিকা প্রয়োজন, আপনি নীচের ক্ষেত্রে মন্তব্য যোগ করতে পারেন.


  1. ওরাকল বাহ্যিক টেবিল ব্যবহার করুন

  2. ওরাকল অ্যাপ্লিকেশন এক্সপ্রেস প্রবর্তন

  3. ওরাকল ডিফার্ড COGS অ্যাকাউন্টিং

  4. Oracle 19c এ DBCA কমান্ড ব্যবহার করে একটি ডাটাবেস ক্লোন করা হচ্ছে