2013-05-01 3 views
1

фона:Запуск сценариев SQL на нескольких серверах

У меня есть тестовый сервер (SQL Server 2008 R2), который содержит БД, в которой я хранить информацию о других БД из моих производственных серверов (Смешение SQL Server 2008 R2 и 2012). У меня есть несколько сценариев, которые я запускаю ежемесячно, который собирает информацию, такую ​​как количество VLF, из каждой БД на сервере. То, что я делал, - это запуск сценариев на каждом из моих производственных серверов, копирование результатов в .txt-файл и импорт .txt-файла в БД на моем тестовом сервере.

Проблема:

  1. Как можно автоматизировать мои сценарии для запуска на каждом сервере производства без меня регистрации на каждом производственном сервере и работает каждый сценарий?

  2. Как я могу вставить собранную информацию в свой тестовый сервер DB без необходимости копировать/вставлять?

Пример сценария:

SET NOCOUNT ON; 

CREATE TABLE #to 
(
    ServerName varchar(20), 
    CaptureDate DATETIME, 
    DBName SYSNAME, 
    FileCount INT 
); 

DECLARE @v INT; 
SELECT @v = CONVERT(INT, PARSENAME(CONVERT(VARCHAR(32), 
    SERVERPROPERTY('ProductVersion')), 4)); 

DECLARE @sql NVARCHAR(MAX); 

SET @sql = N'CREATE TABLE #ti 
    (
    ' + CASE WHEN @v >= 11 THEN 'RecoveryUnitId INT,' ELSE '' END + '  
    FileId int 
    , FileSize nvarchar(255) 
    , StartOffset nvarchar(255) 
    , FSeqNo nvarchar(255) 
    , Status int 
    , Parity int 
    , CreateLSN nvarchar(255) 
);'; 

SELECT @sql = @sql + ' 
    INSERT #ti EXEC ' + QUOTENAME(name) 
    + '.sys.sp_executesql N''DBCC LOGINFO WITH NO_INFOMSGS''; 
    INSERT INTO 
     #to(DBName, FileCount) SELECT ''' + name + ''', COUNT(*) FROM #ti; 
    TRUNCATE TABLE #ti;' 
FROM sys.databases; 

EXEC sp_executesql @sql; 

SELECT @@ServerName,GETDATE(),DBName,FileCount 

FROM #to 

ORDER BY DBName 

DROP TABLE #to; 

Любая помощь будет принята с благодарностью.

+0

dbsql также является командной строкой l для доступа к SQL Server. Вы можете запустить его с помощью флага '-i' для вызова имени сценария. –

ответ

3
  1. Создание связанного сервера на каждом из производственных SQL серверов в тестовой базе данных

    Эта ссылка больше информации о связанных серверов http://msdn.microsoft.com/en-us/library/ff772782.aspx

  2. Создать работу SQL Server, который запускает SQL скрипт, который вставляет данные в таблицу на тестовом сервере (через связанный сервер)

+0

Спасибо за ваш отзыв ... Когда я создаю сценарий задания, мне нужно работать с параметром «Целевые множественные серверы» из свойств задания? Мне не хватает того, как связать сценарий задания тестового сервера с производственными серверами. –

Смежные вопросы