স্ক্লাইট ডাটাবেস কিভাবে ব্যাকআপ করবেন?


98

এটি করার সঠিক উপায় কী? আমি কি কেবল .sq3 ফাইলটি অনুলিপি করব?

সাইটটিতে যদি ব্যবহারকারীরা থাকে এবং ফাইলটি অনুলিপি করার সময় লেখা থাকে?



4
আপনি ডাটাবেস অ্যাক্সেস করতে কোন ভাষা এবং ড্রাইভার ব্যবহার করছেন?
সিএল

4
আমি পিএইচপি এবং PDO এক্সটেনশন ব্যবহার করছি
5:44

উত্তর:


156

Sqlite3 কমান্ড লাইন টুলটিতে ডট কমান্ডের বৈশিষ্ট্য রয়েছে.backup

আপনি আপনার ডাটাবেসের সাথে এর সাথে সংযোগ করতে পারেন:

sqlite3 my_database.sq3

এবং এর সাথে ব্যাকআপ ডট কমান্ডটি চালান:

.backup backup_file.sq3

ডাটাবেসের সাথে ইন্টারেক্টিভ সংযোগের পরিবর্তে, আপনি ব্যাকআপও করতে পারেন এবং এরপরে সংযোগটি বন্ধ করে দিতে পারেন

sqlite3 my_database.sq3 ".backup 'backup_file.sq3'"

যেভাবেই ফলাফলটি backup_file.sq3ডাটাবেসের একটি অনুলিপি my_database.sq3

এটি নিয়মিত ফাইল অনুলিপি করা থেকে পৃথক, কারণ এটি বর্তমানে ডাটাবেসে কাজ করা কোনও ব্যবহারকারীদের যত্ন নেয়। ডাটাবেসে যথাযথ লক সেট করা আছে, তাই ব্যাকআপটি একচেটিয়াভাবে সম্পন্ন হয়।


69
আপনি sqlite3 m_database.sq3 ".backup m_database.sq3.bak"
এগুলি

@ গুগি: আমরা কি এটি প্রতিরূপের জন্য ব্যবহার করতে পারি? বা
mOna

4
@ এমোনা: এটি ব্যাকআপ তৈরির জন্য কেবল একটি প্রক্রিয়া। প্রতিলিপি মানে ফ্লাইতে পরিবর্তনগুলি প্রচার করা (একটি বিতরণ করা ডাটাবেসের ধরণের), যা এটি আপনার পক্ষে করবে না।
গুগি

উত্তরের জন্য ধন্যবাদ :)
mOna

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

6

.ব্যাকআপ হ'ল সেরা উপায়।

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 .ব্যাকআপ এবং .ডাম্প কমান্ডগুলি ডেটাবেস লক করে?


4
এসকিউএলাইট ৩.৮.২- .backupতে উপরে বর্ণিত হিসাবে কাজ করে না (".backup এ ফাইলের যুক্তি অনুপস্থিত")
ফ্রান্সেস্ক রোসাস

4
এটি সেরা উত্তর। আপনি যদি অনেকের দ্বারা ব্যবহৃত ওয়ার্কিং ডাটাবেসে .ব্যাকআপ ব্যবহার করেন তবে এটি কাজ করতে পারে না কারণ কোনও কোনও সময়ে ডাটাবেস লক হয়ে গেছে। সুতরাং আপনি যদি এটি কোনও CRON এ ব্যবহার করেন তবে এটি কাজ করবে না এবং আপনাকে একটি ত্রুটি আছে তা বলবে না ... আরও ভাল ব্যবহার ump
স্মরণক

@ মেমিস্টার কিন্তু অন্যদের জন্য ডিবি লক করেন না? এফডাব্লুআইডাব্লু, আমি একটি ব্যাহত সার্ভিসে ব্যর্থ ব্যাকআপ (অ্যাডমিনকে মেল সহ) পছন্দ করব।
টর্স্টেন ব্রোঞ্জার

4
দয়া করে আপনার উত্তরে .ব্যাকআপ সিনট্যাক্সটি ঠিক করুন।
নাসেভ

-23
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();
}

আপনি কি ডাটাবেস ফাইলগুলির ফাইল সিস্টেমের স্তরে প্রোগ্রামেটিক অনুলিপি বোঝাচ্ছেন?
Andreas Tasoulas

4
1. আপনি এমনকি এই কোডটি কোন ভাষা তা বলতে পারবেন না। ওপি জানিয়েছে যে তিনি পিএইচপি ব্যবহার করছেন তবে এটি জাভা কোড বলে মনে হচ্ছে। 2. আপনি বাইট দ্বারা একটি ফাইল কপি করুন। এমনটা করার সুবিধা কী হওয়া উচিত? জাভা (এবং পিএইচপি) এর ফাইলগুলি অনুলিপি করার পদ্ধতি রয়েছে। Docs.oracle.com/javase/tutorial/essential/io/copy.html 3 পড়ুন This এটি আপনার অনুলিপি করার সময় ডিবি লিখিত হতে পারে এমন সমস্যার সমাধান করে না।
ক্রিস্টোফার কে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.