যখন ডেটাবেস আলাদা আর্কিটেকচারের মাঝপথে ট্রান্সফার করতে হয়, তবে mysqldump ব্যবহার করে একটি ফাইল তৈরি করা যায় যাতে SQL স্টেটমেন্ট থাকে। এই ফাইল এক মেশিন থেকে অন্য মেশিনে ট্রান্সফার করা যায় এবং mysql ক্লায়েন্টের ইনপুট হিসেবে ব্যবহার করা যায়।
দুই মেশিনের মাঝপথে ডেটাবেস সরানো
এক পদ্ধতি: ডেটাবেস থাকা মেশিনে নিচের কমান্ডগুলো এক্সিকিউট করুন:
mysqladmin -h 'other_hostname' create db_name mysqldump db_name | mysql -h 'other_hostname' db_name
ধীর নেটওয়ার্কে রিমোট মেশিন থেকে ডেটাবেস কপি
যদি ধীর নেটওয়ার্কে রিমোট থেকে ডেটাবেস কপি করতে হয়:
mysqladmin create db_name mysqldump -h 'other_hostname' --compress db_name | mysql db_name
MySQL ডাম্প (MySQL Dump)
ডাম্প একটি ফাইলে স্টোর করা যায় এবং পরে টার্গেট মেশিনে ট্রান্সফার করা যায়। এরপর ফাইলটি ডেটাবেসে লোড করা যায়। উদাহরণ: সোর্স মেশিনে একটি ডেটাবেস কমপ্রেসড ফাইলে ডাম্প করা:
mysqldump --quick db_name | gzip > db_name.gz
ডেটাবেস কন্টেন্টস সম্বলিত ফাইল টার্গেট মেশিন থেকে সোর্স মেশিনে ট্রান্সফার করুন। তারপর নিচের কমান্ড এক্সিকিউট করুন:
mysqladmin create db_name gunzip < db_name.gz | mysql db_name
এছাড়া mysqldump এবং mysqlimport ও ডেটাবেস কন্টেন্ট ট্রান্সফারের জন্য ব্যবহার করা যায়। বড় ডেটাবেসের জন্য mysqldump এবং mysqlimport একসাথে ব্যবহার করলে অপারেশন স্পিড বেড়ায়। DUMPDIR হলো mysqldump আউটপুট স্টোর হওয়া ডিরেক্টরির ফুল পাথ।
- আউটপুট ফাইল এবং ডেটাবেস কন্টেন্ট ডাম্প করার জন্য ডিরেক্টরি তৈরি করুন:
mkdir DUMPDIR mysqldump --tab=DUMPDIR db_name
- DUMPDIR ডিরেক্টরি থেকে ফাইলগুলো টার্গেট মেশিনের সংশ্লিষ্ট ডিরেক্টরিতে ট্রান্সফার করুন।
- MySQL-এ ফাইলগুলো লোড করুন:
mysqladmin create db_name # ডেটাবেস তৈরি cat DUMPDIR/*.sql | mysql db_name # ডেটাবেসে টেবিল তৈরি mysqlimport db_name DUMPDIR/*.txt # টেবিলে ডেটা লোড