উত্তর:
আপনি কি জানেন যে কোন বেনলগ ফাইল থেকে আপনার পুনরুদ্ধার করতে হবে এবং সেখানে কতগুলি বাইনলগ ফাইল রয়েছে?
mysqlbinlogইউটিলিটি ব্যবহার করে আমরা বিনলগ ফাইল সামগ্রী দেখতে পারি।
যদি এটি একটি একক ফাইল হয় তবে আপনি এটি ব্যবহার করে পুনরুদ্ধার করতে পারেন:
mysqlbinlog /var/lib/mysql-bin.000016 | mysql –uroot –pReset123
যদি এটি একাধিক ফাইল হয় তবে কেবল একটি .sql ফাইলে সমস্ত সামগ্রী বের করে সরাসরি এটিকে পুনরুদ্ধার করুন:
mysqlbinlog /var/lib/mysql-bin.000016 > /logs/allbinlog.sql
নীচে কমান্ডটি ব্যবহার করে allbinlof.sql ফাইলটিতে দ্বিতীয় বিনলগ সামগ্রী যুক্ত করতে:
mysqlbinlog /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql
আপনি mysqlbinlog অপশন ব্যবহার করে নির্দিষ্ট বিবৃতিগুলিও বাদ দিতে পারেন। বিকল্পগুলির জন্য এটি নীচে চেষ্টা করুন:
mysqlbinlog --help
বাইনারি লগগুলি থেকে ডেটা পুনরুদ্ধার করতে নীচের পদক্ষেপগুলি ব্যবহার করুন বা পুনরুদ্ধার প্রক্রিয়াটি বুঝতে এই লিঙ্কটি ব্যবহার করুন: মাইএসকিউএল বাইনারি লগ পুনরুদ্ধার
প্রথমত, সর্বশেষতম ব্যাকআপ থেকে ডাটাবেস পুনরুদ্ধার করুন
mysql -u username -ppassword database_name < dump.sql
তারপরে যে কোনও একটি করুন:
বাইনারি লগ থেকে বাকী ডেটা পুনরুদ্ধার করুন।
মাইএসকিউএল সার্ভারে চালনার জন্য যদি আপনার একাধিক বাইনারি লগ থাকে তবে নিরাপদ পদ্ধতিটি হ'ল সার্ভারের সাথে একক সংযোগ ব্যবহার করে সেগুলি সব প্রক্রিয়া করা হয়।
mysqlbinlog mysql_bin.000001 | mysql -u root -ppassword database_name
mysqlbinlog mysql_bin.000002 | mysql -u root -ppassword database_name
বা:
mysqlbinlog mysql_bin.000001 mysql_bin.000002 | mysql -u root -ppassword database_nameসময়ের ভিত্তিতে ডেটা পুনরুদ্ধার করুন
mysqlbinlog --start-datetime="2005-04-20 10:01:00" \
--stop-datetime="2005-04-20 9:59:59" mysql_bin.000001 \
| mysql -u root -ppassword database_nameঅবস্থানের ভিত্তিতে ডেটা পুনরুদ্ধার করুন
mysqlbinlog --start-position=368315 \
--stop-position=368312 mysql_bin.000001 \
| mysql -u root -ppassword database_nameআপনি READABLE ফর্ম্যাটে .sQL ফাইল তৈরি করতে -v বিকল্পটি ব্যবহার করতে পারেন ।
উদাহরণ স্বরূপ
mysqlbinlog -v /var/lib/mysql-bin.000016 > /logs/allbinlog.sql
mysqlbinlog -v /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql