ডিফল্টরূপে, প্রতিটি সেট আপ RESTORE DATABASE
সহ আসে RECOVERY
। 'নোরকোভারি' অপশনগুলি মূলত এসকিউএল সার্ভারকে বলে যে ডাটাবেসগুলি আরও পুনরুদ্ধার করা ফাইলগুলির জন্য অপেক্ষা করছে (যদি একটি ডিআইএফএফ ফাইল এবং লোগ ফাইল হতে পারে এবং সম্ভব হয়, তবে লেজ-লগ ব্যাকআপ ফাইল অন্তর্ভুক্ত করতে পারে)। 'পুনরুদ্ধার' বিকল্পগুলি, সমস্ত লেনদেন শেষ করুন এবং লেনদেনের জন্য ডেটাবেসকে প্রস্তুত রাখুন।
তাই:
- যদি আপনার ডাটাবেস সিম্পল পুনরুদ্ধারের মডেলটি সেট আপ করা হয় , আপনি কেবলমাত্র একটি বিকল্পের সাথে একটি সম্পূর্ণ পুনরুদ্ধার
NORECOVERY
করতে পারেন, যখন আপনার একটি রয়েছে ডিআইএফএফ ব্যাকআপ রাখেন । সিম্পল পুনরুদ্ধার মডেল ডাটাবেসে কোনও এলওজি ব্যাকআপের অনুমতি নেই ।
- অন্যথায়, যদি আপনার ডাটাবেস পুরো বা বাল্ক-লগইড পুনরুদ্ধারের মডেলটি সেট আপ করা হয় , আপনি বিকল্পের পরে একটি পুরো পুনরুদ্ধার করতে পারেন
NORECOVERY
, তারপরে একটি ডিআইএফএফ সম্পাদন করতে পারেন দ্বারা অনুসরণ NORECOVERY
অবশেষে, এবং, সঞ্চালন লগ সঙ্গে পুনঃস্থাপন RECOVERY
বিকল্প।
মনে রাখবেন, সর্বশেষে পুনরুদ্ধার করা উচিত QUERY এর RECOVERY
বিকল্প । এটি একটি সুস্পষ্ট উপায় হতে পারে বা নাও হতে পারে। টি-এসকিউএল এর থার্মগুলিতে, পরিস্থিতি:
1।
USE [master]
GO
RESTORE DATABASE Database_name
FROM DISK = N'\\path_of_backup_file.bak WITH FILE = 1, [REPLACE],NOUNLOAD,
RECOVERY -- This option could be omitted.
GO
প্রতিস্থাপনের বিকল্পটি অবশ্যই সাবধানতার সাথে ব্যবহার করা উচিত কারণ এতে ডেটা ক্ষতি হতে পারে
অথবা, আপনি যদি একটি সম্পূর্ণ এবং ডিআইএফএফ ব্যাকআপ করেন তবে আপনি এটি ব্যবহার করতে পারেন
USE [master]
GO
RESTORE DATABASE Database_name
FROM DISK = N'\\path_of_backup_file.bak' WITH FILE = 1,
NOUNLOAD,NORECOVERY
GO
RESTORE DATABASE Database_name
FROM DISK =N'\\path_of_**diff**backup_file.bak' WITH FILE = 1,
NOUNLOAD, RECOVERY
GO
2. USE [master]
GO
-- Perform a Tail-Log backup, if possible.
BACKUP LOG Database_name
GO
-- Restoring a FULL backup
RESTORE DATABASE Database_name
FROM DISK = N'\\path_of_backup_file.bak' WITH FILE = 1,
NOUNLOAD,NORECOVERY
GO
-- Restore the last DIFF backup
RESTORE DATABASE Database_name
FROM DISK = N'\\path_of_DIFF_backup_file.bak' WITH FILE = 1,
NORECOVERY,NOUNLOAD
GO
-- Restore a Log backup
RESTORE LOG Database_name
FROM DISK = N'path_of_LOG_backup_file.trn' WITH FILE = 2,
RECOVERY, NOUNLOAD
GO
অবশ্যই, আপনি বিকল্পটি দিয়ে একটি পুনরুদ্ধার সম্পাদন করতে পারেন STATS = 10 যা এসকিউএল সার্ভারকে প্রতি 10% সম্পূর্ণ হওয়ার রিপোর্ট করতে বলে।
আপনি যদি পছন্দ করেন তবে আপনি প্রক্রিয়াটি পর্যবেক্ষণ করতে পারবেন বা রিয়েল-টাইম ভিত্তিক ক্যোয়ারিতে পুনরুদ্ধার করতে পারেন। অনুসরণ:
USE[master]
GO
SELECT session_id AS SPID, command, a.text AS Query, start_time, percent_complete, dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time
FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE')
GO
এই সাহায্য আশা করি।
DROP DATABASE db
করে এসএসএমএসের মাধ্যমে কমান্ডটি জারি করেছিলাম এবং এটি কাজ করে (আগে আমি কমান্ডগুলি দেওয়ার জন্য অন্য মেশিন থেকে এসএসএমএস ব্যবহার করছিলাম)। আমি অনুমান করছি যে অন্যান্য সমাধানগুলিও কাজ করবে।