আমি জেনেছি পার্টিশনযুক্ত টেবিলগুলিতে এই সমস্যাটি সমাধান করার সম্ভবত একটি দুর্দান্ত উপায় রয়েছে। কিছু বছর আগে আমার পার্টিশনগুলি ফেলে দেওয়ার দরকার পড়েছিল এবং 2014 এর জন্য কিছু যোগ করতে হয়েছিল most প্রায় সমস্ত পার্টিশনই এই ত্রুটিটি রিপোর্ট করে, তেমনি পুরানোও। খুব বাজে ক্রাশ।
সুতরাং পুরানো ড্রপিংয়ের সময় এবং MAXVALUE পার্টিশনের পুনর্গঠন (শেষটি) ব্যবহার করার সময়, এটি নতুন ফাইলগুলি তৈরি করবে যারা ঠিক আছে, তাই আমি কম এবং কম সতর্কতা পেয়েছি। গড় সময়ে, এটি লগ সিকোয়েন্স কাউন্টারকে বাড়িয়ে তুলতে সহায়তা করে, সুতরাং আমার বোগাস ডেটা toোকানোর দরকার নেই। আমি একটি মাস্টার সার্ভার বিটিডব্লিউতে এটি ঘটছি ...
তাই এটা:
ALTER TABLE Events DROP PARTITION p1530 , p1535 , p1540 , p1545 ,
p1550, p1555 , p1560 , p1565 , p1570 , p1575 , p1580 , p1585 , p1590 ,
p1595 , p1600 , p1605 , p1610 , p1615 , p1620 , p1625 , p1630 , p1635 ,
p1640 , p1645 , p1650 , p1655 , p1660 , p1665 , p1670 , p1675 , p1680 ,
p1685 , p1690 , p1695 , p1700 , p1705 , p1710 , p1715 , p1720 , p1725 ,
p1730 , p1735 , p1740 , p1745 , p1750 , p1755 , p1760 , p1765 , p1770 ,
p1775 , p1780 , p1785 , p1790 , p1795 , p1800 , p1805 , p1810 , p1815 ,
p1820 , p1825 , p1830 , p1835 , p1840;
এবং এই:
ALTER table Events REORGANIZE PARTITION p3000 INTO (
PARTITION p3500 VALUES LESS THAN (TO_DAYS('2013-01-01')),
PARTITION p3510 VALUES LESS THAN (TO_DAYS('2013-01-04')),
PARTITION p3520 VALUES LESS THAN (TO_DAYS('2013-01-07')),
PARTITION p3530 VALUES LESS THAN (TO_DAYS('2013-01-10'))
...
PARTITION p4740 VALUES LESS THAN (TO_DAYS('2014-01-08')),
PARTITION p9000 VALUES LESS THAN MAXVALUE)
এটি কার্যকরভাবে পরিবর্তনের ক্ষেত্রে প্রতিটি বিভাজন ফেলে দেবে এবং সেখানে যা ছিল তার সামগ্রীর টেম্পুলিপি সহ এটি পুনরায় তৈরি করবে। আপনি যদি চান তবে আপনি প্রতি টেবিলটি এটি করতে পারেন, আমার অ্যাপ্লিকেশনটি এটি হতে দেয়, তাই সিঙ্ক হওয়া ব্যাকআপগুলি নিয়ে চিন্তা করার দরকার নেই etc.
টেবিলের বাকী অংশগুলির জন্য, যেহেতু আমি প্রক্রিয়াটিতে সমস্ত পার্টিশন স্পর্শ করি নি কিছু লগ সিকোয়েন্স সতর্কতা দিয়ে রেখে দেওয়া হবে, যারা ভাঙা হয়েছে এবং এই পুনর্গঠিত ক্রিয়াকলাপ দ্বারা আচ্ছাদিত আমি সম্ভবত এটি চালাব:
ALTER TABLE Events REBUILD PARTITION p0, p1;
বা যে
ALTER TABLE Events OPTIMIZE PARTITION p0, p1;
সুতরাং, এটি আমাকে ভাবতে পেরেছিল, আপনি এটি সরল ভ্যানিলা টেবিলগুলি দিয়ে করতে পারেন, হ্যাশ দ্বারা অস্থায়ী পার্টিশন যুক্ত করতে পারেন এবং পরে এটি মুছে ফেলুন (বা এগুলি রাখুন, আমি দৃ strongly়ভাবে পার্টিশনের প্রস্তাব দিতে পারি)।
আমি মারিয়াডবি ব্যবহার করছি তবে মাইএসকিএল নয় (তাই এক্সট্রাডিবি)
সম্ভবত এটি কাউকে সাহায্য করে। আমি এখনও এটি চালিয়ে যাচ্ছি, এতদূর ভাল। ইঞ্জিন পরিবর্তন করা কাজটিও মনে হচ্ছে, তাই আমি মাইআইসাম এবং তাদের মাঝে ইনোডিবিতে ফিরিয়ে আনা / আনতে পারি।
এটি মোটামুটি যৌক্তিক, আপনি ইঞ্জিন পরিবর্তন করলে, টেবিলটি ইনডোডাব থেকে অদৃশ্য হয়ে যায়, সুতরাং এটি আর সমস্যা হবে না।
ALTER TABLE Events ENGINE=MyISAM;
ALTER TABLE Events ENGINE=InnoDB;
এটা এখানে কাজ বলে মনে হচ্ছে। আমি পার্টিশনযুক্ত টেবিলগুলিতে কয়েকটি জিনিস নিশ্চিত করতে পারি:
- ALTER TABLE xyz ENGINE = InnoDB খুব আস্তে আরিয়া (মারিয়্যাডবি) থেকে দ্বিগুণ দ্রুত, তবে সাধারণভাবে লগ সিকোয়েন্স কাউন্টারকে বাড়ানোর ধীর গতিতে
- টেবিলগুলি 'ফিক্স' করতে এবং কাউন্টারকে বাড়ানোর ক্ষেত্রে দ্রুততম টেস্টে জাইজেড পুনরায় বিল্ডিং অংশগুলি হ'ল
- টেবিল xyz অ্যানালাইজ পার্টিশন সমস্ত পূর্বের সাথে ধীরে ধীরে তুলনা করা হয় এবং ঠিক আছে কিনা তা পরীক্ষা করে এমন পার্টিশনগুলি পুনরায় লিখন করে না। পুনরায় বিল্ডিং একটি টেম্প টেবিল স্কিমাতে পুনর্লিখনের আশ্বাস দেয়।
আমি বেশ কয়েকটি টেবিলে শেষগুলি ব্যবহার করেছি। সতর্কতাগুলি ঘটে যখন এটি ফাইলগুলি খোলার চেষ্টা করা হচ্ছে এবং প্রতি বিভাজন সংজ্ঞায় এটির জন্য একটি পাল্টা সমস্যা রয়েছে। প্রায় শেষ টেবিলের জন্য আজ কাউন্টারে প্রায় ঘূর্ণিত। আমি মনে করি এটি একবারে সমস্ত প্রক্রিয়াজাত করা উচিত বাইনারি লগগুলি ফ্লাশ করা প্রয়োজন।
আপডেট : আমি এখন এই সমস্যাটি সমাধান করতে সক্ষম হয়ে কয়েকটি জিনিস উপস্থাপন করতে পারি।
- আমার ক্র্যাশটি আরিয়া ফর্ম্যাটে (মারিয়াডিবি) একটি টেবিলে পার্টিশনগুলি পুনর্গঠিত করার কারণে ঘটেছিল।
- (আমার জন্য) পার্টিশনগুলির পুনর্নির্মাণ করা সিকোয়েন্স কাউন্টারটি পেতে সেরা এবং দ্রুততম কাজ করেছে। ইঞ্জিনটি পরিবর্তন করা ধীর গতির এবং আপনাকে ইনডোডাবকে প্রভাবিত করতে দুবার এটি করতে হবে। মাইআইসাম বা আরিয়ার তুলনায় নির্দোষ ডিবিতে পরিবর্তন করা বেশ ধীর।
- আমি মারিয়াডিবি 5.3 তে আপগ্রেড করেছি এবং 5.5 এ ছিল না (যা ছিল: 5.2) এবং এটি দুর্দান্ত কাজ করে। আমি মনে করি যে এরিয়া নিয়ে অনেকগুলি সমস্যা রয়েছে, এই সংমিশ্রণটি ব্যবহার করার জন্য 5.5 (এবং কনফিগার হওয়া বাগ) এর পার্টিশন রয়েছে।
- লগ সিকোয়েন্স কাউন্টারটি রিসেট করার সত্যিই আরও ভাল উপায় হওয়া উচিত।