Skip to content
VDS · ব্যাকআপ ও ডিস্ক

ডেটা হারিয়ে গেছে: ধাপে ধাপে কী করবেন

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

আপডেট: ২৩ আগস্ট, ২০২৬

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

সাথে সাথে: ডিস্কে লেখা বন্ধ করুন

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

  • যা যা লিখছে, সব বন্ধ করুন: ওয়েব সার্ভার, ডেটাবেস, কিউ ওয়ার্কার।
  • একই ডিস্কে রিকভারি সফটওয়্যার ইনস্টল করবেন না।
  • সিস্টেম পুনরায় ইনস্টল করবেন না: পুনরায় ইনস্টলেশন ডিস্কটি সম্পূর্ণ ও অপরিবর্তনীয়ভাবে ধ্বংস করে দেয়।

যদি ডেটা গুরুত্বপূর্ণ হয় এবং আপনার কোনো ব্যাকআপ না থাকে, তবে মেশিন বন্ধ করুন এবং কোনো পরীক্ষা-নিরীক্ষার আগে সাপোর্টের সাথে যোগাযোগ করুন।

ঠিক কী ঘটেছে তা নির্ধারণ করুন

লক্ষণএটি কীকোথায় যাবেন
কোনো কমান্ডে ফাইল মুছে গেছেসাধারণ মুছে ফেলানিচের অংশ
“No space left on device”জায়গা শেষ, অ্যাপ্লিকেশন লিখতে পারেনিজায়গা শেষ
ডেটাবেস খুলছে না, ফাইলগুলো ঠিকই আছেডেটাবেস ক্ষতিগ্রস্তডেটাবেস ব্যাকআপ
সিস্টেম বুট হচ্ছে নাবুটলোডার বা ফাইল সিস্টেমরেসকিউ ডিস্ক
অপরিচিত ফাইল, অচেনা প্রসেসসম্ভাব্য আক্রমণআক্রমণের লক্ষণ

যদি আপনার ব্যাকআপ থাকে

এটাই সবচেয়ে দ্রুত পথ এবং প্রায় সবসময়ই একমাত্র সফল পথ। আপনার নিজের স্কিম অনুযায়ী রিস্টোর করুন — rsync বা restic — এবং শুধু আনপ্যাকিং সফল হয়েছে কি না তা নয়, বিষয়বস্তুও যাচাই করুন: সাইজ, লাইনের সংখ্যা, ডেটাবেস খুলছে কি না।

restic -r /path/to/repo snapshots
restic -r /path/to/repo restore latest --target /restore

প্রথমে আলাদা একটি ডিরেক্টরিতে রিস্টোর করুন, চলমান ডিরেক্টরির উপর নয়: ব্যাকআপও অসম্পূর্ণ হতে পারে, আর তা দিয়ে অবশিষ্টাংশের উপর লেখা মানে দুটো অপশনই হারানো।

যদি আপনার কোনো ব্যাকআপ না থাকে

আমরা আপনার মেশিনের স্বয়ংক্রিয় ব্যাকআপ রাখি না এবং স্ন্যাপশটও নেই। ভার্চুয়াল মেশিনের ডিস্কই আপনার ডিস্ক: সেখানে যা ঘটেছে, ঘটেছে। এজন্যই প্রথম দিন থেকেই ব্যাকআপ সেট আপ করা হয় — ঠিক কী কী ব্যাকআপ করবেন।

নিজে আর যা যা চেষ্টা করতে পারেন:

  • ফাইলটি এখনও কোনো প্রসেসের দ্বারা খোলা আছে। যদি কোনো প্রোগ্রাম মুছে ফেলা ফাইল ধরে রাখে, তবে তা /proc-এর মাধ্যমে অ্যাক্সেস করা যায়:
    lsof +L1
    cp /proc/<pid>/fd/<n> /root/recovered-file
    
    এটি কেবল প্রসেসটি চালু থাকা অবস্থায় কাজ করে — এটি রিস্টার্ট করবেন না।
  • ডেটাবেস লগে থাকা ডেটা। PostgreSQL এবং MySQL-এ একটি write-ahead log থাকে, যা থেকে একজন বিশেষজ্ঞ ক্র্যাশের আগের অবস্থা পুনর্গঠন করতে পারেন। ডেটাবেসটি অন্ধভাবে রিপেয়ার মোডে চালু করবেন না — এতে লগটিও হারাবেন।
  • একটি রেসকিউ ডিস্কে বুট করুন এবং extundelete বা photorec-এর মতো টুল চেষ্টা করার আগে ডিস্কটি অন্য একটি মেশিনে ইমেজ করুন। আপনাকে ইমেজ নিয়ে কাজ করতে হবে, লাইভ ডিস্ক নিয়ে নয়।

যা করা যাবে না

  • ডেটা দরকার কি না তা ঠিক করার আগেই “নতুন করে শুরু করতে” সিস্টেম পুনরায় ইনস্টল করা।
  • এমন রিকভারি প্রোগ্রাম চালানো, যা তাদের আউটপুট একই ডিস্কে লেখে।
  • ইমেজ ছাড়া লাইভ ডিস্কে fsck দিয়ে স্বয়ংক্রিয়ভাবে “yes” উত্তর দিয়ে ফাইল সিস্টেম রিপেয়ার করা।
  • এক সপ্তাহ অপেক্ষা করে তারপর রিকভারির জন্য অনুরোধ করা: মেশিন যত বেশি সময় চলে, তত কম অবশিষ্ট থাকে।

এটি আবার যাতে না ঘটে

একই আলোচনা সবসময় একইভাবে শেষ হয়: হয় আপনার ব্যাকআপ আছে, নয় নেই। আজই সেগুলো সেট আপ করুন এবং প্রতি তিন মাসে একবার রিস্টোর ড্রিল দিয়ে পরীক্ষা করুন — যে ব্যাকআপ কখনও রিস্টোর করা হয়নি, তা ব্যাকআপ হিসেবে গণ্য হয় না।