এটি করার সঠিক উপায় কী? আমি কি কেবল .sq3 ফাইলটি অনুলিপি করব?
সাইটটিতে যদি ব্যবহারকারীরা থাকে এবং ফাইলটি অনুলিপি করার সময় লেখা থাকে?
এটি করার সঠিক উপায় কী? আমি কি কেবল .sq3 ফাইলটি অনুলিপি করব?
সাইটটিতে যদি ব্যবহারকারীরা থাকে এবং ফাইলটি অনুলিপি করার সময় লেখা থাকে?
উত্তর:
Sqlite3 কমান্ড লাইন টুলটিতে ডট কমান্ডের বৈশিষ্ট্য রয়েছে.backup
।
আপনি আপনার ডাটাবেসের সাথে এর সাথে সংযোগ করতে পারেন:
sqlite3 my_database.sq3
এবং এর সাথে ব্যাকআপ ডট কমান্ডটি চালান:
.backup backup_file.sq3
ডাটাবেসের সাথে ইন্টারেক্টিভ সংযোগের পরিবর্তে, আপনি ব্যাকআপও করতে পারেন এবং এরপরে সংযোগটি বন্ধ করে দিতে পারেন
sqlite3 my_database.sq3 ".backup 'backup_file.sq3'"
যেভাবেই ফলাফলটি backup_file.sq3
ডাটাবেসের একটি অনুলিপি my_database.sq3
।
এটি নিয়মিত ফাইল অনুলিপি করা থেকে পৃথক, কারণ এটি বর্তমানে ডাটাবেসে কাজ করা কোনও ব্যবহারকারীদের যত্ন নেয়। ডাটাবেসে যথাযথ লক সেট করা আছে, তাই ব্যাকআপটি একচেটিয়াভাবে সম্পন্ন হয়।
sqlite3 m_database.sq3 ".backup m_database.sq3.bak"
.ব্যাকআপ হ'ল সেরা উপায়।
sqlite3 my_database .backup my_database.back
আপনি .dump কমান্ডও চেষ্টা করতে পারেন, এটি আপনাকে পাঠ্য ফাইলে পুরো ডাটাবেস বা টেবিলগুলি ডাম্প করার ক্ষমতা দেয়। যদি টেবিল নির্দিষ্ট করা থাকে তবে কেবল টেবিলগুলি লাইক প্যাটার্ন টেবিলের সাথে মেলে dump
sqlite3 my_database .dump > my_database.back
ডাম্প এবং স্টোর ব্যবহার করে সংরক্ষণাগার অনুলিপি তৈরির একটি ভাল উপায়, পরবর্তী সময়ে ডাটাবেসটি পুনর্গঠন করুন।
sqlite3 my_database .dump | gzip -c > my_database.dump.gz
zcat my_database.dump.gz | sqlite3 my_database
এই প্রশ্নটিও পরীক্ষা করে দেখুন কি এসকিউএলটি 3 .ব্যাকআপ এবং .ডাম্প কমান্ডগুলি ডেটাবেস লক করে?
.backup
তে উপরে বর্ণিত হিসাবে কাজ করে না (".backup এ ফাইলের যুক্তি অনুপস্থিত")
try {
final String inFileName = "/data/data/your app package/databases/db";
File dbFile = new File(inFileName);
FileInputStream fis = new FileInputStream(dbFile);
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/CALC/Backup";
File dir = new File(path);
if (!dir.exists()) dir.mkdirs();
String outFileName = path + "/filename"; // output file name
// Open the empty db as the output stream
OutputStream output = new FileOutputStream(outFileName);
// Transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
Toast.makeText(getActivity(), "Backup Successfully", 2).show();
// Close the streams
output.flush();
output.close();
fis.close();
}
catch (Exception e) {
e.printStackTrace();
}