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

Откуда:
Сообщений: 796
Собственно подскажите, как по расписанию запускать Profailer с выгрузкой данных на другой сервер?
Собственно запустил из Managementa вручную трассировку, которая нужна, потом в файл -экспорт - создать определение трассировки - для SQL Server сохранил скрипт, открываю его в студии:
/****************************************************/
/* Created by: SQL Server 2012  Profiler          */
/* Date: 29/12/2015  15:17:27         */
/****************************************************/


-- Create a Queue
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @DateTime datetime

set @DateTime = '2015-12-29 15:16:54.000'
set @maxfilesize = 5 

-- Please replace the text InsertFileNameHere, with an appropriate
-- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension
-- will be appended to the filename automatically. If you are writing from
-- remote server to local drive, please use UNC path and make sure server has
-- write access to your network share

exec @rc = sp_trace_create @TraceID output, 0, N'InsertFileNameHere', @maxfilesize, @Datetime
if (@rc != 0) goto error

-- Client side File and Table cannot be scripted

-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 14, 1, @on
exec sp_trace_setevent @TraceID, 14, 9, @on
exec sp_trace_setevent @TraceID, 14, 10, @on
exec sp_trace_setevent @TraceID, 14, 11, @on
exec sp_trace_setevent @TraceID, 14, 6, @on
exec sp_trace_setevent @TraceID, 14, 12, @on
exec sp_trace_setevent @TraceID, 14, 14, @on
exec sp_trace_setevent @TraceID, 15, 11, @on
exec sp_trace_setevent @TraceID, 15, 6, @on
exec sp_trace_setevent @TraceID, 15, 9, @on
exec sp_trace_setevent @TraceID, 15, 10, @on
exec sp_trace_setevent @TraceID, 15, 12, @on
exec sp_trace_setevent @TraceID, 15, 13, @on
exec sp_trace_setevent @TraceID, 15, 14, @on
exec sp_trace_setevent @TraceID, 15, 15, @on
exec sp_trace_setevent @TraceID, 15, 16, @on
exec sp_trace_setevent @TraceID, 15, 17, @on
exec sp_trace_setevent @TraceID, 15, 18, @on
exec sp_trace_setevent @TraceID, 17, 1, @on
exec sp_trace_setevent @TraceID, 17, 9, @on
exec sp_trace_setevent @TraceID, 17, 10, @on
exec sp_trace_setevent @TraceID, 17, 11, @on
exec sp_trace_setevent @TraceID, 17, 6, @on
exec sp_trace_setevent @TraceID, 17, 12, @on
exec sp_trace_setevent @TraceID, 17, 14, @on
exec sp_trace_setevent @TraceID, 10, 9, @on
exec sp_trace_setevent @TraceID, 10, 2, @on
exec sp_trace_setevent @TraceID, 10, 10, @on
exec sp_trace_setevent @TraceID, 10, 6, @on
exec sp_trace_setevent @TraceID, 10, 11, @on
exec sp_trace_setevent @TraceID, 10, 12, @on
exec sp_trace_setevent @TraceID, 10, 13, @on
exec sp_trace_setevent @TraceID, 10, 14, @on
exec sp_trace_setevent @TraceID, 10, 15, @on
exec sp_trace_setevent @TraceID, 10, 16, @on
exec sp_trace_setevent @TraceID, 10, 17, @on
exec sp_trace_setevent @TraceID, 10, 18, @on
exec sp_trace_setevent @TraceID, 12, 1, @on
exec sp_trace_setevent @TraceID, 12, 9, @on
exec sp_trace_setevent @TraceID, 12, 11, @on
exec sp_trace_setevent @TraceID, 12, 6, @on
exec sp_trace_setevent @TraceID, 12, 10, @on
exec sp_trace_setevent @TraceID, 12, 12, @on
exec sp_trace_setevent @TraceID, 12, 13, @on
exec sp_trace_setevent @TraceID, 12, 14, @on
exec sp_trace_setevent @TraceID, 12, 15, @on
exec sp_trace_setevent @TraceID, 12, 16, @on
exec sp_trace_setevent @TraceID, 12, 17, @on
exec sp_trace_setevent @TraceID, 12, 18, @on
exec sp_trace_setevent @TraceID, 13, 1, @on
exec sp_trace_setevent @TraceID, 13, 9, @on
exec sp_trace_setevent @TraceID, 13, 11, @on
exec sp_trace_setevent @TraceID, 13, 6, @on
exec sp_trace_setevent @TraceID, 13, 10, @on
exec sp_trace_setevent @TraceID, 13, 12, @on
exec sp_trace_setevent @TraceID, 13, 14, @on


-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint

exec sp_trace_setfilter @TraceID, 10, 0, 7, N'Приложение SQL Server Profiler - f9026d6a-564a-4f79-9ad5-108924eacc63'
-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1

-- display trace id for future references
select TraceID=@TraceID
goto finish

error: 
select ErrorCode=@rc

finish: 
go


и не вижу путей куда он данные сохранять должен, и чую что-то не то делаю:)
29 дек 15, 15:39    [18623452]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
читайте внимательно:

-- Please replace the text InsertFileNameHere, with an appropriate
-- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension
-- will be appended to the filename automatically. If you are writing from
-- remote server to local drive, please use UNC path and make sure server has
-- write access to your network share
29 дек 15, 15:41    [18623467]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
mishanya3624
Member

Откуда:
Сообщений: 796
Konst_One,

так он на локальную машину сохраняет файлы .trc, и каждый раз надо менять имя файла, чтобы не ругался , и хотелось бы сразу в таблицу данные заносить, и чтобы он выполнялся каждый день например с 11.00 - 12.30 и с 14.30 - 16.00(ну тут можно просто 2 скрипта сделать конечно) set @DateTime , как-то можно настроить на каждый день(а не на определенный) с такого-то времени по такое-то?
29 дек 15, 15:57    [18623532]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
пишите скрипты , которые будут переносить эти файлы в нужное вам место, и запускайте их по заданию в планировщике
29 дек 15, 16:00    [18623546]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
mishanya3624
Member

Откуда:
Сообщений: 796
Konst_One,

окей, а как задать время работы профайлера по промежуткам времени?
29 дек 15, 18:02    [18624164]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
mishanya3624
Member

Откуда:
Сообщений: 796
и еще вопрос, можно ли написать триггер на изменение содержания локальной директории, то есть , упало что-то туда, значит берем это и инсертим туда-то. Чтобы избежать написания скрипта и постановки в задание на выборку данных из директории.
29 дек 15, 18:37    [18624286]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
mishanya3624
и еще вопрос, можно ли написать триггер на изменение содержания локальной директории, то есть , упало что-то туда, значит берем это и инсертим туда-то. Чтобы избежать написания скрипта и постановки в задание на выборку данных из директории.


это к работе SQL сервера не имеет отношения. пишите на языке, который знаете.
30 дек 15, 14:28    [18627975]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4900
mishanya3624,

В качестве такого триггере могу порекомендовать FileTable


https://msdn.microsoft.com/en-us/library/ff929144(v=sql.110).aspx#Description

30 дек 15, 14:41    [18628059]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
pXn
Member

Откуда: Косопузая
Сообщений: 45
mishanya3624
Konst_One,

окей, а как задать время работы профайлера по промежуткам времени?
С помощью заданий агента и sp_trace_setstatus
30 дек 15, 16:21    [18628747]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
pXn
Member

Откуда: Косопузая
Сообщений: 45
mishanya3624
Konst_One,

так он на локальную машину сохраняет файлы .trc, и каждый раз надо менять имя файла, чтобы не ругался ,

указывайте несколько фалов в sp_trace_create

mishanya3624
Konst_One,
и хотелось бы сразу в таблицу данные заносить,

что-то вроде этого (считывается текущий файл трассировки):
SELECT * FROM sys.fn_trace_gettable(cast((select value from sys.fn_trace_getinfo(@TraceID) where property = 2) as varchar(255)), default);

обрабатывать в том же джобе, о котором писал выше
30 дек 15, 16:28    [18628799]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
mishanya3624
Member

Откуда:
Сообщений: 796
Вернулся к задуманному, все отрабатывает, вопрос, как сделать паузу после запуска трассировки exec sp_trace_setstatus @TraceID, 1 , чтобы прошло время достаточное для выполнения полной трассировки set @maxfilesize = 3 :
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 3 

exec master..xp_cmdshell 'del G:\1\.trc'
exec @rc = sp_trace_create @TraceID output, 0, N'G:\1\', @maxfilesize, NULL 
if (@rc != 0) goto error

declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 14, 1, @on
exec sp_trace_setevent @TraceID, 14, 9, @on
exec sp_trace_setevent @TraceID, 14, 10, @on
exec sp_trace_setevent @TraceID, 14, 11, @on
exec sp_trace_setevent @TraceID, 14, 6, @on
exec sp_trace_setevent @TraceID, 14, 12, @on
exec sp_trace_setevent @TraceID, 14, 14, @on
exec sp_trace_setevent @TraceID, 15, 11, @on
exec sp_trace_setevent @TraceID, 15, 6, @on
exec sp_trace_setevent @TraceID, 15, 9, @on
exec sp_trace_setevent @TraceID, 15, 10, @on
exec sp_trace_setevent @TraceID, 15, 12, @on
exec sp_trace_setevent @TraceID, 15, 13, @on
exec sp_trace_setevent @TraceID, 15, 14, @on
exec sp_trace_setevent @TraceID, 15, 15, @on
exec sp_trace_setevent @TraceID, 15, 16, @on
exec sp_trace_setevent @TraceID, 15, 17, @on
exec sp_trace_setevent @TraceID, 15, 18, @on
exec sp_trace_setevent @TraceID, 17, 1, @on
exec sp_trace_setevent @TraceID, 17, 9, @on
exec sp_trace_setevent @TraceID, 17, 10, @on
exec sp_trace_setevent @TraceID, 17, 11, @on
exec sp_trace_setevent @TraceID, 17, 6, @on
exec sp_trace_setevent @TraceID, 17, 12, @on
exec sp_trace_setevent @TraceID, 17, 14, @on
exec sp_trace_setevent @TraceID, 10, 9, @on
exec sp_trace_setevent @TraceID, 10, 2, @on
exec sp_trace_setevent @TraceID, 10, 10, @on
exec sp_trace_setevent @TraceID, 10, 6, @on
exec sp_trace_setevent @TraceID, 10, 11, @on
exec sp_trace_setevent @TraceID, 10, 12, @on
exec sp_trace_setevent @TraceID, 10, 13, @on
exec sp_trace_setevent @TraceID, 10, 14, @on
exec sp_trace_setevent @TraceID, 10, 15, @on
exec sp_trace_setevent @TraceID, 10, 16, @on
exec sp_trace_setevent @TraceID, 10, 17, @on
exec sp_trace_setevent @TraceID, 10, 18, @on
exec sp_trace_setevent @TraceID, 12, 1, @on
exec sp_trace_setevent @TraceID, 12, 9, @on
exec sp_trace_setevent @TraceID, 12, 11, @on
exec sp_trace_setevent @TraceID, 12, 6, @on
exec sp_trace_setevent @TraceID, 12, 10, @on
exec sp_trace_setevent @TraceID, 12, 12, @on
exec sp_trace_setevent @TraceID, 12, 13, @on
exec sp_trace_setevent @TraceID, 12, 14, @on
exec sp_trace_setevent @TraceID, 12, 15, @on
exec sp_trace_setevent @TraceID, 12, 16, @on
exec sp_trace_setevent @TraceID, 12, 17, @on
exec sp_trace_setevent @TraceID, 12, 18, @on
exec sp_trace_setevent @TraceID, 13, 1, @on
exec sp_trace_setevent @TraceID, 13, 9, @on
exec sp_trace_setevent @TraceID, 13, 11, @on
exec sp_trace_setevent @TraceID, 13, 6, @on
exec sp_trace_setevent @TraceID, 13, 10, @on
exec sp_trace_setevent @TraceID, 13, 12, @on
exec sp_trace_setevent @TraceID, 13, 14, @on


-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint

exec sp_trace_setfilter @TraceID, 10, 0, 7, N'Приложение SQL Server Profiler - 91bb16a6-c9ef-4456-95ea-09b52a498d69'
-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1 

error: 
select ErrorCode=@rc

select @TraceID
EXEC sp_trace_setstatus @TraceID, 0
EXEC sp_trace_setstatus @TraceID, 2
go
SELECT *
FROM fn_trace_gettable('G:\1\.trc', default);
goto finish

finish: 
go
16 фев 16, 00:39    [18821315]     Ответить | Цитировать Сообщить модератору
 Re: Profiler по расписанию с загрузкой данных на другой сервер  [new]
mishanya3624
Member

Откуда:
Сообщений: 796
Вопрос решен
16 фев 16, 09:48    [18821944]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить