我们可以从RDS实例运行sqlcmd吗?

时间:2016-01-26 00:06:15

标签: batch-file amazon-web-services amazon-ec2 amazon-rds

我们有一个.NET应用程序的EC2实例和一个SQL Server Express的RDS实例。由于Express不支持Sql代理作业,我们需要使用sqlcmd并将其作为批处理进行安排。可以在RDS实例中设置批处理文件,如果是,如何设置?如果没有,是否有其他免费替代方案而没有在EC2中设置SQL服务器?

4 个答案:

答案 0 :(得分:2)

你实际上不能RDP进入RDS实例:

来自Microsoft SQL Server on Amazon RDS

  

为了提供托管服务体验,Amazon RDS没有   提供对数据库实例的shell访问

因此,您无法直接在实例上运行sqlcmd。同样,对于批处理文件,它们无法安装在RDS实例上。

正如@vmachan建议的那样,您需要在单独的实例上安装客户端工具才能访问命令行功能。

答案 1 :(得分:1)

我认为你可能必须使用来自EC2实例的一些PowerShell命令来针对RDS实例使用.Net app ..

下面的示例命令

C:\Users\Administrator> Invoke-Sqlcmd –ServerInstance -Database EduData –Query “SELECT id, name, value, testscore FROM TestScores” –Username -Password

注意:我认为您需要在.Net应用EC2实例上安装SQL客户端软件才能执行此操作。

现在,您可以在EC2实例上创建批处理作业。

希望这有帮助

答案 2 :(得分:1)

您可以使用以下命令。它对我有用。

  

" c:\ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \ SQLCMD.EXE" -S   " xxxxxxxxx.us-east-1.rds.amazonaws.com" -d database -U user_id -P   密码-i" path \ SqlQueryName.sql"

或没有数据库名称

  

" c:\ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \ SQLCMD.EXE" -S   " xxxxxxxxx.us-east-1.rds.amazonaws.com" -U user_id -P密码-i   "路径\ SqlQueryName.sql"

答案 3 :(得分:0)

您不能从RDS实例调用CMD文件。与Prem sql服务器上的cmd可以从sql服务器代理作业中调用的方法不同,在RDS中是不可能的。我的任务是在SQL Server代理作业中停止DMS任务,然后使用备份对数据库进行全新还原。停止DMS的此任务希望将其包含在sql agent作业中,尝试了很多,而我看到的唯一解决方案是将此DMS任务放在sql agent作业之外的批处理文件中,然后先运行它,然后再运行sql agent作业来执行恢复。任何其他有用的提示或解决方案将不胜感激!谢谢!注意:它是RDS,而不是EC2上的sql。