gpt4 book ai didi

cmd - CMD 中的 ISDeploymentWizard.exe 命令(SSIS 部署)不打印任何状态指示

转载 作者:行者123 更新时间:2023-12-03 23:39:12 25 4
gpt4 key购买 nike

我在 CMD 中运行以下命令为 SSIS :

ISDeploymentWizard.exe /Silent /ModelType:Project /SourcePath:"C:\TEST\Integration Services.ispac" /DestinationServer:"TEST03,1111" /DestinationPath:"/TEST/DEVOPS"
它成功完成,但没有对命令行的指示。我只能通过 SSMS 查询以确保它确实已部署。知道为什么吗?

最佳答案

@areilma 这里的可靠观察 -/silent 选项消除了所有状态信息。我一直认为该标志控制是否显示 gui。
如果我运行这个命令

isdeploymentwizard.exe /Silent /ModelType:Project /SourcePath:".\SO_66497856.ispac" /DestinationServer:".\dev2017" /DestinationPath:"/SSISDB/BatchSizeTester/SO_66497856"
我的包部署到我本地机器上指定的路径。删除/silent 选项会导致 GUI 以预先填充的值打开。
isdeploymentwizard.exe  /ModelType:Project /SourcePath:".\SO_66497856.ispac" /DestinationServer:".\dev2017" /DestinationPath:"/SSISDB/BatchSizeTester/SO_66497856"
当前一个命令运行时,命令提示符不会打印任何内容。所以这是愉快的路径部署,也许如果出现“错误”,我会在命令行上收到一条错误消息。这就是事情变得“有趣”的地方。
我将目标路径更改为不存在的文件夹。我知道如果路径不存在,该工具不会创建路径,并且当我运行它时,我没有在命令行上收到错误消息。我得到的是一个弹出窗口错误

TITLE: SQL Server Integration Services


The path does not exist. The folder 'cBatchSizeTester' was not found in catalog 'SSISDB'. (Microsoft.SqlServer.IntegrationServices.Wizard.Common)


BUTTONS:


OK


所以/silent 选项删除了 gui 以允许我们进行自动部署,但是如果传递了错误的值,我们将返回一个 gui ......然后我重复了一个错误的服务器名称,这导致了第二次观察。当我按下回车键时,命令行返回为下一个命令做好准备。然而 15 秒后,

TITLE: SQL Server Integration Services


Failed to connect to server .\dev2017a. (Microsoft.SqlServer.ConnectionInfo)


ADDITIONAL INFORMATION:


A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) (Microsoft SQL Server, Error: -1)


For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-1&LinkId=20476


现在,这告诉我实际部署是一个独立的衍生过程。因此,无论如何它都不会将任何数据返回到命令行。
既然我认为我们是从 CI/CD 的角度看待这个问题,我们能做什么?我们可以发射 sqlcmd之后在 SSISDB 目录 View 中查找条目以查看发生了什么。像这样的东西
SELECT TOP 1 O.end_time, SV.StatusValue, F.name AS FolderName, P.name AS ProjectName FROM catalog.operations AS O 
CROSS APPLY
(
SELECT
CASE O.status
WHEN 1 THEN 'Created'
WHEN 2 THEN 'Running'
WHEN 3 THEN 'Canceled'
WHEN 4 THEN 'Failed'
WHEN 5 THEN 'Pending'
WHEN 6 THEN 'Ended unexpectedly'
WHEN 7 THEN 'Succeeded'
WHEN 8 THEN 'Stopping'
WHEN 9 THEN 'Completed'
END AS StatusValue
)SV
INNER JOIN catalog.object_versions AS OV ON OV.object_id = O.object_id
INNER JOIN catalog.projects AS P ON P.object_version_lsn = OV.object_version_lsn
INNER JOIN catalog.folders AS F ON F.folder_id = P.folder_id
/*
INNER JOIN
catalog.packages AS PKG
ON PKG.project_id = P.project_id
*/
WHERE O.operation_type = 101 /*deploy project*/
AND P.name = 'SO_66497856' /*project name*/
AND F.name = 'BatchSizeTester'
ORDER BY o.created_time DESC
也许对过去 10 秒内的 end_time 进行过滤是合适的,如果我们有结果并且状态为成功,我们就得到了部署。没有结果意味着它失败了。我认为 gui 运行时会发生类似的事情,尽管进行了所有这些测试,但我对启动跟踪以完全完成此答案并查看幕后发生的事情不感兴趣。
如果您想否定预构建工具的值(value),另一种选择是使用 ManagedObjectModel/PowerShell 方法进行部署,因为您可以从那里获取信息。另一个部署选项是使​​用 TSQL 命令。我的文档部分中的第二个链接概述了它的样子
我能找到的微不足道的文档
我找不到有关 isdeploymentwizard.exe 的命令行开关的文档
  • Deploy an SSIS project from the command prompt with ISDeploymentWizard.exe
  • Deploy Integration Services (SSIS) Projects and Packages
  • 从@arielma 删除的答案中,他们找到了一个更简洁的答案,上面写着“not possible
  • 关于cmd - CMD 中的 ISDeploymentWizard.exe 命令(SSIS 部署)不打印任何状态指示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67044181/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com