আমি কেবল এসএসএমএস গ্রাফিক ইন্টারফেসের সাথে ঘোরাঘুরি করছি এবং "পুনরুদ্ধার" টাস্কের বিকল্পগুলি অধ্যয়ন করছি।
একটি জিনিস আমি লক্ষ্য করেছি যে যখন আমি "উত্পন্ন স্ক্রিপ্ট" এ ক্লিক করি, তখন ক্যোয়ারির প্রথম লাইনটি হ'ল:
RESTORE DATABASE [MyDatabase] FROM DISK = N'Server_Patch\Database_name_LOGSHIPPING.BKP' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 5 ( and a lot of log backups for point in time )
ঠিক আছে, কোন সমস্যা নেই, তবে আমি এই ডাটাবেসটির প্রতিদিন ব্যাকআপ করছি। এটি Database_name_LOGSHIPPING.BKP
এক মাস আগে লগ শিপিংয়ের জন্য তৈরি করা ফাইলটির নাম।
আমি যখন কোনও ব্যাকআপ পুনরুদ্ধার করতে যখন এসএসএমএস গ্রাফিক ইন্টারফেসটি ব্যবহার করার চেষ্টা করি তখন কেন এটি ব্যাকআপ ফাইলটিতে ইঙ্গিত করে? আমার কাছে এই ফাইলটি আর নেই।
এমএসএসকিউএলটিপস-এর এই প্রশ্নের সাথে আমি এই ডাটাবেস থেকে সমস্ত ব্যাকআপ দেখতে পাচ্ছি:
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_start_date,
msdb.dbo.backupset.backup_finish_date,
msdb.dbo.backupset.expiration_date,
CASE msdb..backupset.type
WHEN 'D' THEN 'Database'
WHEN 'L' THEN 'Log'
END AS backup_type,
msdb.dbo.backupset.backup_size,
msdb.dbo.backupmediafamily.logical_device_name,
msdb.dbo.backupmediafamily.physical_device_name,
msdb.dbo.backupset.name AS backupset_name,
msdb.dbo.backupset.description
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
WHERE (CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() - 7) and msdb..backupset.type ='D'
ORDER BY
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_finish_date
এখানে কী ভুল হতে পারে? আমি কেবল কপি ব্যবহার করছি না।
EDIT2:
আমি পরীক্ষার জন্য দৈনিক ম্যানুয়াল ব্যাকআপগুলি তৈরি করছি এবং এমনকি এই উপায়ে এসকিউএল সার্ভার সেই পুরানো ব্যাকআপটি নির্বাচন করে যা আর বিদ্যমান নেই। RESTORE HEADERONLY...
এটি চালানোর সময় বলে (অবশ্যই) ফাইলটি বিদ্যমান নেই।
সম্পাদনা 3:
এটি জিইউআই প্রিন্ট:
এই ডাটাবেসটি অন্য সার্ভার (একই সার্ভার, বিভিন্ন উদাহরণ) থেকে পুনরুদ্ধার ছিল। হুয়ুম ... আমার মনে হয় সমস্যাটি এখানেই আছে।
আপনি কি দ্বিতীয় ছবিতে "সার্ভার" এ দেখতে পাচ্ছেন? এটিতে 2 টি সার্ভার রয়েছে। GDLIC2014 নামের উদাহরণ সহ আমি এটি ব্যবহার করছি।
এই পান্ডুলিপি:
ব্যাকআপ স্ক্রিপ্ট:
DECLARE @Patch varchar(1000)
SELECT @Patch = (SELECT 'PATCH\FULL\DATABASE_ ' + convert(varchar(500),GetDate(),112) + '.bkp')
BACKUP DATABASE DATABASE TO DISK=@Patch with compression
এমএসএসকিউএলটিপস-এর একই প্রশ্নের সাথে আমি কোনও ফলাফলের তারিখ ছাড়াই এই ফলাফলগুলি খুঁজে পেতে পারি:
লাল বর্গক্ষেত্রটি পুরানো উদাহরণ থেকে ভুল ব্যাকআপ, নীল বর্গক্ষেত্রটি নেওয়া শেষ ব্যাকআপ (জিইউআই এটি ব্যবহার করা উচিত)
সম্পাদনা 4:
ঠিক আছে, ব্যাকআপ ইতিহাসের তালিকা তৈরি করতে এই প্রশ্নের সাথে আমি দেখতে পাচ্ছি যে প্রতিটি লগ এবং পূর্ণ সঠিকভাবে তালিকাভুক্ত করা হয়েছে:
SELECT TOP 100
s.database_name,
m.physical_device_name,
CAST(CAST(s.backup_size / 1000000 AS INT) AS VARCHAR(14)) + ' ' + 'MB' AS bkSize,
CAST(DATEDIFF(second, s.backup_start_date,
s.backup_finish_date) AS VARCHAR(4)) + ' ' + 'Seconds' TimeTaken,
s.backup_start_date,
CAST(s.first_lsn AS VARCHAR(50)) AS first_lsn,
CAST(s.last_lsn AS VARCHAR(50)) AS last_lsn,
CASE s.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END AS BackupType,
s.server_name,
s.recovery_model
FROM msdb.dbo.backupset s
INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id
WHERE s.database_name = DB_NAME() -- Remove this line for all the database
ORDER BY backup_start_date DESC, backup_finish_date
GO
EDIT5:
ডাটাবেসের শিরোলেখ পুনরায় চালু করার মতো কিছু আছে কি?
(আমি ধারণার বাইরে)