воскресенье, 28 июля 2013 г.

Как планировать и автоматизировать резервное копирование баз данных SQL Server в SQL Server Express

Выпуски SQL Server Express не предусмотрена возможность задания расписания или планы обслуживания так как компонент агента SQL Server не входит в состав этих выпусков. Поэтому необходимо сделать другой подход, чтобы создать резервную копию базы данных в этих выпусках.

http://kawaikunee.blogspot.ru/2010/07/backup-mssql.html
http://support.microsoft.com/kb/2019698/ru

Вкратце: sql server management studio - по базе правой кнопкой - задачи - создать резервную копию
настраиваем, сценарий - сохранить в файл.
Дальше используем sqlcmd через планировщик, типа
sqlcmd -S .\SQLEXPRESS -i "d:\mssql_backup.sql"

2) Как сделать, чтобы файл резервной копии не перезаписывался каждый раз? Хотелось бы, чтобы имя файла говорило мне, от какого числа эта копия.
Что ж, невозможного нет: правим сохраненный ранее сценарий:

DECLARE @filedate VARCHAR(20)
SET @filedate=REPLACE(REPLACE(CONVERT(VARCHAR(20),GETDATE(),20),':','.'),' ','_')

DECLARE @file_path VARCHAR(256)
SET @file_path='D:\MSSQL_DataBases\main_'+@filedate+'.bak'

BACKUP DATABASE [main] TO  DISK = @file_path WITH NOFORMAT, INIT,  NAME = N'main-Полная База данных Резервное копирование', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

Теперь файлы будут выглядеть как main_2010-07-30_09.14.19.bak, что нам и требовалось

Также на сайте мс есть хранимка, подключаем и через нее:
Шаг 1: в главной базе данных с помощью SQL Server Management Studio express или Sqlcmd создать следующую хранимую процедуру:
/ / © Корпорация Майкрософт.  Все права защищены.
/ / Этот код в производство условия
/ / Microsoft общественной лицензии (MS-PL http://opensource.org/licenses/ms-pl.html .)
Использование [Основной]
GO 
/ ****** Объект: хранимая процедура [dbo].[sp_BackupDatabases] ****** /
SET ansi_nulls ON
Перейти
QUOTED_IDENTIFIER в значение ON
Перейти
--=============================================
--Автор: Microsoft
--Дата создания: 2010-02-06
--Описание: резервного копирования баз данных для SQLExpress
--параметр1: имя базы данных
--параметр2: Тип_архива F = Полный, D = разностная резервная копия, L = журнал
--параметр3: расположение файла резервной копии
--=============================================
Создать ПРОЦЕДУРУ [dbo]. [sp_BackupDatabases]
@ имя базы данных sysname = null,
@ Тип_архива CHAR(1), nvarchar(200)
@ расположение
AS
SET NOCOUNT ON;  
           
            DECLARE @DBs TABLE
            (
                  ID int IDENTITY PRIMARY KEY,
                  DBNAME nvarchar(500)
            )
           
             -- Pick out only databases which are online in case ALL databases are chosen to be backed up
             -- If specific database is chosen to be backed up only pick that out from @DBs
            INSERT INTO @DBs (DBNAME)
            SELECT Name FROM master.sys.databases
            where state=0
            AND name=@DatabaseName
            OR @DatabaseName IS NULL
            ORDER BY Name
           
            -- Filter out databases which do not need to backed up
            IF @backupType='F'
                  BEGIN
                  DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','AdventureWorks')
                  END
            ELSE IF @backupType='D'
                  BEGIN
                  DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','master','AdventureWorks')
                  END
            ELSE IF @backupType='L'
                  BEGIN
                  DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','master','AdventureWorks')
                  END
            ELSE
                  BEGIN
                  RETURN
                  END
           
            -- Declare variables
            DECLARE @BackupName varchar(100)
            DECLARE @BackupFile varchar(100)
            DECLARE @DBNAME varchar(300)
            DECLARE @sqlCommand NVARCHAR(1000) 
        DECLARE @dateTime NVARCHAR(20)
            DECLARE @Loop int                  
                       
            -- Loop through the databases one by one
            SELECT @Loop = min(ID) FROM @DBs
 
      WHILE @Loop IS NOT NULL
      BEGIN
 
-- Database Names have to be in [dbname] formate since some have - or _ in their name
      SET @DBNAME = '['+(SELECT DBNAME FROM @DBs WHERE ID = @Loop)+']'
 
-- Set the current date and time n yyyyhhmmss format
      SET @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),101),'/','') + '_' + REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')  
 
-- Create backup filename in path\filename.extension format for full,diff and log backups
      IF @backupType = 'F'
            SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_FULL_'+ @dateTime+ '.BAK "
ELSE Если @ Тип_архива = было"
SET @ BackupFile = @ расположение + REPLACE (заменить (@ DBNAME, "[",''), "]",'') "_DIFF_" + @ dateTime + ".BAK "
ELSE Если @ Тип_архива = 'L'
SET @ BackupFile = @ расположение + REPLACE (заменить (@ DBNAME," [",''),"] ",'')"_LOG_"+ @ dateTime +".TRN "
--имя резервной копии для хранения в СМИ
@ Тип_архива = 'F'
значение @ Имя_резервной_копии = REPLACE(REPLACE(@DBNAME,'[',''),']','') +" полной резервной копии для "+ @ dateTime
@ Тип_архива = было"
SET @ Имя_резервной_копии = REPLACE(REPLACE(@DBNAME,'[',''),']','') + "разностная резервная копия для" + @ dateTime
@ Тип_архива = 'L'
SET @ Имя_резервной_копии = REPLACE(REPLACE(@DBNAME,'[',''),']','') + "резервная копия журнала для" + @ dateTime
--создавать динамические команды SQL для выполнения
@ Тип_архива = 'F'
                  BEGIN
               SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'
                  END
       IF @backupType = 'D'
                  BEGIN
               SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH DIFFERENTIAL, INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                  END
       IF @backupType = 'L' 
                  BEGIN
               SET @sqlCommand = 'BACKUP LOG ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'        
                  END
 
-- Execute the generated SQL command
       EXEC(@sqlCommand)
 
-- Goto the next database
SELECT @Loop = min(ID) FROM @DBs where ID>@Loop
 
END

пятница, 19 июля 2013 г.

kaspersky

Если вы вконец зае**лись что-то искать на официальном говносайте, вот несколько линков
управлялка для endpoint security серверного
http://www.kaspersky.ru/downloads-security-center

сам эндпоинт
http://products.kaspersky-labs.com/russian/endpoints/
http://products.kaspersky-labs.com/russian/endpoints/kes10windows/kes10win_10.1.0.867ru.exe

И не пытайтесь что-либо найти на сайте напрямую, это бесполезно. Юзайте гугл.