में किसी विशिष्ट डेटाबेस के लिए सबसे हालिया पूर्ण बैकअप फ़ाइल प्राप्त करने के लिए एसक्यूएल मुझे एक एसक्यूएल कमांड (डीबीसीसी या विस्तारित संग्रहीत प्रक्रिया?) की आवश्यकता है या कुछ ऐसा जो एसक्यूएल सर्वर संग्रहीत प्रक्रिया से सबसे हालिया पूर्ण बैकअप प्राप्त करने के लिए कहा जा सकता है एक विशिष्ट डेटाबेस के लिए फ़ाइल उपलब्ध है। बैकअप फ़ाइल का नाम एक वर्चर वेरिएबल में रखा जाएगा जिसे मैं संग्रहित प्रक्रिया में रीस्टोर डेटाबेस कमांड के साथ उपयोग कर सकता हूं। इस प्रक्रिया का उपयोग उत्पादन डेटाबेस से सैंडबॉक्स/प्रशिक्षण डेटाबेस में बहाल करने के लिए किया जाएगा, इसलिए पुनर्स्थापना पूर्ण होने के बाद मुझे चलना जारी रखने की प्रक्रिया की आवश्यकता है ताकि मैं डीबी में कुछ संशोधन कर सकूं।एसक्यूएल एसक्यूएल सर्वर
उत्तर
"स्रोत" prod सर्वर पर बस क्वेरी msdb..backupset (MSDN)
और एक working example (SQL Rockstar) भी
संपादित करें, 2018
SELECT
bs.database_name,
bs.backup_start_date,
bmf.physical_device_name
FROM
msdb.dbo.backupmediafamily bmf
JOIN
msdb.dbo.backupset bs ON bs.media_set_id = bmf.media_set_id
WHERE
bs.database_name = 'MyDB'
ORDER BY
bmf.media_set_id DESC;
मीठे, मुझे इस क्वेरी से जो चाहिए वह प्राप्त करने में सक्षम होना चाहिए: 'msdb..backupset से शीर्ष 1 नाम का चयन करें जहां नाम' tmsePrd_b% 'और टाइप =' डी 'ऑर्डर नाम से' –
ग्रेट अंतर्दृष्टि - धन्यवाद! –
मैं एक आसान स्क्रिप्ट है कि मैं का उपयोग करें जब मैं हाल ही में बहाल है निर्देशिका से उस डेटाबेस तक बैकअप जिसे आप पुनर्स्थापित करना चाहते हैं। रात्रि नौकरी का उपयोग करके देव या टेस्ट बॉक्स को ताज़ा करने के लिए यह बहुत अच्छा है!
/******************************************************
Script: looks at the backup directory and restores the
most recent backup (bak) file
You will have to modify the code
to match your database names and paths.
DO NOT USE IN PRODUCTION. It kicks all users off!
Created By:
Michael F. Berry
Create Date:
1/15/2014
******************************************************/
--get the last backup file name and path
Declare @FileName varChar(255)
Declare @cmdText varChar(255)
Declare @BKFolder varchar(255)
set @FileName = null
set @cmdText = null
set @BKFolder = '\\MyBackupStorageShare\server\FULL\'
create table #FileList (
FileName varchar(255),
DepthFlag int,
FileFlag int
)
--get all the files and folders in the backup folder and put them in temporary table
insert into #FileList exec xp_dirtree @BKFolder,0,1
--select * from #filelist
--get the latest backup file name
select top 1 @FileName = @BKFolder + FileName from #FileList where Filename like '%.bak' order by filename desc
select @filename
--kick off current users/processes
ALTER DATABASE DBName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
--execute the restore
exec('
RESTORE DATABASE [DBNAME] FROM DISK = ''' + @filename + '''
WITH MOVE N''DBName_Data'' TO N''E:\SQLData\DBName.mdf'', MOVE N''DBName_Log'' TO N''E:\SQLLogs\DBName_log.ldf'', NOUNLOAD, REPLACE, STATS = 10')
--Let people/processes back in!
ALTER DATABASE DBName
SET MULTI_USER WITH ROLLBACK IMMEDIATE;
go
declare @backupfile as Varchar(255)
SELECT TOP 1 @backupfile=mf.physical_device_name from msdb..backupset bk
join msdb..backupmediafamily mf on bk.media_set_id = mf.media_set_id
where database_name=N'sourcedatabasename' and bk.type='D' order by
backup_set_id desc
ALTER DATABASE [databasename] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
RESTORE DATABASE databasename
FROM DISK = @backupfile
WITH MOVE 'datafile' TO 'databasefilepath',
MOVE 'logfilename' TO 'logfilepath', REPLACE
ALTER DATABASE [databasename] SET MULTI_USER WITH ROLLBACK IMMEDIATE
बस user2378139 से उत्कृष्ट जवाब देने के लिए एक अतिरिक्त देना चाहता था। मुझे अक्सर 1 फ़ोल्डर से एकाधिक डेटाबेस पुनर्स्थापित करने की आवश्यकता होती है, और उस फ़ोल्डर में प्रत्येक डेटाबेस के लिए कई बैकअप प्रतियां होंगी। मुझे सबसे हालिया प्राप्त करने की आवश्यकता है, और इसे निर्धारित समय पर चलाएं। ऐसा करने के लिए नीचे मेरा संपादन/अपडेट है। मुझे पसंद करने की तुलना में अधिक अस्थायी टेबल हैं, लेकिन अभी तक इसे करने का बेहतर तरीका नहीं मिला है:
IF OBJECT_ID('tempdb..#TemperedFileList') IS NOT NULL DROP TABLE #TemperedFileList
GO
Declare @FileName varChar(255)
Declare @cmdText varChar(255)
Declare @BKFolder varchar(255)
Declare @DBFolder varchar(255)
set @FileName = null
set @BKFolder = 'E:\SQLBackupFolder\'
set @DBFolder = 'C:\Program Files\Microsoft SQL Server\MSSQL13.COBRASERVER\MSSQL\DATA\'
declare @FileList table (FileName varchar(255), DepthFlag int, FileFlag int)
--get all the files and folders in the backup folder and put them in temporary table
insert into @FileList exec xp_dirtree @BKFolder,0,1
create table #TemperedFileList (FileName varchar(255),DBName varchar(255))
insert into #TemperedFileList (FileName,DBName) select FileName, SUBSTRING(FileName,0,CHARINDEX('_',FileName)) from @FileList WHERE Filename like '%.bak'
declare @RowCnt int
declare @MaxRows int
declare @tmpFileName varchar(255)
declare @tmpDBName varchar(255)
declare @sql nvarchar(3000)
select @RowCnt = 1
declare @Import table (rownum int IDENTITY (1, 1) Primary key NOT NULL , FileName varchar(255),DBName varchar(255))
insert into @Import (FileName,DBName) SELECT FileName,DBName FROM (SELECT FileName,DBName,rank() over (partition by DBName order by FileName desc) r FROM #TemperedFileList) ilv where r=1
select @MaxRows=count(*) from @Import
while @RowCnt <= @MaxRows
begin
select @tmpFileName=FileName from @Import where rownum = @RowCnt
select @tmpDBName=DBName from @Import where rownum = @RowCnt
set @sql ='ALTER DATABASE ' + @tmpDBName + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE'
print @sql
exec(@sql)
set @sql ='RESTORE DATABASE [' + @tmpDBName + '] FROM DISK=''' + @BKFolder + @tmpFileName + ''' with FILE=1, MOVE N''' + @tmpDBName + ''' TO N''' + @DBFolder + @tmpDBName + '.mdf'', MOVE N''' + @tmpDBName + '_Log'' TO N''' + @DBFolder + @tmpDBName + '_log.ldf'', NOUNLOAD, REPLACE, STATS = 10'
print @sql
exec(@sql)
set @sql ='ALTER DATABASE ' + @tmpDBName + ' SET MULTI_USER WITH ROLLBACK IMMEDIATE'
print @sql
exec(@sql)
Set @RowCnt = @RowCnt + 1
end
- 1. एसक्यूएल: एसक्यूएल सर्वर
- 2. टी-एसक्यूएल (एसक्यूएल सर्वर)
- 3. एसक्यूएल सर्वर: एसक्यूएल क्वेरी
- 4. टी-एसक्यूएल, एसक्यूएल सर्वर और एसक्यूएल
- 5. टी-एसक्यूएल एसक्यूएल सर्वर 2005
- 6. मेरा एसक्यूएल से एसक्यूएल सर्वर
- 7. एसक्यूएल सर्वर
- 8. एसक्यूएल सर्वर
- 9. एसक्यूएल सर्वर
- 10. एसक्यूएल सर्वर
- 11. एसक्यूएल सर्वर
- 12. एसक्यूएल सर्वर
- 13. एसक्यूएल सर्वर
- 14. एसक्यूएल सर्वर
- 15. एसक्यूएल सर्वर
- 16. एसक्यूएल सर्वर
- 17. एसक्यूएल सर्वर,
- 18. एसक्यूएल सर्वर
- 19. एसक्यूएल सर्वर
- 20. एसक्यूएल सर्वर
- 21. एसक्यूएल सर्वर
- 22. एसक्यूएल सर्वर
- 23. एसक्यूएल सर्वर
- 24. एसक्यूएल सर्वर
- 25. एसक्यूएल सर्वर
- 26. एसक्यूएल सर्वर
- 27. एसक्यूएल सर्वर:
- 28. एसक्यूएल सर्वर
- 29. एसक्यूएल सर्वर
- 30. एसक्यूएल सर्वर
प्रोड सर्वर पर चलाएं? – gbn