uForum.uz

uForum.uz (https://uforum.uz/index.php)
-   SharePoint (https://uforum.uz/forumdisplay.php?f=359)
-   -   Бэкап баз MS SQL (MS Sharepoint) (https://uforum.uz/showthread.php?t=6794)

NetKot 01.11.2008 13:44

Бэкап баз MS SQL (MS Sharepoint)
 
В принципе не особо и нужно то - можно бэкапить средствами самого sharepoint через stsadm, но чес слово ленив я до ужаса, а баз много и называются как попало ...да и место жалко. Может кому пригодится.
1) делаем Job на MS SQL
2) в step - забрасываем скрипт:

Код:

-- Скрипт обрабатывает все базы на сервере, кроме tempdb, метод full backup
 
DECLARE
@DataBaseName SYSNAME,
@BackUpPath SYSNAME,
@RarPath SYSNAME,
@DirPath SYSNAME,
@TMP varchar (1000),
@PACK varchar (1000),
@MKDIR varchar (1000),
@FSO INT,
@BackUpSuffix SYSNAME,
@NewCatalog SYSNAME,
@year varchar (4), @month varchar (2), @day varchar (2)

----------------------------------------------
-- Путь к каталогу резервных копий баз данных, UNC пути не писать !:
SET @DirPath = 'C:\Backup'
-- -------------------------------------------
SET @year = CAST(DATEPART(Year, GetDate()) AS varchar)
SET @month = CAST(DATEPART(Month, GetDate()) AS varchar)
SET @day = CAST(DATEPART(Day, GetDate()) AS varchar)
EXEC xp_sprintf @BackUpSuffix OUTPUT, '%04s_%02s_%02s', @year, @month, @day
EXEC @FSO = sp_OACreate "Scripting.FileSystemObject", @FSO OUT
SET @NewCatalog = @DirPath + @BackUpSuffix + '\'
SET @MKDIR = 'mkdir ' + @NewCatalog
exec master..xp_cmdshell @MKDIR
-- --------------------------------------------
DECLARE Step_cursor CURSOR FOR SELECT [Name] FROM master..sysdatabases WHERE [Name]<>'tempdb'
OPEN Step_cursor
FETCH NEXT FROM Step_cursor INTO @DataBaseName
WHILE @@FETCH_STATUS = 0 BEGIN
 
    -- Получение полных имён bak-файла и rar-файла:
    SET @BackUpPath = @NewCatalog + @DataBaseName + '.bak'
    SET @RarPath = @NewCatalog + @DataBaseName + '.rar'
 
    -- Резервное копирование базы данных (получение bak-файла):
    --BEGIN
  BACKUP DATABASE @DataBaseName TO  DISK = @BackUpPath WITH NOFORMAT, INIT,  NAME = N'Full Database Backup' , SKIP, NOREWIND, NOUNLOAD, STATS = 10
  declare @backupSetId as int
  select @backupSetId = position from msdb..backupset where database_name=@DataBaseName and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=@DataBaseName )
  if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database not found.', 16, 1) end
  RESTORE VERIFYONLY FROM  DISK = @BackUpPath WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
    --END
    -- Упаковка bak-файла (получение rar-файла):
 --BEGIN
  SET @PACK = '"D:\WinRAR\WinRAR.exe" A -DF -EP -M2 -MD4096 -MT2 -RI3 -RR4096 -ag+YYYY_MM_DD_HHMM_' + @RarPath + ' ' + @BackUpPath
        print @PACK
  exec master..xp_cmdshell @PACK
 --END
    -- Удаление bak-файла после его упаковки:
 --BEGIN
  EXEC sp_OAMethod @FSO, 'DeleteFile', NULL, @BackUpPath
 --END
    FETCH NEXT FROM Step_cursor INTO @DataBaseName
END
CLOSE Step_cursor
DEALLOCATE Step_cursor
-- Удаление объекта "Scripting.FileSystemObject", чистим память:
EXEC sp_OADestroy @FSO


NetKot 01.11.2008 15:15

забыл совсем ... параметры WinRAR разные от версии к версии - так что лучше проверить ... у меня на боевом например так:

a -ep -rr4096 -m2 -md512 -ag+YYYY_MM_DD_HHMM_NN_

Erkin Kuchkarov 01.11.2008 16:50

Да, но в этом случае Вы убираете нагрузку с админа шарепойнта и вешаете его обязанности на админа БД ;)
Это кризис на Вас так подействовал, что появилась необходимость совмещать обе эти функции?:)

NetKot 05.11.2008 15:25

Верное замечание ... :(


Текущее время: 09:37. Часовой пояс GMT +5.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
OOO «Единый интегратор UZINFOCOM»