Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Просмотр списка баз на сервере и пути последних бэкапов SQL Server  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
Собственно скрипты тут:
Просмотр списка баз на сервере и пути последних бэкапов SQL Server
27 окт 11, 11:39    [11507539]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр списка баз на сервере и пути последних бэкапов SQL Server  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
подход с другой стороны, процедура для осмотра бэкапохранилища
выводит в одной таблице заголовки всех бэкапов в каталоге и подкаталогах по маске
тестировалась под 2008
при необходимости можно обернуть во вьюху с OPENROWSET

+

CREATE PROCEDURE [dbo].[hp_GetHeaders] (@fileMask nvarchar(4000))
AS
BEGIN

	-- EXEC [dbo].[hp_GetHeaders] N'D:\Backup\*.bak'
	-- DECLARE @fileMask nvarchar(4000) = N'D:\Backup\*.bak'

	DECLARE @dir AS TABLE (backupName nvarchar(4000))
	DECLARE @cmd nvarchar(4000) = N'dir /b /s "' + @fileMask + N'"'

	INSERT INTO @dir (backupName)
	EXEC xp_cmdshell @cmd


	DECLARE @res AS TABLE (
		CurrentPath nvarchar(4000), -- дополнительный столбец
		BackupName nvarchar(128),
		BackupDescription nvarchar(255),
		BackupType smallint,
		ExpirationDate datetime,
		Compressed tinyint,
		Position smallint,
		DeviceType tinyint, -- BYTE(1)
		UserName nvarchar(128),
		ServerName nvarchar(128),
		DatabaseName nvarchar(128),
		DatabaseVersion int,
		DatabaseCreationDate datetime,
		BackupSize numeric(20,0),
		FirstLSN numeric(25,0),
		LastLSN numeric(25,0),
		CheckpointLSN numeric(25,0),
		DatabaseBackupLSN numeric(25,0),
		BackupStartDate datetime,
		BackupFinishDate datetime,
		SortOrder smallint,
		CodePage smallint,
		UnicodeLocaleId int,
		UnicodeComparisonStyle int,
		CompatibilityLevel tinyint,
		SoftwareVendorId int,
		SoftwareVersionMajor int,
		SoftwareVersionMinor int,
		SoftwareVersionBuild int,
		MachineName nvarchar(128),
		Flags int,
		BindingID uniqueidentifier,
		RecoveryForkID uniqueidentifier,
		Collation nvarchar(128),
		FamilyGUID uniqueidentifier,
		HasBulkLoggedData bit,
		IsSnapshot bit,
		IsReadOnly bit,
		IsSingleUser bit,
		HasBackupChecksums bit,
		IsDamaged bit,
		BeginsLogChain bit,
		HasIncompleteMetaData bit,
		IsForceOffline bit,
		IsCopyOnly bit,
		FirstRecoveryForkID uniqueidentifier,
		ForkPointLSN numeric(25,0),
		RecoveryModel nvarchar(60),
		DifferentialBaseLSN numeric(25,0),
		DifferentialBaseGUID uniqueidentifier,
		BackupTypeDescription nvarchar(60),
		BackupSetGUID uniqueidentifier,
		CompressedBackupSize bigint -- uint64
	)
	

	DECLARE myfiles CURSOR FOR 
		SELECT backupName 
		FROM @dir
		WHERE backupName IS NOT NULL
	
	OPEN myfiles
	
	DECLARE @curfile nvarchar(4000), @sql nvarchar(4000)
	
	FETCH NEXT FROM myfiles
	INTO @curfile
	
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @sql = N'RESTORE HEADERONLY FROM DISK = ''' + @curfile + N''''
		
		INSERT @res (
			BackupName, BackupDescription, BackupType, ExpirationDate, Compressed, Position,
			DeviceType, UserName, ServerName, DatabaseName, DatabaseVersion, DatabaseCreationDate,
			BackupSize, FirstLSN, LastLSN, CheckpointLSN, DatabaseBackupLSN, BackupStartDate,
			BackupFinishDate, SortOrder, CodePage, UnicodeLocaleId, UnicodeComparisonStyle,
			CompatibilityLevel, SoftwareVendorId, SoftwareVersionMajor, SoftwareVersionMinor,
			SoftwareVersionBuild, MachineName, Flags, BindingID, RecoveryForkID, Collation,
			FamilyGUID, HasBulkLoggedData, IsSnapshot, IsReadOnly, IsSingleUser, HasBackupChecksums,
			IsDamaged, BeginsLogChain, HasIncompleteMetaData, IsForceOffline, IsCopyOnly,
			FirstRecoveryForkID, ForkPointLSN, RecoveryModel, DifferentialBaseLSN,
			DifferentialBaseGUID, BackupTypeDescription, BackupSetGUID, CompressedBackupSize)		
		EXEC (@sql)
		
		UPDATE @res 
		SET CurrentPath = @curfile
		WHERE CurrentPath IS NULL
		
		FETCH NEXT FROM myfiles
		INTO @curfile
	END

	CLOSE myfiles
	DEALLOCATE myfiles
	
	
	SELECT * FROM @res
	ORDER BY CurrentPath, Position

END
27 окт 11, 12:59    [11508365]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить