powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скрипт перестает работать если его запустить через джобу сиквела
39 сообщений из 39, показаны все 2 страниц
Скрипт перестает работать если его запустить через джобу сиквела
    #39984825
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,

У меня есть скрипт PowerwShell, который прекрасно работает если его запустить вручную.

Если я его помещаю в джобу, то получаю ошибку:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Write-SqlTableData : Failed to connect to server server2\instance2.
At C:\myfolder\tst.ps1:111 char:4
+    Write-SqlTableData -ServerInstance $SrvDestination -Database MyDB ...
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (server2\instance2:String) [Write-SqlTableData], Co 
   nnectionFailureException
    + FullyQualifiedErrorId : ConnectionToServerFailed,Microsoft.SqlServer.Management.PowerShell. 
   WriteSqlTableData



Тип шага джобы: "Operating system(CmdExec)"
Команда:
Код: powershell
1.
PowerShell.exe "C:\myfolder\tst.ps1 server1\instance1 server2\instance2 42" -NonInteractive



Если закоментить вторую строчку в команде ниже, то все работает:
Код: powershell
1.
2.
(Invoke-Sqlcmd -query $Query -ServerInstance  $SrvSource  -database master -OutputAs DataTables) 
# | Write-SqlTableData -ServerInstance $SrvDestination -Database mydb -SchemaName dbo -TableName mytable -Force
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984836
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дык, твоя учетная запись и учетная запись Агента имеют разные права на сервере. В том числе и на удаленном сервере.

ЗЫ. Самое правильное - ЯВНО авторизоваться на удаленном сервере в скрипте powershell.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984850
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Ну дык, твоя учетная запись и учетная запись Агента имеют разные права на сервере. В том числе и на удаленном сервере.

ЗЫ. Самое правильное - ЯВНО авторизоваться на удаленном сервере в скрипте powershell.



Я этот шаг выполняю через прокси с credentials с моей учетной записью. Это чтобы не возникло проблем с правами. Дело все-таки в "Write-SqlTableData". Без нее к серверу все прекрасно подключается.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984852
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Errorlog сиквела смотрите, чтобы узнать что скрывается за "Failed to connect to server server2\instance2"
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984854
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m
Без нее к серверу все прекрасно подключается.

Наивный.
Ну... не пиши данные на сервер.
Только, ведь, тебя это не устроит.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984858
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
Errorlog сиквела смотрите, чтобы узнать что скрывается за "Failed to connect to server server2\instance2"


Единственное сообщение за сегодня:
Код: sql
1.
This instance of SQL Server has been using a process ID of 3968 since 19/07/2020 12:26:17 PM (local) 19/07/2020 2:26:17 AM (UTC). This is an informational message only; no user action is required.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984859
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Roust_m
Без нее к серверу все прекрасно подключается.

Наивный.
Ну... не пиши данные на сервер.
Только, ведь, тебя это не устроит.


Ну хорошо, а как мне явно авторизоваться на сервере? Ведь у меня их два:
$SrvSource и $SrvDestination

Код: powershell
1.
2.
(Invoke-Sqlcmd -query $Query -ServerInstance  $SrvSource  -database master -OutputAs DataTables)  | 
Write-SqlTableData -ServerInstance $SrvDestination -Database mydb -SchemaName dbo -TableName mytable -Force



Причем, $SrvDestination он не удаленный, на нем сама джоба и исполняется.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984865
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m,

Если в errorlog нету сообщений вида login failed - значит либо до соединения с сервером вообще не доходит, либо смотрите не тот (не там) errorlog
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984866
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
Roust_m,

Если в errorlog нету сообщений вида login failed - значит либо до соединения с сервером вообще не доходит, либо смотрите не тот (не там) errorlog
Либо логирование неудачных попыток отключено.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984882
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m,

Пара наивных вопросов:

0. Сервера в одном домене? Имена полные?
1. Пробовали ли создать явное описание подключения?
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984894
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
Roust_m,

Пара наивных вопросов:

0. Сервера в одном домене? Имена полные?
1. Пробовали ли создать явное описание подключения?


Да в одном.

Я видоизменил скрипт:
Код: powershell
1.
2.
3.
$Query = "select name from master.sys.databases (nolock) where database_id > 5" 
Invoke-Sqlcmd -query $Query -ServerInstance  $SrvSource  -database master -OutputAs DataTables
Invoke-Sqlcmd -query $Query -ServerInstance  $SrvDestination  -database master -OutputAs DataTables



В этом виде все работает. Как только начинаю использовать Write-SqlTableData, все ломается нафик. :(
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984902
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже я начинаю нащупывать проблему.

Перед выполнением
Код: powershell
1.
2.
(Invoke-Sqlcmd -query $Query -ServerInstance  $SrvSource  -database master -OutputAs DataTables)  |
   Write-SqlTableData -ServerInstance $SrvDestination -Database MigrManagement -SchemaName dbo -TableName test -Force


Я перезаписал запрос, сделав его очень маленьким:
Код: powershell
1.
$Query = "select name from master.sys.databases (nolock) where database_id > 5" 



После этого все начало работать и в джобе.

Похоже дело в длине запроса. Когда он большой, то Write-SqlTableData начинает глючить. Мой реальный запрос таков:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
$Query = "declare @last_full_backup table (database_name sysname, last_lsn numeric(25,0))   

insert into @last_full_backup (database_name, last_lsn)
select database_name, MAX(last_lsn) 
from msdb.dbo.backupset b 
INNER JOIN msdb.dbo.backupmediafamily m ON b.media_set_id = m.media_set_id
where type = 'D'  and is_copy_only = 0 
group by database_name
order by database_name


SELECT $groupid, b.type, b.database_name, b.backup_finish_date,  physical_device_name,
'RESTORE DATABASE [' + b.database_name + '] FROM ' +
(
STUFF((
select 
', DISK = N' + '''' +  '$RestorePathSY6' + CASE b.type When 'D' Then '\FULL\' When 'I' Then '\DIFF\' When 'L' Then '\Log\' END +substring(physical_device_name, len(physical_device_name) - CHARINDEX('\',reverse(physical_device_name))+2, len(physical_device_name) ) + '''' + ' '  
from 
msdb.dbo.backupmediafamily mf
where  b.media_set_id = mf.media_set_id
FOR XML PATH ('')), 1, 2, '')) +
' WITH  FILE = 1,  ' +
STUFF((
select '  MOVE N'+ '''' + m.name + '''' + ' TO N' + '''' + '$DataFolder' + 
substring(physical_name, len(physical_name) - CHARINDEX('\',reverse(physical_name))+2, len(physical_name) ) + '''' + ','
from
 master.sys.master_files m,
 sys.databases d
 where m.database_id = d.database_id
 and d.name = b.database_name
 and m.[type] = 0
FOR XML PATH ('')), 1, 1, '') + 
STUFF((
select '  MOVE N'+ '''' + m.name + '''' + ' TO N' + '''' + '$LogFolder' + 
substring(physical_name, len(physical_name) - CHARINDEX('\',reverse(physical_name))+2, len(physical_name) ) + '''' + ','
from
 master.sys.master_files m,
 sys.databases d
 where m.database_id = d.database_id
 and d.name = b.database_name
 and m.[type] = 1
FOR XML PATH ('')), 1, 1, '') +
'NORECOVERY,  NOUNLOAD,  STATS = 5' as RestoreCommandSY6,
'RESTORE DATABASE [' + b.database_name + '] FROM ' +
(
STUFF((
select 
', DISK = N' + '''' +  '$RestorePathSY7' + CASE b.type When 'D' Then '\FULL\' When 'I' Then '\DIFF\' When 'L' Then '\Log\' END +substring(physical_device_name, len(physical_device_name) - CHARINDEX('\',reverse(physical_device_name))+2, len(physical_device_name) ) + '''' + ' '  
from 
msdb.dbo.backupmediafamily mf
where  b.media_set_id = mf.media_set_id
FOR XML PATH ('')), 1, 2, '')) +
' WITH  FILE = 1,  ' +
STUFF((
select '  MOVE N'+ '''' + m.name + '''' + ' TO N' + '''' + '$DataFolder' + 
substring(physical_name, len(physical_name) - CHARINDEX('\',reverse(physical_name))+2, len(physical_name) ) + '''' + ','
from
 master.sys.master_files m,
 sys.databases d
 where m.database_id = d.database_id
 and d.name = b.database_name
 and m.[type] = 0
FOR XML PATH ('')), 1, 1, '') + 
STUFF((
select '  MOVE N'+ '''' + m.name + '''' + ' TO N' + '''' + '$LogFolder' + 
substring(physical_name, len(physical_name) - CHARINDEX('\',reverse(physical_name))+2, len(physical_name) ) + '''' + ','
from
 master.sys.master_files m,
 sys.databases d
 where m.database_id = d.database_id
 and d.name = b.database_name
 and m.[type] = 1
FOR XML PATH ('')), 1, 1, '') +
'NORECOVERY,  NOUNLOAD,  STATS = 5' as RestoreCommandSY7
from
msdb.dbo.backupset b
INNER JOIN msdb.dbo.backupmediafamily m ON b.media_set_id = m.media_set_id
join @last_full_backup lfb
on b.last_lsn >= lfb.last_lsn and b.database_name = lfb.database_name
--where b.type = 'D' or b.type = 'L'
order by b.database_name, b.backup_finish_date desc
"



Осталось понять, как этот скрипт заставить работать в джобе и большим и сложным запросом. Хранимые процедуры или вообще какие-либо объекты на сервере $SrvSource я создавать не могу.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984917
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m,
авторЯ перезаписал запрос, сделав его очень маленьким:
$Query = "select name from master.sys.databases (nolock) where database_id > 5"

Дело не в размере, это запрос никуда ничего не записывает.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984940
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Roust_m,
авторЯ перезаписал запрос, сделав его очень маленьким:
$Query = "select name from master.sys.databases (nolock) where database_id > 5"


Дело не в размере, это запрос никуда ничего не записывает.

ну логично тогда попробовать элементарный апдейт-Insert в тестовую таблицу и глянуть прокатит или нет
чтобы локализовать проблему.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984943
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федор
Владислав Колосов
Roust_m,
пропущено...


Дело не в размере, это запрос никуда ничего не записывает.


ну логично тогда попробовать элементарный апдейт-Insert в тестовую таблицу и глянуть прокатит или нет
чтобы локализовать проблему.


Гораздо логичнее - перестать жрать кактус.

Если у тредстартера фсе это безобразие творится на ОДНОМ сервере, то нахера ваще Write-SqlTableData?
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39984964
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах да, поскольку мышей не отучишь жрать кактус, то можно ишо профайлер запустить.

И узрить воотчую разницу между "прекрасно работает если его запустить вручную" и "Если я его помещаю в джобу, то получаю ошибку".

Экономия кактуса может быть изрядной.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985024
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федор
Владислав Колосов
Roust_m,
пропущено...


Дело не в размере, это запрос никуда ничего не записывает.


ну логично тогда попробовать элементарный апдейт-Insert в тестовую таблицу и глянуть прокатит или нет
чтобы локализовать проблему.


Уже прокатило:
Код: powershell
1.
2.
3.
$Query = "select name from master.sys.databases (nolock) where database_id > 5" 
(Invoke-Sqlcmd -query $Query -ServerInstance  $SrvSource  -database master -OutputAs DataTables)  |
   Write-SqlTableData -ServerInstance $SrvDestination -Database MigrManagement -SchemaName dbo -TableName test -Force
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985025
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Гулин Федор
пропущено...


ну логично тогда попробовать элементарный апдейт-Insert в тестовую таблицу и глянуть прокатит или нет
чтобы локализовать проблему.


Гораздо логичнее - перестать жрать кактус.

Если у тредстартера фсе это безобразие творится на ОДНОМ сервере, то нахера ваще Write-SqlTableData?


В том-то и дело, что не на одном:
(Invoke-Sqlcmd -query $Query -ServerInstance $SrvSource -database master -OutputAs DataTables) |
Write-SqlTableData -ServerInstance $SrvDestination -Database mydb -SchemaName dbo -TableName mytable -Force
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985114
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m,

авторПосле этого все начало работать и в джобе.
Здесь еще интереснее - зачем Вы выполняете в джобе PS скрипт? Я бы еще понял, если это был бы планировщик windows. Что мешает использовать Integration Services, например?
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985179
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Roust_m,

авторПосле этого все начало работать и в джобе.

Здесь еще интереснее - зачем Вы выполняете в джобе PS скрипт? Я бы еще понял, если это был бы планировщик windows. Что мешает использовать Integration Services, например?

Всяческие ограничения, принятые прежде решения, безопасность и т.д. Идти обратно к начальству, просить пересмотреть дизайн из-за того, что одна команда не работает? Я попробую планировщик Windows, но хотелось бы иметь возможность использовать сиквел джобы, ибо они как-то привычней и более знакомы.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985182
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал планировщик Windows, вылезает ошибка:

---------------------------
Task Scheduler
---------------------------
An error has occurred for task MyDB Refresh. Error message: The following error was reported: 2147944309.
---------------------------
OK
---------------------------
Вот по этой причине и хотелось бы иметь возможность использовать джобы сиквела, ибо они очень знакомы.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985183
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фиксанул эту ошибку и запустил задачу. Тот же шаг не отрабатывает и в планировщике Windows. История задач планировщика ужасная, сплошная абра-кадабра, понять почему шаг падает непросто.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985267
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m,

что хотите делать вашим скриптом?
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985330
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m
aleks222
пропущено...


Гораздо логичнее - перестать жрать кактус.

Если у тредстартера фсе это безобразие творится на ОДНОМ сервере, то нахера ваще Write-SqlTableData?


В том-то и дело, что не на одном:
(Invoke-Sqlcmd -query $Query -ServerInstance $SrvSource -database master -OutputAs DataTables) |
Write-SqlTableData -ServerInstance $SrvDestination -Database mydb -SchemaName dbo -TableName mytable -Force


Мыши кололись, плакали, но продолжали жрать кактус...
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985486
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
Roust_m,

что хотите делать вашим скриптом?


Мне нужно на базе истории бекапов на одном сервере построить команды восстановления этих бекапов на другом сервере. Linked Servers к источникам я создавать не могу, поэтому приходится использовать PowerShell.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985490
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я еще обнаружил, что если выполнить из командной строки:
Код: powershell
1.
PowerShell.exe "C:\MyFolder\04_build_restore_commands.ps1 ServerSource\inst1 ServerDestination\Inst1 42" -NonInteractive



То тоже выдает сообщение что подключиться не может. Я даже таймаут пытался увеличить до 10 минут, все равно висит 10 минут и отваливается.

Также заметил, что если передать неправильный параметр сервера источника, вместо него указать сервер, где нет истории бекапов нужных баз, то все отрабатывает, видимо потому, что запрос ничего не возвращает.

Видимо это зависит от размера возвращаемых данных. Похоже Write-SqlTableData не очень хорошо работает с бОльшими по размеру данными (сотни записей).
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985491
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Roust_m
пропущено...


В том-то и дело, что не на одном:
(Invoke-Sqlcmd -query $Query -ServerInstance $SrvSource -database master -OutputAs DataTables) |
Write-SqlTableData -ServerInstance $SrvDestination -Database mydb -SchemaName dbo -TableName mytable -Force


Мыши кололись, плакали, но продолжали жрать кактус...


Есть предложения как добиться нужного результата? Учитывай пжлста, что эта среда, где гайки затянуты очень туго.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985492
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m,

Больше брутальности. Выгрузить в файл и прямым Invoke-Sqlcmd insert values пачками по 1000 строк.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39985504
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m
aleks222
пропущено...


Мыши кололись, плакали, но продолжали жрать кактус...


Есть предложения как добиться нужного результата? Учитывай пжлста, что эта среда, где гайки затянуты очень туго.


Запустить таки профайлер и сэкономить кофейную гущу.

Промежду прочим, " Выгрузить в файл" весьма дельное предложение. Если BCP.exe задействовать - еще и быстро будет.

Но жертвы ООП должны страдать.
Ибо, открыть 2 рекордсета и перекинуть из одного в другой содержимое - это слишком просто.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39986288
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Roust_m
пропущено...


Есть предложения как добиться нужного результата? Учитывай пжлста, что эта среда, где гайки затянуты очень туго.


Запустить таки профайлер и сэкономить кофейную гущу.

Промежду прочим, " Выгрузить в файл" весьма дельное предложение. Если BCP.exe задействовать - еще и быстро будет.

Но жертвы ООП должны страдать.
Ибо, открыть 2 рекордсета и перекинуть из одного в другой содержимое - это слишком просто.


Запускал профайлер, но ничего там не нашел. Может не те события смотрел. Также обнаружил, что запись в таблицу начинается и туда попадают первые пару сотен записей. а потом все отваливается. Причем в пройфайлере очень много попыток вставить в таблицу. Иногда, когда все отрабатывает за менее чем 20 секунд джоба успешна.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39986302
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m
Причем в пройфайлере очень много попыток вставить в таблицу. Иногда, когда все отрабатывает за менее чем 20 секунд джоба успешна.


1. Включите регистрацию ошибок.
2. Если ошибок нет => ну дык, где-то в клиенте заколочен таймаут.
3. Повторяю: жертвы ООП обязаны страдать.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39986304
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Roust_m
Причем в пройфайлере очень много попыток вставить в таблицу. Иногда, когда все отрабатывает за менее чем 20 секунд джоба успешна.


1. Включите регистрацию ошибок.
2. Если ошибок нет => ну дык, где-то в клиенте заколочен таймаут.
3. Повторяю: жертвы ООП обязаны страдать.


Прошу пардон, а где и как ее включить?

Я также обнаружил, что та же проблема случается в стандартном окне PowerShell. А вот в PowerShell ISE все прекрасно работает.

Также если из командной строки запустить:
Код: powershell
1.
PowerShell.exe "C:\MyScripts\test.ps1 sourceserver\inst1 serverdestinaton\instance2 42" 


То вылезает та же ошибка.

Чем отличается PowerShell ISE oт обычного PowerShell в плане таймаутов?
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39986314
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Roust_m
Причем в пройфайлере очень много попыток вставить в таблицу. Иногда, когда все отрабатывает за менее чем 20 секунд джоба успешна.


1. Включите регистрацию ошибок.
2. Если ошибок нет => ну дык, где-то в клиенте заколочен таймаут.
3. Повторяю: жертвы ООП обязаны страдать.


Не надо никому страдать! Проблема решена!

Я заменил формат данных и все заработало.

Было:
(Invoke-Sqlcmd -query $Query `
-ServerInstance $SrvSource -database master -ConnectionTimeout 600 -OutputAs DataTable ) |
Write-SqlTableData -ServerInstance $SrvDestination -Database MyDB -SchemaName dbo -TableName MyTable -ConnectionTimeout 120 -Timeout 120 -Force

Стало:
(Invoke-Sqlcmd -query $Query `
-ServerInstance $SrvSource -database master -ConnectionTimeout 600 -OutputAs DataSet ) |
Write-SqlTableData -ServerInstance $SrvDestination -Database MyDB -SchemaName dbo -TableName MyTable -ConnectionTimeout 120 -Timeout 120 -Force
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39986321
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m
Прошу пардон, а где и как ее включить?

Вестимо в профайлере.

Roust_m
Не надо никому страдать! Проблема решена!

Танец с бубном нельзя считать "решением проблемы".
Увы.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39986328
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем вообще прибегать к PS, когда есть штатное средство Intergtion Services. Делаю, как умею, в общем.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39986330
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Roust_m
Прошу пардон, а где и как ее включить?

Вестимо в профайлере.

Roust_m
Не надо никому страдать! Проблема решена!

Танец с бубном нельзя считать "решением проблемы".
Увы.


Я так понимаю речь идет о включении событий из раздела "Errors and Warnings" в профайлере? Я их включил, но ничего полезного не нашел.

Может и нельзя, но время испольнения скрипта сократилось до 2-3-х секунд, а раньше занимало 20-60. Что тоже полезно. Я поищу еще, но для моей задачи такое решение вполне походит.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39986552
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Зачем вообще прибегать к PS, когда есть штатное средство Intergtion Services. Делаю, как умею, в общем.


Помимо копирования небольшого количества данных между двумя серверами, не тянет эта задача на Integration Services. Плюс надо идти обратно к начальству, менять дизайн, все согласовывать, делать оценку безопасности и т.д. и все из-за одно не работающей команды. В каждой среде есть своя специфика.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39986624
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m,

пакет - это не что-то грандиозное, это средство выполнения ETL задач. У Вас типовая ETL задача. Источник - получатель. При этом не требуется создавать связанные серверы.
...
Рейтинг: 0 / 0
Скрипт перестает работать если его запустить через джобу сиквела
    #39986647
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,
при том что когда-то SSIS был моим осн. тулом в некоторых проектах
я бы тоже не юзал его по мелочам


в случает топикстратера
я бы делал скрпиты через линк-сервера и запускал через SSMS (job)
возможно запихнул бы в SP
Powershell я тоже юзал - но больше для SSAS дел - там это очень удобно.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скрипт перестает работать если его запустить через джобу сиквела
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]