मैं बस SSMS ग्राफिक इंटरफ़ेस के साथ खिलवाड़ कर रहा हूं और "पुनर्स्थापना" कार्य के विकल्पों का अध्ययन कर रहा हूं।
एक बात जो मैंने देखी है जब मैं "स्क्रिप्ट उत्पन्न करता हूं" पर क्लिक करता हूं, तो क्वेरी की पहली पंक्ति है:
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
उस फ़ाइल का नाम था जिसे मैंने एक महीने पहले लॉग शिपिंग के लिए बनाया था।
जब मैं बैकअप को पुनर्स्थापित करने के लिए SSMS ग्राफिक इंटरफ़ेस का उपयोग करने की कोशिश करता हूं, तो यह इस बैकअप फ़ाइल की ओर इशारा करता है? मेरे पास अब यह फाइल भी नहीं है।
MSSQLTIPS की इस क्वेरी के साथ मैं इस डेटाबेस से सभी बैकअप देख सकता हूं:
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:
मैं परीक्षण करने के लिए दैनिक मैनुअल बैकअप बनाता हूं, और इस तरह भी, SQL सर्वर उस पुराने बैकअप का चयन करता है जो अब मौजूद नहीं है। RESTORE HEADERONLY...
इसे चलाने के दौरान (स्पष्ट रूप से) फ़ाइल मौजूद नहीं है।
संपादित करें 3:
यह GUI प्रिंट:
यह डेटाबेस एक अन्य सर्वर (एक ही सर्वर, विभिन्न उदाहरणों) से पुनर्स्थापित था। हुमूं ... मुझे लगता है कि समस्या यहाँ है।
क्या आप लोग दूसरी तस्वीर में "सर्वर" पर देख सकते हैं? इसमें 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
MSSQLTIPS से समान क्वेरी के साथ, मैं इन परिणामों को पा सकता हूं, बिना किसी तिथि सीमा के इसका उपयोग कर:
लाल वर्ग पुराने उदाहरण से गलत बैकअप है, ब्लू स्क्वायर अंतिम बैकअप लिया गया है (GUI का उपयोग किया जाना चाहिए)
संपादित करें 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:
क्या डेटाबेस के हेडर को पुनः आरंभ करने के लिए कुछ है
(मैं विचारों से बाहर हूं)