আমরা মাইএসকিউএল ক্লাস্টারগুলির মোটামুটি এক বিশাল অভিজ্ঞতা পেয়েছি - এবং জটিল কনফিগারেশনের সীমানা ঠেকানোর সময় পারকোনা বেশ কয়েকটি অনুষ্ঠানে আমাদের সাথে কাজ করেছেন।
Magento স্থানীয়ভাবে কেবল পঠন দাসদের পরিচালনা করতে পারে
Magento হয় বিভাজন বন্ধ সার্চ এর নেটিভ সক্ষম / লিখেছেন বিভিন্ন ডাটাবেসের সার্ভার থেকে (কয়েক ভাঙ্গা রিলিজের ব্যতিক্রম, যেমন ই ই 1.11 যান।) - আপনি অফসেট করতে সক্ষম হবেন select
একটি অতিরিক্ত (বা আরো) সার্ভারে (গুলি) লোড; এবং সমস্ত update/write
প্রশ্নের একক মাস্টারের কাছে ফরোয়ার্ড করা ।
আমি কখন এটি করা উচিত
এটি আরও উপযুক্ত প্রশ্ন। ম্যাজস্ট্যাকের মতো ডেডিকেটেড ম্যাজেন্টো অপারেটিং সিস্টেমের সাথে - এটি অন্তর্নির্মিত সার্ভার সাইডের উন্নত ক্যাচিং কৌশলগুলি সহজলভ্য এবং সহজেই ব্যবহারযোগ্য হয়ে উঠছে (যেমন ওয়ার্নিশ ফ্রন্ট এন্ড ক্যাচিং এবং রেডিস ব্যাক এন্ড ক্যাচিং)।
.তিহাসিকভাবে, ম্যাজেন্টো কখনও মাইএসকিউএল দ্বারা আবদ্ধ হয়নি - বরং পিএইচপি। কিন্তু যেমন বার্নিশ এবং ফুল পেজ ক্যাচিং (এফপিসি) বেশি ঘন ঘন ব্যবহৃত হয়, পুনরাবৃত্ত কাজের বোঝা (বিভাগ / পণ্য বোঝা, ঘন ঘন অনুসন্ধান) হঠাৎ শোষিত হয় এবং পিএইচপি বোঝা কম হয়ে যায়। প্রকৃতপক্ষে, এটি কেবলমাত্র প্রাথমিকভাবে সামগ্রীটি তৈরি করার জন্য আসে, বা অ-ক্যাশেযোগ্য পরিস্থিতিগুলি সম্পূর্ণ করে (কার্টে যুক্ত করা, অর্ডার সমাপ্তি ইত্যাদি); ব্যাখ্যার উদ্দেশ্যে আমরা ইচ্ছাকৃতভাবে প্রশাসনিক বোঝা উপেক্ষা করছি ।
আমরা সবসময় এই সত্যের পাশে দাঁড়িয়েছি যে মাইএসকিউএল বেশিরভাগ খুচরা বিক্রেতাদের জন্য উদ্বেগের ক্ষেত্র নয়, যেমন এখানে এবং এখানে উভয়ই দেখা যায় । তবে আপনি যদি প্রতি ঘন্টা কয়েক শতাধিক অর্ডার প্রক্রিয়াকরণের অঞ্চলে থাকেন তবে একক বা দ্বৈত সংখ্যা নয় - এটি শীঘ্রই অপ্টিমাইজেশনের ক্ষেত্রে পরিণত হবে।
শেষ পর্যন্ত ছোট স্টোরের জন্য (<25k দৈনিক অনন্য দর্শনার্থী)
আপনার প্রচেষ্টাটি কেবলমাত্র উপযুক্ত হোস্টকে অফসেট থেকে চালিয়ে যাওয়ার পরামর্শ দিতে পারে এবং এটি আপনার স্টোরের জন্য সবচেয়ে অনুকূল ফ্যাশনে মেশিনটিকে কনফিগার করেছে এমন সুনির্দিষ্ট হোস্ট সন্ধানের দিকে আরও বেশি কেন্দ্রীভূত হবে । মাস্টার / স্লেভ বা মাস্টার / মাস্টার কনফিগারেশনগুলি অনুসরণ করতে আপনার সময় নষ্ট করবেন না - যা কোনও কার্যকারিতা সুবিধা অর্জন করবে না এবং শেষ পর্যন্ত ক্রমাগত মনোযোগ এবং উন্নত মাইএসকিউএল জ্ঞানের প্রয়োজন হবে।
চূড়ান্তভাবে হার্ডওয়্যার সাইজিং এবং নির্বাচনের মাইএসকিউএল অপ্টিমাইজেশানের চেয়ে বড় অংশ থাকবে।
তবে বড় স্টোরের জন্য
আপনার স্টোর বৃদ্ধি পেতে শুরু করার সাথে সাথে রূপান্তরকরণ বা লেনদেনের বোঝা জটিল inserts
এবং updates
। প্রতিটি নতুন অর্ডার সংযোজন ক্যাটালগ স্টক, পেমেন্ট গেটওয়ে থেকে কলব্যাক এবং ইপোস / ইআরপি সিস্টেমগুলির আপডেটগুলি হ্রাস করবে। এটি সম্পর্কিত পণ্য / বিভাগগুলির সম্পর্কিত ক্যাশে শুদ্ধের সাথে একত্রিত করুন এবং শীঘ্রই আপনি মাইএসকিউএল লোডকে অপ্রয়োজনীয়ভাবে বাড়তে দেখবেন।
মাল্টি-মাস্টার কখনই কোনও সমাধান নয় যা আমরা একটি কার্যকর বিকল্প হিসাবে বিবেচনা করি বা বিবেচনা করি, তবে মাস্টার / স্লেভ মাধ্যমিক / তৃতীয় নোডগুলিতে পঠন লোড অফসেট করে সুবিধাগুলি অর্জন করতে পারে (আমরা এন্টারপ্রাইজ-আকারের স্টোরগুলিতে চাপ দিই) yield
তবে আমি এখনও এটি করতে চাই
প্রথমে আপনার দাসদের কনফিগার করুন। আমরা পারকোনা ইউটিলিটিস এবং মাইএসকিউএল শাখার বড় সমর্থক - তাদের কাছে আপনার বিদ্যমান ডিবি - ইনানোব্যাকাপেক্সের হট ব্যাকআপ নেওয়ার জন্য একটি আদর্শ সরঞ্জাম রয়েছে। এখানে একটি ভাল লেখার আছে ।
মাস্টার উপর
প্রতিস্থাপন করুন IME TIMESTAMP বা ট্যাব সম্পূর্ণ।
mysql
> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'$slaveip' IDENTIFIED BY '$slavepass';
> quit;
innobackupex --user=username --password=password /path/to/backupdir
innobackupex --user=username --password=password /
--apply-log /path/to/backupdir/$TIMESTAMP/
rsync -avprP -e ssh /path/to/backupdir/$TIMESTAMP TheSlave:/path/to/mysql/
scp /etc/mysql/my.cnf TheSlave:/etc/mysql/my.cnf
দাসের উপর
/etc/init.d/mysql stop
mv /path/to/mysql/datadir /path/to/mysql/datadir_bak
mv /path/to/mysql/$TIMESTAMP /path/to/mysql/datadir
chown -R mysql:mysql /path/to/mysql/datadir
sed -i 's#server-id=1#server-id=2#g' /etc/mysql/my.cnf
/etc/init.d/mysql start
cat /var/lib/mysql/xtrabackup_binlog_info
> TheMaster-bin.000001 481
mysql
> CHANGE MASTER TO MASTER_HOST='$masterip', MASTER_USER='repl', MASTER_PASSWORD='$slavepass', MASTER_LOG_FILE='TheMaster-bin.000001', MASTER_LOG_POS=481;
> START SLAVE;
তারপরে একবার আপনার ক্রীতদাস চালু হয়ে গেলে, বাস্তবে, এটি অর্জনে কেবল কয়েকটি অতিরিক্ত লাইন কোড লাগে।
মধ্যে ./app/etc/local.xml
<default_read>
<connection>
<use/>
<host><![CDATA[host]]></host>
<username><![CDATA[username]]></username>
<password><![CDATA[password]]></password>
<dbname><![CDATA[dbname]]></dbname>
<type>pdo_mysql</type>
<model>mysql4</model>
<initStatements>SET NAMES utf8</initStatements>
<active>1</active>
</connection>
</default_read>
সোর্স