কীভাবে ডিআআরপি টেবিলটি পূর্বাবস্থায় আনবেন?


11

আমি দুর্ঘটনাক্রমে সমস্ত টেবিল বাদ দিলাম। আমি কি আবার ফিরিয়ে আনতে পারি? আমার কাছে ব্যাকআপ কপি নেই।

উত্তর:


12

আপনার যদি আক্ষরিকভাবে কোনও ব্যাকআপ না থাকে তবে আমি 99% নিশ্চিত যে আপনার ভাগ্যের বাইরে।

যদি আপনার কাছে কোনও প্রকারের ব্যাকআপ থাকে তবে তা পুরানো তবে আপনার কি বাইনারি লগইনটি মাইএসকিউএল কনফিগারেশন ফাইলে (my.ini) লগ-বিন বিকল্পের মাধ্যমে চালু হয়েছে? যদি তা হয় তবে আপনি শেষ ব্যাকআপ থেকে পুনরুদ্ধার করতে পারবেন।

খারাপ উপায় এক সপ্তাহের শুরু করার জন্য বন্ধু, দুঃখিত।


2
সম্ভবত আপনি অনভিজ্ঞ হয়ে গেছেন বলেই, আমরা সকলেই এই জাতীয় কাজটি করেছি, এখনও কখনও কখনও করি (বাস্তবে এক সপ্তাহ আগে আমার নিজের ভিসেন্টার থেকে নিজেকে তালাবদ্ধ করে রেখেছিলাম) - সমস্ত কিছুই হ'ল আপনি এটি থেকে শিখেন তাই আপনি কম পুনরাবৃত্তি সম্ভবত।
চপ্পার 3

আমি এখন কি করব?? আমি শুধু বসে অপেক্ষা করতে পারি না !!!!

8
আপনার পরিচালককে বলুন
চপার 3

4
এটি সমস্যার সমাধান করে না, তবে সম্ভবত আপনার বিকাশকারীদের মধ্যে একটির এমন একটি অনুলিপি রয়েছে যা শেষ ভাল অনুলিপি থেকে খুব দূরের নয়?
টম ও'কনোর

3
টম একটি খুব ভাল বিষয় তুলে ধরেছেন: যদি আপনার বিকাশকারীরা নিয়মিত পরীক্ষার / বিকাশের উদ্দেশ্যে সরাসরি উপাত্তগুলির স্ন্যাপশট নেওয়ার অভ্যাসে থাকেন তবে আপনার ভাগ্য হতে পারে এবং তাদের একটির কাছ থেকে আপনার পরিস্থিতি হ্রাস করতে সাম্প্রতিক পর্যাপ্ত অপ্রকাশিত অনুলিপি রয়েছে " সম্পূর্ণ বিপর্যয় "শুধুমাত্র" বড় অসুবিধা "।
ডেভিড স্পিললেট

7

প্রশ্নটি বরং পুরানো, তবে কোনও একক ইতিবাচক উত্তর নেই, তাই আমি একটি যুক্ত করব।

মাইএসকিউএল একটি টেবিল ড্রপ করার পরে ডেটা কিছুক্ষণের জন্য মিডিয়াতে থাকে। সুতরাং আপনি রেকর্ডগুলি আনতে এবং একটি সারণী পুনর্নির্মাণ করতে পারেন। পরে আমি এটি সম্পর্কে ব্লগ করব, তবে আপাতত দ্রুত স্কেচ।

আপনার আপনার টেবিলের কাঠামো তৈরি করতে হবে (টেবিল তৈরি করুন)।

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

যদি ইনোডোবি_ফাইলে_পার_সামগ্রী বন্ধ থাকে তবে কেবল মাইএসকিউএল বন্ধ করুন।

তারপরে https://github.com/twindb/undrop-for-innodb/ থেকে InnoDB এর জন্য আন-ড্রপ সরঞ্জামটি ডাউনলোড এবং সংকলন করুন । "চেক সংকলন TwinDB পুনরুদ্ধারের টুলকিট বিস্তারিত জানার জন্য" পোস্ট।

তারপরে স্ট্রিম_ পার্সারের সাহায্যে ডিস্ক পার্টিশন বা আইবডাটা 1 (ইনোডাব_ফিল_পিটার_সামগ্রী নির্ধারণের উপর নির্ভর করে) পার্স করুন:

./stream_parser -f /path/to/diskimage_or_ibdata1

তারপরে ইনডোনডিবির অভিধানটি পুনরুদ্ধার করুন সূচিত টেবিলটি কোন সূচক_তে ছিল।

তারপরে টেবিলের কাঠামোটি নিন এবং রেকর্ডগুলি আনুন

./c_parser -f pages-diskimage_or_ibdata1/FIL_PAGE_INDEX/00000<index_id>.page

এটি স্ট্যান্ডআউটে রেকর্ডগুলি আউটপুট এবং স্ট্রডারকে লোড ডেটা কমান্ড দেবে।


আপনি স্যার আমার জীবন বাঁচিয়েছেন
বুধী 1৪১

2

আমি যা করেছি তা এখানে। মাইএসকিএল ডিরেক্টরিতে (উবুন্টুর জন্য এটি হ'ল / ভার / লিবি / মাইএসকিএল, ম্যাকের জন্য হোমব্রিউ ব্যবহার করা এটি হ'ল / ইউএসআর / লোকাল / ভার / মাইএসকিএল), আমি কিছু ফাইল খুঁজে পেয়েছি। প্রথমে আমি আমার স্থানীয় মাইএসকিএল ডিরেক্টরিতে বিশেষ স্কিমাযুক্ত মাইএপ_ডিভেলপমেন্ট / ডিরেক্টরিটি অনুলিপি করেছিলাম। তারপরে আমি আমার স্থানীয় আইবডটা 1 ব্যাক আপ করেছি এবং সার্ভারের আইবডিটা 1 মাইএসকিএল ডিরেক্টরিতে অনুলিপি করেছি। নিহত মাইএসকিএলড ( ps auxপিআইডি সন্ধান করার জন্য kill PID)। পুনরায় আরম্ভ করা মাইএসকিএল, এটি ক্রাশ পুনরুদ্ধার মোডে শুরু হয়েছিল। তারপরে আমার স্থানীয় মাইএসকিএল ক্লায়েন্টকে বহিস্কার করে এবং আমার প্রয়োজনীয় টেবিলগুলির একটি সম্পূর্ণ ডাম্প তৈরি করে।

এবং, 15,000 সারি মেটাডাটা প্রবেশের সপ্তাহের কাজের প্রতিনিধিত্ব করে যা আমরা ভেবেছিলাম চিরকালের জন্য চলে গেছে, সংরক্ষণ করা হয়েছে !!

আশা করি এটি কাউকে সাহায্য করবে।


এটি একটি দুর্দান্ত প্রচেষ্টা তবে আমি নিশ্চিত যে এটি একটি নির্ভরযোগ্য কৌশল হিসাবে খুব বেশি আশা পিন করবে না। তবুও কিছু সৃজনশীল চিন্তাভাবনার জন্য +1।
জন গার্ডেনিয়ার্স

হ্যাঁ, আপনি ঠিক বলেছেন। এটি কেবলমাত্র কাজ শেষ করে কারণ আমরা দুর্ঘটনাক্রমে মাইএসকিএল ব্যবহারকারীর কাছ থেকে সমস্ত অনুমতি সরিয়ে নিয়েছি, সুতরাং ডাটাবেসটি সেই ব্যবহারকারীর কাছে খালি দেখাচ্ছে।
ডিউক

2

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

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


অন্য কোন বিকল্প আছে?

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

0

যদি এটি মাইআইএসএএম টেবিল হয় তবে আপনার কেবলমাত্র / var / লগ / মাইএসকিএল টেবিল ফাইলগুলি মুছে ফেলতে হবে বা আপনার ডেটা ডিয়ার যা-ই হোক না কেন। আপনি উদাহরণস্বরূপ ext3grep ইউটিলিটি ব্যবহার করতে পারেন ।


ext3grep ext3 ফাইল সিস্টেমগুলির জন্য। আপনি যদি উইন্ডোজ ব্যবহার করে থাকেন তবে আপনি একটি এক্সট 3 ফাইল সিস্টেম ব্যবহার করার সম্ভাবনা নেই (সম্ভবত আপনি এনটিএফএস ব্যবহার করছেন, যদিও এটি FAT32 হতে পারে)। যদি আপনি মুছে ফেলা ফাইলগুলির কোনও পুনরুদ্ধার চেষ্টা করে যাচ্ছেন তবে যত তাড়াতাড়ি সম্ভব সার্ভারটি বন্ধ করতে হবে, অন্যান্য সার্ভিসগুলি এতে কী চলছে তা বিবেচনাধীন নয়, সার্ভারটি যত বেশি সক্রিয় থাকবে তত বেশি সুযোগ রয়েছে যে মুছে ফেলা সাহায্য করতে পারে না আপনি আদৌ।
ডেভিড স্পিলিট

আপনি যদি মাইআইএসএএম টেবিলগুলি সঞ্চিত ভলিউমটিতে ছায়া অনুলিপি চালু করেন তবে সেগুলি সেভাবে ফিরে পাওয়ার জন্য আপনার শট রয়েছে।
ক্যাথরিন ম্যাকইননেস

মুছে ফেলা ডাটাবেস ফাইলটি পুনরুদ্ধার করতে আপনি "এনটিএফএস মুছে ফেলা" জন্য গুগল অনুসন্ধান করতে পারেন। আপনার পিসিতে ডেটা ডিয়ার কোথায় রয়েছে তা আমি জানি না। আপনাকে তার জন্য আপনার my.ini পরীক্ষা করতে হবে বা উদাহরণস্বরূপ MYD এক্সটেনশানযুক্ত ফাইলগুলি অনুসন্ধান করতে হবে।
ভ্লাদিস্লাভ রাস্ট্রুসনি

0

আপনি "পূর্বাবস্থাপন" করতে পারবেন না DROP TABLE

আপনি দেখতে এবং দেখতে পারেন যে মাইএসকিউএলটিতে বাইনারি লগিং সক্ষম ছিল কিনা , সম্ভবত আপনি সেখান থেকে কিছু ডেটা বের করতে পারেন।

তা ছাড়া, আপনি মাইএসকিউএল সম্পর্কে ভুলে যেতে পারেন এবং একই ধরণের সমস্যার মধ্যে রয়েছেন "আমি ঘটনাক্রমে আমার ফাইল সিস্টেম থেকে কিছু ফাইল মুছলাম"। কিছু সরঞ্জাম আছে যা ফাইলগুলি পুনরুদ্ধার করার চেষ্টা করে এবং এমন কিছু সংস্থাগুলিও রয়েছে যা পেশাদার ভিত্তিতে এটি করে।


-1

আপনার যদি বাইনারি লগিং চালু থাকে তবে আপনার স্কিমা থাকলে প্রথমে একটি টেবিলটি পুনরায় তৈরি করতে পারেন। আপনি বাইনলগগুলি বন্ধ করার সময় আপনি স্কিমা তৈরি করেছেন তা নিশ্চিত করুন। অথবা আপনি সেশনটি এড়িয়ে যেতে পারেন। তারপরে আপনি সর্বশেষ বিবৃতি পর্যন্ত বাইনলগগুলি পুনরায় খেলতে পারেন যা ড্রপ টেবিল নিজেই ছিল।

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

ভবিষ্যতের জন্য আপনি পিছনে দাসের মতো 10-24 ঘন্টা পিছনে থাকতে পছন্দ করতে পারেন। পারকোনা টুলকিট (পিটি-স্লেভ-বিলম্ব) ব্যবহার করে আপনি বিলম্বিত গোলাম তৈরি করতে পারেন

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