এসকিউএল সার্ভারে একটি ডাটাবেস পুনরুদ্ধার করার সময় এমডিএফ ফাইলটি ওভাররাইট করা যায় না


21

আমি একটি ডেটাবেস এ পেয়েছি এটিতে এটিতে কিছু ডেটা রয়েছে। আমি এ হিসাবে এ- বক ফাইল হিসাবে একটি ব্যাকআপ তৈরি করেছি । তারপরে আমি একটি নতুন খালি ডাটাবেস বি তৈরি করব এবং তারপরে আমি এডক থেকে বি পুনরুদ্ধার করার চেষ্টা করব । তবে এসকিউএল আমাকে নিম্নলিখিত ত্রুটিটি বর্ণনা করে:

'সি: \ এসকিউএল ডিরেক্টরি \ ডেটা \ এএমডিএফ' ফাইলটি ওভাররাইট করা যায় না। এটি ডাটাবেস 'এ' দ্বারা ব্যবহৃত হচ্ছে।

তবে আমি যদি এসকিউএল সার্ভার থেকে একটি মুছে ফেলি, তবে retore ঠিক আছে।

আমি বুঝতে পারছি না কেন পৃথক পৃথক ব্যাকআপ ফাইল থেকে পুনরুদ্ধার করার সময় এসকিউএলকে মূল ডাটাবেস ফাইলে লিখতে হবে?

ধন্যবাদ ~

উত্তর:


19

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

RESTORE DATABASE B FROM DISK = 'A.bak'
WITH MOVE 'DataFileLogicalName' TO 'C:\SQL Directory\DATA\B.mdf',
MOVE 'LogFileLogicalName' TO 'C:\SQL Directory\DATA\B.ldf',
REPLACE --Needed if database B already exists

যাইহোক এরকম কিছু। প্রয়োজনীয়তার সাথে ব্যাকআপে লজিক্যাল ফাইলের নামগুলি দেখতে ... বিস্তারিত থেকে FISLISTONLOSTONLOSTO Use। Use Use Use Use Use Use Use Use। Use।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।


11

WITH MOVE/ MOVEএর মধ্যে সঠিক সমাধান T-SQL

যাইহোক, আপনি জিইউআই ব্যবহার করতে চাইলে আপনি ফাইলগুলিতে গিয়ে নাম পরিবর্তন করতে পারেন :

  • a.MDF
  • a.NDF
  • a.LDF

প্রতি

  • b.MDF
  • b.NDF
  • b.LDF

এখানে চিত্র বর্ণনা লিখুন


1
এছাড়াও, জেনারেল ট্যাবে গন্তব্য ডেটাবেস নাম পরিবর্তন করার সময়, জিইউআই স্বয়ংক্রিয়ভাবে পুনঃস্থাপনের নাম অনুসারে আপডেট করবে।
ওয়াউটার

0

আপনি যখন ব্যাকআপ পুনরুদ্ধার করবেন আপনি পুনরুদ্ধার করতে ডেটা ফাইলগুলি নির্দিষ্ট করতে পারবেন।

দেখুন এখানে এবং এখানে । আপনি "হিসাবে ডাটাবেস ফাইলগুলি পুনরুদ্ধার করুন" বিকল্প এবং "বিদ্যমান ডাটাবেস ওভাররাইট" পতাকাটি ব্যবহার করতে পারেন।


0

আপনি কি টিএসকিউএল কমান্ডে, বা নির্বাচিত চেকবক্স হিসাবে, প্রতিস্থাপন বিকল্পটি ব্যবহার করছেন? বিকল্পভাবে, আপনি ফাইলগুলির নাম পরিবর্তন করতে পারেন এবং ডাটাবেসটিকে অন্য কোনও কল করতে পারেন।

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

PS আপনি যে ডাটাবেসটিকে ওভাররাইট করতে চলেছেন, তার ক্ষেত্রে ব্যাকআপ নেবে case


0

যদি কেউ ইতিমধ্যে Optionsপৃষ্ঠাটি ব্যবহার এবং সক্রিয় করার পরে ম্যানেজমেন্ট স্টুডিওর জিইউআইতে কোনও সমাধান অনুসন্ধান করেOverwrite the existing database (WITH REPLACE) বিকল্পটি :

কেবল Restore Asকলামে ক্লিক *.mdfকরুন এবং ফাইল এবং ফাইলের ফাইলের নাম পরিবর্তন *.ldfকরুন।

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