উত্পাদন আরডিএস উদাহরণ আপগ্রেড করার সর্বোত্তম উপায় কী?


33

আমার প্রযোজনা সিস্টেমের অংশ হিসাবে আমার কাছে মাইএসকিউএল ছোট আরডিএস রয়েছে এবং আমি সরবরাহিত আইওপিএসের সাহায্যে এটি মাঝারি উদাহরণে আপগ্রেড করতে চাই।

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

আরডিএস উদাহরণে পরীক্ষা করে দেখুন, ডাউনটাইম অনেক দীর্ঘ, আইএমএইচও: ছোট-> মাঝারি আপগ্রেডের জন্য প্রায় 5 মিনিট এবং প্রদত্ত আইওপিএসে স্যুইচ করার জন্য 30 মিনিট (!!!)।

  • এটা কি স্বাভাবিক আচরণ?
  • উত্পাদনের আরডিএস ডাব্লু / ও ডাউনটাইমে আপগ্রেড চালানোর কোনও উপায় আছে কি?
  • আপনি কি "থামুন; একটি স্ন্যাপশট তৈরি করুন; স্ন্যাপশট থেকে বড় উদাহরণে পুনরুদ্ধার করুন"?

উত্তর:


37

আরডিএসে একটি উদাহরণ আপগ্রেড করার অর্থ আরডিএস শারীরিকভাবে ডেটাবেসকে একটি নতুন উদাহরণে স্থানান্তরিত করবে, সম্ভবত অন্য কোনও শারীরিক হোস্টে, সুতরাং ডাউনটাইম এড়ানো যায় না। প্রভিশনড আইওপিএসে স্থানান্তরিত হওয়ার অর্থ সম্ভবত আপনার ডেটা একটি নতুন ইবিএস ভলিউমে স্থানান্তরিত হবে (এবং অভ্যন্তরীণভাবে, প্রভিশিত আইওপিএসের সাহায্যে ইবিএস ভলিউমগুলিতে অ্যাক্সেস করতে সক্ষম মেশিনগুলি নির্ভর করছে কিনা তার উপর নির্ভর করে সার্ভারটি একটি নতুন উদাহরণে স্থানান্তরিত হতে পারে) নয় এমন মেশিনগুলি থেকে শারীরিকভাবে পৃথক করা, যাতে তারা নেটওয়ার্ক হার্ডওয়্যারের বিভিন্ন শ্রেণিতে থাকতে পারে) তাই ডাউনটাইম আবার অনিবার্য হবে।

এই বাধা এড়ানোর জন্য একটি উপায় রয়েছে বলে মনে হচ্ছে: একটি মাল্টি-এজেড স্থাপনা, যা এই অঞ্চলের অন্য একটি প্রাপ্যতা অঞ্চলে একটি অদৃশ্য এবং অ্যাক্সেসযোগ্য (আপনার কাছে) প্রতিরূপ তৈরি করে।

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

- http://aws.amazon.com/rds/m Multi - az/

যে উচিত , একটি দ্রুত এবং বিজোড় মাইগ্রেশন পথ প্রদান যদিও আমি এই বৈশিষ্ট্যটি পরীক্ষা অনুষ্ঠানে ছিল না। কনসোলে "সংশোধন করুন" প্রদর্শিত হবে যাতে আপনি একটি উদাহরণটি মাল্টি-এজেডে রূপান্তর করতে পারবেন। সম্ভবত, উদাহরণটি ক্লোন হওয়ার কারণে এটি সংক্ষিপ্ত I / O হিমশীতল হতে পারে, তাই আমি অবশ্যই চেষ্টা করার আগে এই কার্যকারিতাটির সমস্ত পরীক্ষা করার পরামর্শ দেব।

পর্যায়ক্রমে, আরডিএস একটি অভ্যন্তরীণ প্রক্রিয়া সমর্থন করে যা আপনাকে "স্লেভ অ্যাড দাস; মাস্টারকে উন্নীত করতে; ক্লায়েন্টদের স্যুইচ করুন" অপারেশনকে অনুকরণ করার অনুমতি দেয় এবং এটি আপনাকে একটি শূন্য-ডাউনটাইম রূপান্তর অর্জন করার অনুমতি দেয়:

  • পছন্দসই উদাহরণ শ্রেণীর সাথে আপনার ডাটাবেসের একটি আসল আরডিএস রিড প্রতিলিপি তৈরি করুন
  • অনুলিপিটি অনলাইনে আসার অপেক্ষা রাখে এবং মাস্টারের সাথে সিঙ্ক হয়
  • প্রভিশনেড আইওপিএস যুক্ত করতে প্রতিরূপের কনফিগারেশনটি সংশোধন করুন
  • অনুলিপিটি অনলাইনে আসার অপেক্ষা রাখে এবং মাস্টারের সাথে সিঙ্ক হয়
  • উভয় সিস্টেমে তৃতীয় পক্ষের সরঞ্জামগুলি ব্যবহার করে অভিন্ন ডেটা রয়েছে তা যাচাই করুন
  • পুরানো মাস্টার থেকে আপনার অ্যাপ্লিকেশন সংযোগ বিচ্ছিন্ন করুন
  • সমস্ত অ্যাপ্লিকেশন রাইটিংয়ের প্রতিলিপি তৈরি হয়েছে তা নিশ্চিত করতে মাস্টার এবং প্রতিরূপে মিলনযোগ্য বিনলগ স্থানাঙ্কগুলি যাচাই করুন
  • আরডিএসে নতুন প্রতিরূপে "প্রচার পড়ুন প্রতিরূপ" দিয়ে সিস্টেমগুলি বিভক্ত করুন
  • নতুন মাস্টারের সাথে আপনার অ্যাপ্লিকেশনটি সংযুক্ত করুন

http://aws.amazon.com/about-aws/whats-new/2012/10/11/amazon-rds-mysql-rr-promotion/


মাইকেল, বিস্তারিত উত্তরের জন্য অনেক ধন্যবাদ! ভাইটালি
ভাইটালি

মাস্টারে একটি পড়ার প্রতিরূপ প্রচার করা ডাউনটাইম সৃষ্টি করবে (উদাহরণ হিসাবে রিপোর্ট করতে হবে) আউট দেখুন!
মাহমুদ খতিব

@ মাহমুদ খতিব আপনাকে ধন্যবাদ ঐটা ঠিক. এটি প্রয়োজনীয় হওয়ার কোনও প্রযুক্তিগত কারণ না থাকলেও, আপনি যখন এটিকে মাস্টার হিসাবে প্রচার করবেন তখন আরডিএস কোনও উদাহরণ পুনরায় বুট করে। প্রকৃতপক্ষে, আমি মূলত এটি লেখার পর থেকে প্রায় 4 বছর (!?) এ আরডিএস কীভাবে কাজ করে সে সম্পর্কে আমি আরও অনেক কিছু শিখেছি। আমি সম্পাদনা করব।
মাইকেল - স্কলবট

আমি সোমবার প্রোডাকশনে এটি করছি, যাতে আমার যুক্ত করার মতো কিছু জিনিস থাকতে পারে। আমি মূলত প্রতিলিপিটি পঠন / লেখায় পরিবর্তিত করব তারপরে আমি আমার পরিষেবাগুলিতে এটিতে পয়েন্ট করব, তারপরে আমি মাস্টার আপগ্রেড করব।
মাহমুদ খতিব

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

4

এমনকি একাধিক-এজেড পরিবেশের সাথে আপনার 60-120 এর বিভ্রাট হবে। পোস্টগার্রেএসকিউএল db.m3.medium থেকে একটি db.m3.large এ আপগ্রেড করার সময় আমি যখন বারবার আমাদের আরডিএস দৃষ্টান্তগুলিতে আঘাত করি তখন এটি ছিল।


2

আপগ্রেড করার সময় কোনও ডাউনটাইম এড়ানোও পজিবল। এটি করার উপায় হ'ল সংক্ষেপে একটি পঠিত প্রতিরূপ স্ন্যাপশট থেকে একটি নতুন আরডিএস চালু করে এবং এটি সক্রিয় / সক্রিয় মাস্টার থেকে মাস্টার প্রতিলিপি হিসাবে কনফিগার করা। একবার এটি কনফিগার হয়ে গেলে আপনি কোনও ডাউনটাইম ছাড়াই অ্যাপ্লিকেশন ট্র্যাফিকের একটি অ্যাপ্লিকেশন সার্ভারটি স্যুইচ করতে পারেন। ডাউনডটাইম পাশাপাশি আমাদের নির্ধারিত মূল বক্তব্যগুলি এড়াতে আমরা যখনই ডাব্লুএসএস আরডিএস মেইনটেনেন্সগুলি ঘোষণা করে তখনই আমরা এই পদ্ধতির ব্যবহার করি।

https://workmarket.tech/zero-downtime-maintenances-on-mysql-rds-ba13b51103c2

বিশদটি এখানে:

এম 1 - অরাইনাল মাস্টার

আর 1 - এম 1 এর প্রতিলিপি পড়ুন

এসএনএপি 1 - আর 1 এর স্ন্যাপশট

এম 2 - নতুন মাস্টার

এম 2 তৈরির ক্রম: M1 → R1 → SNAP1 → M2

  • যেহেতু আমরা আরডিএসে সুপার সুবিধা ব্যবহার করতে পারি না, তাই আমরা — master_data2এম 1-তে বিকল্প সহ মাইএসকিএলডাম্প ব্যবহার করি না । পরিবর্তে, আমরা এটি থেকে এম 1 এর বেনলোগ অবস্থানটি পেতে আর 1 চালু করি। তারপরে আর 1 থেকে একটি স্ন্যাপশট (এসএনএপি 1) তৈরি করুন এবং তারপরে এসএনএপি 1 থেকে এম 2 চালু করুন।

  • পি কে সংঘাতগুলি এড়াতে নিম্নলিখিত অফসেটগুলি সহ দুটি পৃথক আরডিএস প্যারামিটার গ্রুপ তৈরি করুন:

    M1: auto_increment_ increment = 4 and auto_increment_offset = 1

    M2: auto_increment_ increment = 4 and auto_increment_offset = 2

  • এম 1 তে প্রতিলিপি ব্যবহারকারী তৈরি করুন

    GRANT EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘repl’@’%’ IDENTIFIED BY PASSWORD <secret>;

1. এম 1 থেকে আর 1 তৈরি করুন

-- Connect to the R1 and stop replication
   CALL mysql.rds_stop_replication;
-- Obtain M1’s (!!) current binlog file and position 
        `mysql> show slave status\G
             Master_Log_File: mysql-bin.000622
             Exec_Master_Log_Pos: 9135555

2. আর 1 থেকে এসএনএপি 1 তৈরি করুন

  • এম 1 থেকে প্রাপ্ত বৈশিষ্ট্যগুলি দিয়ে এসএনএপি 1 থেকে এম 2 তৈরি করুন

  • এম / এম প্রতিলিপি কী বিরোধগুলি এড়াতে এম 1 থেকে আলাদা অটো_সংশ্লিষ্ট_ অফসেটের সাথে এম 2 তে একটি প্যারামিটার গ্রুপ অর্পণ করুন

৪. এম / এম প্রতিলিপি সেটআপ করুন

-- Configure M2 as a slave of M1
CALL mysql.rds_set_external_master (‘m1.xyxy24.us-east-1.rds.amazonaws.com’, 3306, repl’, mypassword’, mysql-bin.000622, 9135555, 0);
CALL mysql.rds_start_replication;
-- Connect to M2 and obtain its current binlog file and position
         mysql> show master status\G
            File: mysql-bin.004444
            Position: 6666622
-- Connect to M1 and configure it to be a slave of the M2
CALL mysql.rds_set_external_master (‘m2.xyxy24.us-east-1.rds.amazonaws.com’, 3306 , repl’, mypassword’, mysql-bin.004444, 6666622, 0);
CALL mysql.rds_start_replication;

5. আর 1 এবং এসএনএপি 1 মুছুন কারণ তাদের আর প্রয়োজন নেই

6. এমডাব্লুএস কনসোলের মাধ্যমে এম 2 আপগ্রেড করুন

আপনার প্রয়োজন অনুসারে ইনস্ট্যান্সটি সংশোধন করার জন্য মানক পদ্ধতিটি ব্যবহার করুন।

7. এম 2 তে গ্রেসফুল সুইচওভার সম্পাদন করুন

এম / এম প্রতিলিপিটি সাফল্যের সাথে সেট আপ হওয়ার সাথে সাথে আমরা সেই সময়ে অ্যাপ সার্ভারগুলিকে সুনির্দিষ্টভাবে স্যুইচ করে ডিবি রক্ষণাবেক্ষণের সাথে এগিয়ে যাওয়ার জন্য প্রস্তুত।

এটি কীভাবে কাজ করে তার আরও বিশদ এখানে।

https://workmarket.tech/zero-downtime-maintenances-on-mysql-rds-ba13b51103c2


1

এটি কাজ করবে, তবে আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আরডিএস উদাহরণের শেষ পয়েন্টগুলি স্থির প্রবেশ হিসাবে আপনার অ্যাপ্লিকেশনটিতে কনফিগার করা হয়নি। আরডিএস অদলবদল শেষের পয়েন্টগুলি পরিবর্তন করবে।


1
দয়া করে আপনার উত্তরে আরও পদার্থ দিন যেমন আপনার উত্তর এবং / অথবা বর্ধিত যুক্তি সমর্থন করার জন্য কিছু উল্লেখ।
এরিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.