powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Azure и замена сиквел агенту.
6 сообщений из 6, страница 1 из 1
Azure и замена сиквел агенту.
    #39825923
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,

На стандартном сиквельном инстансе у меня была джоба по скриптованию баз. Шаг из этой джобы приведен ниже.э

Пытаюсь тоже самое сделать на Азуре. Elastic job agent поддерживает только TSQL. Automation Account (Runbooks) поддерживавет Powershell, но как-то не до конца. Когда запускаю код ниже, получаю ошибку:
Failed
The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: Cannot find drive. A drive with the name 'SQLSERVER' does not exist.


Я что-то делаю не так или в Азуре такое в принципе невозможно?

Спасибо.

Код: 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.
#Stop script on any error
$erroractionpreference = "Stop"
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"

#$Srv = '$(ESCAPE_SQUOTE(SRVR))'
$Srv = 'myserver.database.windows.net,1433'
SL SQLSERVER:\SQL\"$Srv"\Databases
$s = new-object ('Microsoft.SqlServer.Management.Smo.Server') "$Srv"  
$dbs=$s.Databases 
$so = new-object Microsoft.SqlServer.Management.Smo.ScriptingOptions
$so.IncludeIfNotExists = 1
$so.ExtendedProperties = 1
# $so.Permissions = 1
$so.IncludeDatabaseContext = 1
# $so.WithDependencies = 1

$Query = "select name from master.sys.databases (nolock) where database_id > 5" 
$DBList = Invoke-Sqlcmd -query $Query 

foreach($item in $DBList) {
  $DB = $item.name
  $File = "01-DB.sql"
  $script = $dbs["$DB"].Script($so)  
  $script = $script -replace "''", "''''"
  $Query = "INSERT INTO [Support].[support].[DBScripts]([DBName], [ScriptName], [ScriptDate], [ScriptText]) VALUES ('$DB','$File','$timestamp','$script')"
  Invoke-Sqlcmd -query $Query
}
...
Рейтинг: 0 / 0
Azure и замена сиквел агенту.
    #39825977
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда запускаю Powershell на обычном инстансе, то выдает сообщение:
Код: sql
1.
2.
3.
4.
5.
6.
TITLE: 'SqlServer' module not found
------------------------------
No SQL Server cmdlets found on this computer. 
Get the 'SqlServer' module at https://powershellgallery.com/packages/SqlServer

Start PowerShell without SQL Server cmdlets?



Без этих cmdlets скрипт не запустится. Вопрос только в том, как их можно в Азур установить?
...
Рейтинг: 0 / 0
Azure и замена сиквел агенту.
    #39826010
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m,

Вместо Агента на Azure есть много чего другого: Azure Data Factory (ADF), Azure DataBricks, Azure Automation/Orchestration и т.д.
кроме того в PowerShell можно ссылаться на те references/libraries которые установлены на сервере с которого запускается PowerSHell
их так-же можно вызывать указывая путь
SMO скорее всего стояла на сервере откуда была вызвана (ставится вместе с SQL Server),
в облаке может и не быть установлено (или стоять другая версия, с другими NameSpace)

PowerShell можно так-же вызывать дистанционно (в т.ч. из orchestrator который вызывается на Azure)
или пользоваться другими cmdlets специально предназначенными для Azure, которых вполне хватает
(тем более на такую простую операцию как SQL Insert)
...
Рейтинг: 0 / 0
Azure и замена сиквел агенту.
    #39827506
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkivRoust_m,

Вместо Агента на Azure есть много чего другого: Azure Data Factory (ADF), Azure DataBricks, Azure Automation/Orchestration и т.д.
кроме того в PowerShell можно ссылаться на те references/libraries которые установлены на сервере с которого запускается PowerSHell
их так-же можно вызывать указывая путь
SMO скорее всего стояла на сервере откуда была вызвана (ставится вместе с SQL Server),
в облаке может и не быть установлено (или стоять другая версия, с другими NameSpace)

PowerShell можно так-же вызывать дистанционно (в т.ч. из orchestrator который вызывается на Azure)
или пользоваться другими cmdlets специально предназначенными для Azure, которых вполне хватает
(тем более на такую простую операцию как SQL Insert)

Тут самая сложная операция вот эта:
$script = $dbs["$DB"].Script($so)

То есть заскриптовать базу, ну и потом вставить скрипт в таблицу.
...
Рейтинг: 0 / 0
Azure и замена сиквел агенту.
    #39827889
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m,

SMO в Azure SQL DataBase должен работать хотя в Ажуре много чего по другому (если работать изнутри), есть изоляция баз
(поэтому лучше список баз по другому получать, напр. Get-AzSqlInstanceDatabase), есть установка контекста (Set-AzContext
так-же AzureCredentials, Subscription, ResourceGroup, Instance, DataBase) но это немного другие модули
(можно-бы ещё задействовать Azure Shell, но у тебя насколько понимаю принимающий endpoint является OnPremises
{с отдельным исполняющим хостом}, т.е. тогда нужен GateWay) при этом неплохо-бы проверять доступность
(статус не обязательно Online , может и на паузе/sleep стоять)
и ждать пока она придёт в Online после пробуждения первым запросом, но проблема не в этом..

у тебя явно пишет ошибку по другому модулю (т.е. не SMO) a SqlServer (вместо старого SQLPS)
http://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-databases-transact-sql
которые могут быть не установлены / не инициализированы (Get/Install/Import/Update -Module)
по идее sl (Set-Location) там вообще лишний т.к. можно установить контекст (местного сервера принимающего insert)
и выполнить скрипт той-же SMO библиотекой (т.е. без привлечения других PS модулей)

кроме всего прочего Invoke-Sqlcmd так-же вполне успешно принимает параметры и сервера и базы данных и авторизацию.
(что опять-же делает вызов SqlServer бессмысленным) в общем в скрипте ненужный зоопарк где намешано всего..
...
Рейтинг: 0 / 0
Azure и замена сиквел агенту.
    #39827900
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не то скопировал, точнее этот линк http://docs.microsoft.com/en-us/sql/powershell/download-sql-server-ps-module
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Azure и замена сиквел агенту.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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