রাষ্ট্র পুনরুদ্ধার করতে আটকে এসকিউএল সার্ভার ডাটাবেস


79

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

চিত্র পুনরুদ্ধার ডাটাবেস দেখাচ্ছে

পুনরুদ্ধার প্রক্রিয়া বন্ধ করা কি সম্ভব? এবং এছাড়াও, আমি কীভাবে এটি নিশ্চিত করতে পারি যে ডাটাবেসের অখণ্ডতার সাথে আপস করা হয়নি?

উত্তর:


129

WITH NORECOVERYপুনঃস্থাপনের পরে লেনদেনের লগের জন্য ডাটাবেস প্রস্তুত করার জন্য, প্যারামিটারটি পুনরুদ্ধার করার ফলে এটি সম্ভবত ঘটবে।

ডাটাবেস এখন সর্বশেষতম লেনদেন লগ ফাইলের জন্য অপেক্ষা করছে।

অপরপক্ষে তুমি:

  1. RESTORE LOG database_name FROM backup_device WITH RECOVERY;... বা ব্যবহার করে সর্বশেষ লেনদেন লগ প্রয়োগ করুন
  2. আবার ডাটাবেস পুনরুদ্ধার করুন, কিন্তু এবার ... WITH RECOVERY;... বা ব্যবহার করে
  3. সঞ্চালনের মাধ্যমে পুনরুদ্ধার মোড থেকে ডেটাবেসকে জোর করা: RESTORE DATABASE YourDb WITH RECOVERY;

আপনি এটি করার আগে দয়া করে নিশ্চিত হয়ে নিন যে আপনি এই বিকল্পগুলির প্রভাবগুলি বুঝতে পেরেছেন। আপনি যদি সতর্ক না হন তবে ডেটা ক্ষতি হতে পারে।

বিশদ জন্য এটি দেখুন:


যখন এগুলি কাজ করে না, dba.stackexchange.com / প্রশ্নগুলি / ১১১75৫/২ দেখুন - আবার, ডুমের প্রচুর সতর্কতা অবলম্বন করুন যদি আপনি জানেন না যে আপনি কী করছেন এবং ডেটা লোকসানের পুরো ঝুঁকিটি বুঝতে না পারেন। তবে আপনি যদি একটি অ-প্রযোজনা সার্ভারের সাথে আবদ্ধ হন তবে আপনার কাছ থেকে নতুন করে পুনরুদ্ধার করার জন্য ভাল ব্যাকআপ পাওয়া গেছে এবং আপনি বলেছেন যে সার্ভারে এসকিউএল পুনরায় চালু করতে পারে, এটি কাজ করে।
NateJ

6
"কার্যকর করে ডেটাবেসটিকে পুনরুদ্ধার মোড থেকে সরিয়ে দাও: পুনরুদ্ধারের সাথে আপনার ডিবিটি পুনরুদ্ধার করুন"। 20 মিনিটের মাথায় স্ক্র্যাচিং এবং পুনরায় চালু করার পরিষেবাগুলি, তারপরে একটি লাইনারের সাথে স্থির। ধন্যবাদ!
এচিলন

2
আমি একই পরিস্থিতিতে আমার দেব বাক্সে আটকে ছিলাম। বিকল্প 3 একটি কবজ মত কাজ!
মোইজ টানকিওয়ালা

আমি .Bak থেকে একটি নতুন ডিবিতে একটি ডিবি পুনরুদ্ধার করার চেষ্টা করেছি , তবে ডিস্কে ফাইলের নাম পরিবর্তন করতে ভুলে গিয়েছি । পুনরুদ্ধার ব্যর্থ হয়েছে, যদিও ফাইলগুলি একটি বিদ্যমান ডাটাবেস দ্বারা ব্যবহৃত ছিল না, তবে অন্য কোনও ত্রুটি ছিল। এটি বিদ্যমান ডিবিকে বিশৃঙ্খলা করল (রাষ্ট্র পুনরুদ্ধারে আটকে)। # 3 এটি এক সেকেন্ডের মধ্যে অনলাইনে ফিরিয়ে দিন এবং ডেটা পরীক্ষা করে সবকিছু ঠিকঠাক দেখাচ্ছে। ধন্যবাদ!
CoDEmanX

44

এই সমস্যা সমাধানের জন্য সাধারণ টি এসকিউএল স্ক্রিপ্ট:

নতুন প্রশ্নের উইন্ডোতে এই স্ক্রিপ্টটি লিখুন এবং সম্পাদন করুন:

RESTORE DATABASE [DataBase Name] WITH RECOVERY;

পুনরুদ্ধারের সাথে ডেটাবেস [ডাটাবেস_নাম] পুনরুদ্ধার করুন .... আমার জন্য নিখুঁত কাজ করেছেন। ধন্যবাদ!

10
এর প্রভাবগুলি বুঝতে খুব সতর্কতা অবলম্বন করুন। যদি ডিবি কোনও লগ পুনরুদ্ধারের অপেক্ষায় থাকে তবে এর ফলে যথেষ্ট পরিমাণে ডেটা হারাতে পারে।
ডেভিড স্পিলিট

2
ত্রুটির কারণে কাজ করতে ব্যর্থ, "লগটি পুনরুদ্ধার করা হয়নি বলে ডাটাবেস পুনরুদ্ধার করা যায় না" "
ইয়ান বয়ড

0

আমার কেবল এই পরিস্থিতি ছিল, এবং নিরাময়টি বেশ অবাক হয়েছিল:

ALTER DATABASE DBName SET ONLINE;

স্পষ্টতই নেটব্যাকআপ পুনরুদ্ধার যা ভেঙে গেছে তা একটি অদ্ভুত অবস্থায় ফেলেছে। অন্য কোনও সমাধান কাজ করেনি (যদিও আমি এখনও এসকিউএল সার্ভার পরিষেবা পুনরায় চালু করার চেষ্টা করিনি)

আমি ডাটাবেসটি সম্পর্কে সতর্ক থাকব, যদিও, তাত্ত্বিকভাবে একবার পুনরুদ্ধার শুরু হওয়ার পরে, ব্যর্থ হয়, আপনি ডেটা দূষিত করতে পারেন। আমি ঠিক যেভাবেই আবার ডাটাবেস পুনরুদ্ধার করতে যাচ্ছি, সুতরাং এটি আমার কাছে আসে না।


এটি এই প্রশ্নের ভুল উত্তর, আপনি যদি 'পুনরুদ্ধার' অনলাইনে থাকা একটি ডাটাবেস সেট করার চেষ্টা করেন তবে আপনি ত্রুটিটি পেয়ে যাবেন "ডাটাবেস পুনরুদ্ধার অবস্থায় থাকা অবস্থায় ALTER DATABASE অনুমোদিত নয়" "
জেমস জেনকিনস

স্ট্যাকওভারফ্লোতে কীভাবে আপনি অপরিচিত তা আমরা কখনও কখনও পোস্ট করা প্রশ্নের থেকে কিছুটা পৃথক প্রশ্নের উত্তর দিয়ে থাকি। এটি মান সরবরাহ করে কারণ লোকেরা অনলাইনে অনুসন্ধানের পরে প্রায়শই তাদের মতো প্রশ্ন আসে। ALTER DATABASEঅনুমতি না পাওয়ার বিষয়ে আপনার সত্যিকারের দাবির বিষয়ে , আমি আপনাকে আশ্বাস দিচ্ছি যে আমার ক্ষেত্রে, ডাটাবেসটি বাস্তবে পুনরুদ্ধার হিসাবে দেখাচ্ছিল SET ONLINEএবং বাস্তবে কাজ করেছিল । সুতরাং বুঝতে পারেন যে আপনি আমাকে ভুল বা মিথ্যা বলছেন। একটি বিকল্প উপলব্ধ যখন আপনি সত্যিই কি করা উচিত?
এরিক

@ জেমস জেনকিন্স এবং এর বিকল্পটি কী? বিকল্পটি হ'ল হাইপোথিসিসটি যা কোনও ডাটাবেস রাষ্ট্র পুনরুদ্ধার করতে পারে তবে বাস্তবে পুনরুদ্ধার হয় না। বা এটি পুনরুদ্ধারের চূড়ান্ত পদক্ষেপে হতে পারে, পুনরুদ্ধারটি আসলে সম্পন্ন হয় যাতে এটি আসলে ONLINEস্থিতিতে সেট করা যায় । এত দীর্ঘ গল্প সংক্ষিপ্ত, আমি মনে করি আপনার সাইটের মন্তব্য এবং ডাউনওয়েটি এই সাইটের পক্ষে অকার্যকর এবং আপনার তথ্য সত্যই ভুল কারণ এটি আমার উপস্থাপিত ডেটার সাথে সঠিকভাবে যোগ্য নয় qualified
এরিক

0

যেমনটি আমরা জানি, ডিফল্ট ডাটাবেস পুনরুদ্ধার বিকল্পটি পুনরুদ্ধারের সাথে থাকে যা নিশ্চিত করে যে ডাটাবেস উপলব্ধ রয়েছে এবং ডাটাবেস পুনরুদ্ধারের সমাপ্তির পরে অনলাইনে ব্যবহারের জন্য।

উদাহরণ:

RESTORE DATABASE YourDB FROM DISK= 'C:\\Data\\YourDBBackup.bak'
WITH RECOVERY
GO

NO পুনরুদ্ধারের সাথে পুনরুদ্ধার সম্পর্কে গুরুত্বপূর্ণ পয়েন্টগুলি দেখুন

  • ডাটাবেস ব্যবহারযোগ্য নয়
  • পুনরুদ্ধার মোডে থেকে যায়
  • পরবর্তী পুনরুদ্ধার ক্রম করা যেতে পারে
  • কোনও অনির্দিষ্ট লেনদেন রোলব্যাক করে না

নো রিকভারি দিয়ে পুনরুদ্ধার করুন

এই বিকল্পটি বিশেষত যখন একাধিক ব্যাকআপ পুনরুদ্ধার করা হয় তখন ব্যবহৃত হয়। এর অর্থ, আপনি যখন নোরকোভারি বিকল্পের সাথে পুনরুদ্ধার কমান্ডটি কার্যকর করেন যার অর্থ, শেষ ব্যাকআপের ক্রম পুনরুদ্ধার না করা অবধি ব্যবহারকারীদের কাছে ডাটাবেস প্রকাশ করা হয় না। শেষ ব্যাকআপের সাথে, পুনরুদ্ধারের বিকল্পটি ব্যবহৃত হয় এবং ডাটাবেস অনলাইনে চলে যায়।

উদাহরণ:

RESTORE DATABASE YourDB FROM DISK - 'C:\\Data\\Backup_part1.bak' 
WITH NORECOVERY
GO

এবং তারপর:

RESTORE LOG YourDB FROM DISK = 'C:\\Data\\BackupLog-part2.trn'
WITH RECOVERY
GO

1
আপনার উত্তরে একটি টাইপো থাকতে পারে। বিভাগটি চিহ্নিত হয়েছে ... পুনরুদ্ধারের সাথে পুনরুদ্ধার সম্পর্কেRESTORE ...WITH NORECOVERY বিকল্পটিতে প্রযোজ্য সমস্ত বিকল্পের তালিকা করে । আপনি কি এটি ডাবল চেক করতে পারেন?
হট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.