পুনরুদ্ধার ডাটাবেস কীভাবে মুছবেন


14

আমি এসকিউএল সার্ভার 2008 আর 2 দিয়ে লগ শিপিং চালাচ্ছি।

আমার এমন একটি পরিস্থিতি রয়েছে যেখানে সেকেন্ডারি ডাটাবেস ড্রাইভের স্থান খুব কম এবং লগ শিপিং লেনদেন লগগুলি প্রয়োগ করে না।

আমি যেভাবে এটি ঠিক করতে চাই তা হ'ল মাধ্যমিকের ডেটাবেসগুলি মুছুন এবং স্ক্র্যাচ থেকে লগ শিপিং কনফিগার করুন।

আমার এখন সমস্যাটি হ'ল আমার গৌণ ডেটাবেসগুলি পুনরুদ্ধার অবস্থায় রয়েছে এবং আমি সেগুলি মুছতে পারি না। আমি কীভাবে এগিয়ে যেতে পারি?

উদাহরণস্বরূপ যদি আমি তাদের অফলাইনে নেওয়ার চেষ্টা করি তবে আমি ত্রুটিটি পেয়েছি,

ALTER DATABASE is not permitted while the database is in the Restoring state.

আপনি একটি পুনরুদ্ধার ডাটাবেসে একটি পরিবর্তন কমান্ড ইস্যু করতে পারবেন না, একটি ড্রপ করতে হবে।
জেসন কম্বারল্যান্ড

উত্তর:


25
RESTORE DATABASE dbname 
FROM DISK = 'dbname .bak'
WITH REPLACE, RECOVERY --force restore 

বা শুধু

RESTORE DATABASE dbname WITH RECOVERY

REPLACEওভাররাইট বিদ্যমান ডাটাবেস, এটা করতে নিশ্চিত হলে, তবেই আপনি আপনার বিদ্যমান ডাটাবেসের ওভাররাইড করতে চান হিসাবে আপনি এটি মুছতে পরোয়া আত উল্লিখিত হয়

পুনরুদ্ধারের সাথে পুনরুদ্ধার করা হ'ল ডিফল্ট আচরণ যা অনাবৃত লেনদেনকে ফিরিয়ে দিয়ে ব্যবহারের জন্য প্রস্তুত ডাটাবেসকে রেখে দেয়। অতিরিক্ত লেনদেন লগ পুনরুদ্ধার করা যায় না।

এটি ডাটাবেস অনলাইনে নিয়ে আসা উচিত। তারপরে আপনি এটিকে মুছতে পারেন এবং আবার চেষ্টা করতে পারেন।


আমি বিশ্বাস করি আপনি যা বলছেন তা কাজ করা উচিত ছিল। যদিও আমার সমাধানটি ছিল এসকিএল পরিষেবাটি পুনরায় চালু করা এবং তারপরে ডাটাবেসগুলি মুছে ফেলা।
পিটার

সত্য, পরিষেবা বন্ধ থাকাকালীন লেনদেনের লগগুলি মোছা সর্বদা একটি নতুন তৈরি করে। সর্বশ্রেষ্ঠ
আম্মারআর

3

এই সমস্যার সাথে আমি সবচেয়ে ভাল উপায়টি হ'ল কমান্ডটি লিখুন 'ড্রপ ডাটাবেস [ডাটাবেস নাম]' এবং তারপরে একই নামের সাথে একটি নতুন তৈরি করুন এবং তারপরে অন্য .bak ফাইল থেকে ডাটাবেস পুনরুদ্ধার করুন কারণ .bak ফাইলটি দূষিত বা ত্রুটিযুক্ত।


দূষিত ব্যাকআপ সম্পর্কে প্রশ্নে কোনও উল্লেখ নেই।
ypercubeᵀᴹ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.