12 জিবি। এসকিউএল ফাইল কেন আমদানি করতে 36 ঘন্টা বেশি সময় লাগে?


16

আমি এখন একটি সাধারণ type site.sql | mysqlকমান্ডের সাহায্যে 12 জিবি। এসকিএল ফাইলটি আমদানির জন্য 36 ঘন্টা অপেক্ষা করছি । আমি দেখতে পাচ্ছি যে ibdata1এখনও বৃদ্ধি পাচ্ছে, বর্তমানে প্রায় 40 জিবি।

ট্রিগারগুলি এবং সঞ্চিত প্রক্রিয়াগুলি। এসকিউএল এর শেষে রয়েছে বলে আমি মনে করি কেবল মাইএসকিউএল ডেটা এবং কী সূচকগুলি যুক্ত করা উচিত।

সাইট.এসকিউএল অন্য সার্ভার থেকে এই আদেশটি ব্যবহার করে তৈরি করা হয়েছিল:

mysqldump -R -e --databases site --add-drop-database --add-create-database --add-drop-table -C --single-transaction --triggers

এতক্ষণ কি লাগছে?


3
কতটা সিপিইউ নিচ্ছে মাইএসকিএল? এটি যদি স্বল্প মান হয় তবে এর অর্থ সম্ভবত আপনি ডিস্কে আবদ্ধ হন
ডেরেক ডাউনি

2
.sql ফাইলগুলি আমদানি করার পক্ষে তাত্পর্যপূর্ণ নয় ... ট্যাব ডিলিম বা সিএসভিতে ডাম্প করা আসলে দ্রুততর হয়, তারপরে খালি ডাটাবেস তৈরি করে ব্যবহার করুন LOAD DATA INFILE। এছাড়াও, আপনি যখন একটি সম্পূর্ণ ডাটাবেস সরিয়ে নিয়েছেন, আমার উত্তরটি পুনরায় দেখুন: আপনি যদি একই প্রধান সংস্করণে রয়েছেন তবে সার্ভারের মধ্যে ডাটাবেসগুলি সরিয়ে নেওয়া হচ্ছে । (বিশেষত যদি আপনাকে গর্ভপাত ও পুনঃসূচনা করতে হয়)
জো

উত্তর:


23

এটা চেষ্টা কর:

$ ps -ef|grep [m]ysql

প্রক্রিয়া আইডি শনাক্ত করুন

$ strace -cp <pid>

এটি 10 ​​সেকেন্ড বা এক মিনিট পরে রেখে দিন ^C। এটি আপনাকে জানাবে যে প্রক্রিয়াটি তার সময় কোথায় ব্যয় করছে, যেমন আপনি যদি দেখেন readএবং writeআধিপত্য করেন তবে এটি কেবল ডিস্কের জন্য অপেক্ষা করতে পারে ।


4
+1 কারণ আমি সবেমাত্র একটি নতুন কমান্ড শিখেছি (স্ট্রেস): পি সম্পাদনা: ভাল মূর্খতা, আমার ম্যাকটিতে ডিফল্টরূপে উপলভ্য নয়।
ডেরেক ডাউনি

2
এটি জিডিবি সহ একটি দুর্দান্ত সরঞ্জাম। আমি লোকদের বলি না যে তাদের অ্যাপ্লিকেশনটি আর হ্যাঙ্গ করেছে; এটি ঠিক কীভাবে আটকেছে বা কীভাবে ঘুরছে তা আমি তাদের বলি বা একটি কোর থেকে তাদের কোডের লাইন এবং উত্স ফাইলটির নাম বলি। আরও শক্তিশালী dtrace হয়।
গাইস

3
স্ট্রেস লিনাক্স - সোলারিস সমতুল্য ট্রাস is Dtrace ম্যাক পাওয়া যায়।
গাইস

সুতরাং এটাই. এটি এখন পড়তে যেতে যাচ্ছে।
ডেরেক ডাউনি

সাবধান: জেনে নিলাম কমান্ড, তবে সাবধান, এই কমান্ডটি আমার মাইএসকিউএল উদাহরণটি ক্র্যাশ করেছে। কেন জানি না। মাইএসকিউএল ক্র্যাশ হওয়ার আগে, সার্ভারটি কয়েক মিনিটের জন্য প্রতিক্রিয়াবিহীন হয়ে ওঠে।
dabest1

7

আপনার কাছে প্রাথমিক কী সহ কোনও InnoDB টেবিল রয়েছে?

  1. একাধিক কলাম রয়েছে?
  2. একটি প্রশস্ত VARCHAR আছে?
  3. এবং প্রচুর অ-ইউনিক সূচক?
  4. এক বা একাধিক অ-ইউনিক সূচকগুলিতে বিস্তৃত চাবি রয়েছে?

এই শর্তগুলির যে কোনওটি সম্ভবত প্রতিটি বিটিআরই নোডে আপনার সূচকের বৃহত বিটিআরই নোডের কারণ হতে পারে very প্রাথমিক কীতে থাকা ক্লাস্টার কীটি নন-ক্লাস্টারযুক্ত কীগুলিতে প্রতিটি অ-স্বতন্ত্র কী প্রবেশের সাথে সংযুক্ত থাকে।

আরেকটি বিবেচনা: InnoDB ডেটা পৃষ্ঠাগুলির যোগফল কি InnoDB সূচী পৃষ্ঠাগুলির চেয়ে উল্লেখযোগ্যভাবে কম?

আপনি এই ক্যোয়ারির মাধ্যমে এটি খুঁজে পেতে পারেন (এমবিতে):

SELECT SUM(data_length)/POWER(1024,2) InnoDBData,
SUM(index_length)/POWER(1024,2) InnoDBIndexes
FROM information_schema.tables WHERE engine='InnoDB';

অতিরিক্ত বিবেচনা: আপনি যে ডিবি সার্ভারটি লোড করছেন তাতে কি বাইনারি লগিং সক্ষম রয়েছে? আপনি যদি হন তবে দয়া করে আপনি যে সার্ভারটি লোড করছেন তাতে এটি করুন:

mysql -h... -u... -p... -A -e"SET sql_log_bin=0; source site.sql"

আশা করি এটা কাজে লাগবে !!!


6

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

আমি ওরাকল সম্পর্কে আরও বেশি পরিচিত তবে ট্রিগার, সূচি এবং সীমাবদ্ধতা ছাড়াই টেবিলগুলিতে 12 জি আমদানি করা 200 জিবি / ঘন্টা সহ সহজেই যাওয়া উচিত। একক ট্রিগার প্রক্রিয়াটিকে শামুকের দিকে নিয়ে যেতে পারে, যা ট্রিগারগুলি কী করে তার উপর নির্ভর করে ...

আশা করি এটা কাজে লাগবে

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