প্রতিস্থাপনের সাহায্যে ব্যাকআপ পুনরুদ্ধার করার সময় 3154 ত্রুটি


16

আমার এসপিএল 2012 আমার কম্পিউটারে ইনস্টল হয়েছে installed আমি একটি ডাটাবেস একটি ব্যাকআপ করেছি test.bak

নামের সাথে আমার একটি ডাটাবেস রয়েছে test2যা একই ডাটাবেস, তবে ডেটা পরিবর্তিত হয়েছে।

আমি পুনরুদ্ধার করতে চান test.bakউপরtest2 ডাটাবেস।

আমি সর্বদা ত্রুটিটি পাচ্ছি:

ত্রুটি 3154: ব্যাকআপ সেটটি বিদ্যমান ডাটাবেস ব্যতীত অন্য একটি ডাটাবেসের ব্যাকআপ রাখে।

আমি চেষ্টা করেছিলাম:

  1. আমি রাইট ক্লিকেটেড test2 -> Restore database -> From device

    আমি বেছে নিয়েছি test.bakএবং চেক করেছি With Replaceতবে আমি ত্রুটি পেয়েছি।

  2. তারপরে আমি ডান ক্লিক করতে চেষ্টা করেছি test2 -> Restore file and filegroups

    আমি বেছে নিয়েছি test.bakএবং চেক করেছি With Replaceতবে আমি ত্রুটি পেয়েছি।

আমি আমার পুরাতন ডাটাবেসটি মুছতে পারি এবং তারপরে সঠিক নাম দিয়ে আমার ব্যাকআপটি পুনরুদ্ধার করতে পারি, তবে যখন আমি এসকিউএল ২০০৮ ব্যবহার করছিলাম, তখন বিদ্যমান ডাটাবেসে পুনরুদ্ধার করতে আমার কোনও সমস্যা হয়নি।

দেখে মনে হচ্ছে যেহেতু আমি এসকিউএল ২০১২ ব্যবহার করি তাই আমি এই ত্রুটিটি অনেক পাই!

উত্তর:


12

আপনার ব্যবহার করা উচিত WITH REPLACEএবং সাধারণভাবে ম্যানেজমেন্ট স্টুডিওতে পয়েন্ট-ও-ক্লিক জিনিসগুলি ব্যবহার করা এড়ানো উচিত - এগুলি নমনীয় এবং প্রায়শই বাগ থাকে।

এটি আমার পক্ষে কাজ করেছে:

USE [master];
GO

CREATE DATABASE test;
GO

CREATE DATABASE test2;
GO

BACKUP DATABASE test TO DISK = 'c:\temp\test.bak' WITH INIT, COMPRESSION;
GO

RESTORE DATABASE test2
  FROM DISK = 'c:\temp\test.bak'
  WITH REPLACE,
  MOVE 'test' TO 'c:\temp\test2.mdf',
  MOVE 'test_log' TO 'c:\temp\test2.ldf';

এছাড়াও আপনি যখন নিশ্চিত হন যে আপনি যখন ডেটাবেসগুলি ব্যবহার করেন তখন WITH INITএবং / বা কোনও ফাইলে ডিভাইসটিকে ইতিমধ্যে একটি ব্যাকআপ অন্তর্ভুক্ত না করার সময় (যেহেতু আপনি এখন ব্যাকআপ করছেন একই ডাটাবেস নাও হতে পারে - বিশেষত যদি আপনি নামগুলি পুনরায় ব্যবহার করেন) test...)।


অ্যারোনবার্ট্র্যান্ড ফাইআই, এই বৈশিষ্ট্যটি বিদ্যমান নেই। আমি সাধারণত যা করি তা হ'ল ইউআই ব্যবহার করা এবং সবকিছু ঠিকঠাক হয় তা নিশ্চিত করার জন্য এটি স্ক্রিপ্ট আউট করা। সেখানে হয় বাগ অনেকটা হ্যাঁ,।
usr ডিরেক্টরির

2

1) কমান্ড WITH REPLACEব্যবহার করার সময় ব্যবহার করুন RESTORE

2) DROPপুরানো ডাটাবেস যা বিরোধী এবং আবার ব্যবহার করে পুনরুদ্ধার করুনRESTORE কমান্ড ।

এসকিউএল সার্ভার সংস্করণে কোনও সমস্যা নেই। হারুন যেমন উল্লেখ করেছেন, আমি ২০০৮ থেকে ২০১২ সাল পর্যন্ত একই সংস্করণেও ডাটাবেস পুনরুদ্ধার করতে সক্ষম।


2

আপনি ভুল ডাটাবেসটি পুনরুদ্ধার করছেন। হিসাবে "পুনরূদ্ধার মনে করবেন না test2থেকে একটি ব্যাকআপ সহ test", মনে হয় "আমার ব্যাকআপ পুনঃস্থাপন testকিন্তু যেমন নামান্তর test2"। আপনি পুনরুদ্ধার টাস্কটি বেছে নিতে testএবং test2"টু ডাটাবেস:" ক্ষেত্রে রাখতে পারেন।

হারুন যেমন উল্লেখ করেছেন, উইজার্ডের উপর নির্ভর করার পরিবর্তে স্ক্রিপ্টটি শিখুন - কোথায় কী হচ্ছে তা পরিষ্কার।


2

আপনি এখনও এটি করতে পারেন তবে এটির জন্য একটি অতিরিক্ত পদক্ষেপ প্রয়োজন।

পুনরুদ্ধার ডায়ালগটি খুলুন, ২০০৮ অভ্যাস অনুসারে আপনার সাধারণ নির্বাচন করুন। যদি মূল ডাটাবেসটি ডিবি হয় তবে উত্সের জন্য ডিবি.বাক ডিভাইসটি বেছে নিন এবং গন্তব্যের নামটি ডিবিটেষ্টে পরিবর্তন করুন। তারপরে একটি পৃষ্ঠা নির্বাচন করুন (উপরের বাম কোণে) এর অধীনে আপনি যেখানে সাধারণ / ফাইল / বিকল্প দেখেন - ফাইলগুলি চয়ন করুন। গ্রিডে দেখুন আপনি আসল ফাইল নামের জন্য কলামগুলি দেখতে পাবেন এবং ফাইলের নাম হিসাবে পুনরুদ্ধার করবেন। পরে ম্যানুয়ালি প্রশস্ত করুন এবং নতুন নামে টাইপ করুন (ডাটাবেসের মূল নাম যদি ডিবি হয় এবং আপনি ডিবিস্টেস্ট তৈরি করতে চান তবে পরিবর্তন করুন .... \ DB.mdf ... ... B DBTest.mdf, ইত্যাদি)

এটি আপনার .bak ফাইলটিকে ডিবি হিসাবে উত্স হিসাবে এবং ডিবিস্টেস্টকে গন্তব্য হিসাবে গ্রহণ করবে। আপনাকে বিকল্প পৃষ্ঠাতে যেতে হবে এবং সাথে প্রতিস্থাপন চয়ন করতেও পারে। আমার অন্যান্য কারণে প্রয়োজন, তাই আমি এই বিকল্পটি ছাড়া এটি পরীক্ষা করতে পারি না।


2

সঠিক উত্তর, যেমন উল্লেখ করা হয়েছে, WITH REPLACEবিকল্পটি ব্যবহার করা ।

আমি কেবল এটিই উল্লেখ করতে চাই যে আপনি WITH REPLACEকোনও ডিফারেনশিয়াল ব্যাকআপ (পুরোটি ব্যতীত) থেকে পুনরুদ্ধার করার চেষ্টা করার পরেও ব্যবহার করার সময় আপনি প্রশ্নের ত্রুটি পেতে পারেন ।


সম্ভবত এই উত্তর দেওয়ার সময় আমার কাছে মন্তব্য করার মতো পর্যাপ্ত পয়েন্ট ছিল না, আমি কেবল এটি উল্লেখ করতে চেয়েছিলাম যে "বিপরীতমুখীভাবে" ব্যবহার করার সময়ও আপনি ত্রুটিটি পেতে পারেন যদি আপনি একটি ডিফারেনশিয়াল ব্যাকআপ (পুরোটি ব্যতীত) থেকে পুনরুদ্ধার করার চেষ্টা করেন
Brimstedt

0

আশা করি এটি কার্যকর হবে।

  1. একবার আপনি ফাইলটি পুনরুদ্ধার করার পথ নির্ধারণ করুন।
  2. বাম দিকে "বিকল্প" ক্লিক করুন।
  3. চেক বক্সটি টিক দিন - "গন্তব্য ডেটাবেজে বিদ্যমান সংযোগগুলি বন্ধ করুন"।
  4. ঠিক আছে ক্লিক করুন। এখানে চিত্র বর্ণনা লিখুন

-4

আপনার চলমান সার্ভারটি বন্ধ করুন এবং তারপরে ডিবি পুনরুদ্ধার করুন, এটি আপনাকে সাহায্য করবে। :)

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