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