মাইএসকিউএল আনানোডব_বাফলার_পুল_সাইজ এবং ইনানোডব_লগ_ফাইলে_ সাইজ বাড়ানোর পরে আরম্ভ করবে না


18

আমি এখানে এই সমাধানটি অনুসরণ করছি /programming/3927690/howto-clean-a-mysql-innodb-stores-engine/4056261#comment14041132_4056261 এবং আমার innodb_buffer_pool_size4G এবং পরে 1 জি (1024M) এ বাড়ানোর চেষ্টা করেছি লগ ফাইলের আকারের সাথে যুক্ত, তবে mysql এই মানগুলি দিয়ে শুরু করবে না। যদি আমি এটিকে 512 এম-এ ফিরিয়ে রাখি তবে মাইএসকিএল ঠিকঠাক শুরু হয়।

আমি কীভাবে এটি সমাধান করতে পারি? আমার সার্ভারটি একটি 16 গিগাবাইট, এবং ওয়েবমিন সিস্টেফোর মতে:

Real memory 15.62 GB total, 3.13 GB used

এদিকে আমি ত্রুটি লগটিও পেয়েছি:

120529 10:29:32 পিএসডি ফাইল /var/run/mysqld/mysqld.pid থেকে mysqld_safe mysqld শেষ হয়েছে

120529 10:29:33 mysqld_safe / var / lib / mysql থেকে ডাটাবেস সহ mysqld ডেমন শুরু করা হচ্ছে

120529 10:29:33 [দ্রষ্টব্য] প্লাগইন 'FEDERATED' অক্ষম।

120529 10:29:33 InnoDB: InnoDB মেমরি হিপ অক্ষম করা আছে

120529 10:29:33 InnoDB: শব্দের এবং rw_locks জিসিসি পারমাণবিক বিল্টিন ব্যবহার করে

120529 10:29:33 ইনোডিবি: সঙ্কুচিত টেবিলগুলি zlib 1.2.3 ব্যবহার করে

120529 10:29:33 ইনোডিবি: লিনাক্স নেটিভ এআইও ব্যবহার করে

120529 10:29:33 ইনোডিবি: বাফার পুল, আকার = 1.0G প্রারম্ভিক করা হচ্ছে

120529 10:29:33 InnoDB: বাফার পুলের সম্পূর্ণ শুরু

InnoDB: ত্রুটি: লগ ফাইল ./ib_logfile0 বিভিন্ন আকার 0 0 134217728 বাইট

InnoDB: .cnf ফাইলে 0 268435456 বাইটে উল্লিখিত চেয়ে!


আপনি কি দয়া করে এর জন্য ত্রুটিযুক্ত লগগুলি ভাগ করতে পারেন ...
আব্দুল মানাফ

ধন্যবাদ, আমি এটি সন্ধান করতে পেরেছি। আমি মনে করি এটি আরও সহজ হবে। আমারও প্রাথমিকভাবে যোগ করা উচিত ছিল যে বাফার পুল বৃদ্ধির সাথে মেলে আমি লগ ফাইলের আকারও বাড়িয়েছি (আমি এখন এই তথ্যটি যুক্ত করেছিলাম)।
giorgio79

ঠিক আছে @ giorgio79 ...
আব্দুল মানাফ

লগ ফাইল (গুলি) মুছে ফেলার চেষ্টা করুন।
dezso

আপনি কি প্রথমে লগ ফাইলের আকার মুছলেন? আপনি কি সমস্ত ডাটাবেস প্রথমে ফেলেছিলেন? আপনি ঠিক কী করেছেন সম্পর্কে দয়া করে আরও তথ্য যুক্ত করুন?
ALH

উত্তর:


19

@ রিক জেমস এবং @ ড্রোগার্টের দেওয়া দুটি উত্তর মূলত প্রতিকারগুলি। (প্রত্যেকের জন্য +1)।

আপনার উপস্থিত ত্রুটি লগ থেকে, শেষ দুটি লাইনটি বলে:

InnoDB: ত্রুটি: লগ ফাইল ./ib_logfile0 বিভিন্ন আকার 0 0 134217728 বাইট

InnoDB: .cnf ফাইলে 0 268435456 বাইটে উল্লিখিত চেয়ে! `

এই মুহুর্তে, এটি স্পষ্ট ছিল যে আপনি ইনোনডবি_লগ_ফাই_সাইজটি 256 এম (268435456) এ সেট করেছেনmy.cnf যখন ইনোডিবি ট্রানজেকশন লগস ( ib_logfile0, ib_logfile1) যথাক্রমে 128 এম (134217728) ছিল। আপনার প্রশ্নের আমার স্ট্যাকওভারফ্লো উত্তরের লিঙ্কটি ফিরে দেখলে আপনাকে নিম্নলিখিতগুলি করতে হয়েছিল:

পদক্ষেপ 01) এটি এতে যুক্ত করুন my.cnf:

[mysqld]
innodb_buffer_pool_size=4G
innodb_log_file_size=1G

পদক্ষেপ 02) OS এ এই কমান্ডটি চালান

mysql -u... -p... -e"SET GLOBAL innodb_fast_shutdown = 1"
service mysql stop
rm -f /var/lib/mysql/ib_logfile*
service mysql start

যা ঘটছে তাতে আস্থা tail -fরাখার জন্য ত্রুটি লগের বিরুদ্ধে চালান । প্রতিটি ইন্নাডব লগ ফাইল তৈরি হওয়ার সময় আপনি বার্তাটি দেখতে পাবেন।


ধন্যবাদ, হ্যাঁ আমি সেগুলি প্রথমে মুছলাম না। মাইএসকিএল কীভাবে আচরণ করে তা দেখতে চেয়েছিলেন। পদক্ষেপ 3 পরে পুনরায় চালু কাজ।
giorgio79

1
আমি মনে করি লগ ফাইলগুলি মুছে ফেলা উচিত নয়, বরং এগুলি অন্যত্র সরিয়ে নেওয়া উচিত এবং লগ ফাইলের আকারটি আপনি যখন সাফল্যের সাথে পরিবর্তন করেছেন তখন কিছুক্ষণ পরে এগুলি মুছুন। অন্যথায়, আপনি দৌড়ানোর আগে মাইএসকিউএল ক্রাশ হয়ে গেলে আপনি সমস্যায় পড়বেন service mysqld stop
কাজম্যাগনুস

4

লগের ত্রুটির ভিত্তিতে, আমি অনুমান করছি যে আপনি এটি করেছেন:

  • বন্ধ করুন mysql
  • ইনোডাব লগ ফাইলের আকার পরিবর্তন করতে my.cnf সম্পাদনা করেছেন
  • মাইএসকিএল শুরু করার চেষ্টা করেছিল (তারপরে এটি ব্যর্থ হয়েছিল)

আপনি যদি লগ ফাইলের আকার পরিবর্তন করেন তবে আপনাকে পুরানো লগ ফাইলগুলি সরিয়ে ফেলতে হবে। ইনোডব সফলভাবে আরম্ভ হবে না যদি বিদ্যমান ফাইলগুলি কনফিগার ফাইলে নির্দিষ্ট আকারের সাথে মেলে না। আপনি যদি এগুলিকে অন্যত্র সরিয়ে নিয়ে যান, আনানোডব এটি শুরু হওয়ার সাথে সাথে সঠিক আকারের নতুন লেনদেনের লগ ফাইল তৈরি করবে।

আমি পুরানো ফাইলগুলি কেবলমাত্র মুছে ফেলার পরিবর্তে অন্য ডিরেক্টরিতে সরানোর পরামর্শ দিচ্ছি, যতক্ষণ না সার্ভারটি চালু হয় এবং নতুন লগ ফাইলগুলি না দিয়ে এবং সবকিছু ঠিক থাকে না until


3

যদি আপনি কেবল ইনোডিবি চালাচ্ছেন তবে বাফারপুলটি উপলব্ধ র্যামের প্রায় 70% এ সেট করা উচিত ।

লগ সাইজ অনেক কিছু যায় আসে না। সর্বোত্তমটি এটি সেট করতে হবে যাতে (আপটাইম * ইনোডাব_লগ_ফাইল_সাইজ / ইনোডব_স_লগ_লিখন) মোটামুটি 3600 (1 ঘন্টা)।

লগের আকার পরিবর্তন করতে, একটি অবশ্যই আবশ্যক

  1. পরিষ্কারভাবে বন্ধ করুন mysqld
  2. my.cnf (my.ini) এর মান মুছুন
  3. লগ ফাইল মুছুন
  4. রিসার্ট - নতুন লগ ফাইলগুলি পুনর্নির্মাণ করা হবে।

ধন্যবাদ, হ্যাঁ এটিও একটি সঠিক উত্তর। আমি যদিও শুধুমাত্র একটি গ্রহণ করতে পারে। এটিও +1
giorgio79

1

বাফার পুল আকারের জন্য সরবরাহ করা আপনার মানটিতেও কিছু সমস্যা থাকতে পারে । যেমনটি আমার ক্ষেত্রে ঘটেছিল ...

ক্রমবর্ধমান বা হ্রাস যখন innodb_buffer_pool_size, অপারেশন খণ্ডে সঞ্চালিত হয়। অংশ আকার innodb_buffer_pool_chunk_sizeকনফিগারেশন বিকল্প দ্বারা সংজ্ঞায়িত করা হয়েছে, যার ডিফল্ট 128 এম রয়েছে। আরও তথ্যের জন্য, ইনোডিবি বাফার পুল খণ্ডের আকারটি কনফিগার করা দেখুন ।

বাফার পুলের আকার সর্বদা সমান বা একাধিক হতে হবে innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances। আপনি যদি innodb_buffer_pool_sizeএকটি মান যা সমান নয় বা একাধিকের সাথে কনফিগার করেন তবে innodb_buffer_pool_chunk_size * innodb_buffer_pool_instancesবাফার পুলের আকারটি স্বয়ংক্রিয়ভাবে সমান মানের সাথে মানযুক্ত হয় বা এর একাধিক innodb_buffer_pool_chunk_size * innodb_buffer_pool_instancesনির্দিষ্ট বাফার পুল আকারের চেয়ে কম নয়।

উদাহরণস্বরূপ, innodb_buffer_pool_size8G তে সেট করা হয়েছে এবং innodb_buffer_pool_instancesএটি 16 এ সেট করা হয়েছে 12 innodb_buffer_pool_chunk_sizeএটি 128 এম, যা ডিফল্ট মান।

8 জি একটি বৈধ innodb_buffer_pool_sizeমান কারণ 8 জি এর একাধিক innodb_buffer_pool_instances=16 * innodb_buffer_pool_chunk_size=128Mযা 2 জি।

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