标签: azure-sql-database

为什么Microsoft不支持与SQL Azure的OLE DB连接?

MSDN网站上,它说:" 不支持使用OLE DB连接到SQL Azure. "

在网络上还有其他地方人们报告说,在调整连接字符串中的服务器名称后,它可以正常工作,例如此处此处.甚至SQL Server的Analysis Services也使用OLE DB连接到SQL Azure!

我在Delphi中开发了一个本机/非托管应用程序,它通过SQL Server的OLE DB提供程序使用ADO连接到SQL Server.我正在考虑添加SQL Azure支持.如果我可以重用我的大部分代码而不需要太多改变,那将非常有用.否则我可能不会考虑这个方向.

如果微软更清楚"不支持OLE DB"的原因,将会很有帮助.如果在使用OLE DB时存在某些限制,它们是什么?也许我可以解决它们,或者它可能不会影响我.

Microsoft还提到支持ODBC.那么我可以使用"OLE DB提供程序到ODBC"并以这种方式连接?或者是包含OLE DB"不支持"的任何组合?

delphi oledb ado azure azure-sql-database

10
推荐指数
1
解决办法
5147
查看次数

SQL Azure复制

有谁知道SQL Azure是否支持合并复制?我目前正在使用SQL 2008 R2的Web版本,它不支持复制的发布方面,我需要一个不花费7000美元的解决方案.

azure merge-replication azure-sql-database

10
推荐指数
1
解决办法
1万
查看次数

Azure Blob存储的事务访问

我想将文件存储在Azure Blob存储中.到现在为止还挺好.我还想存储关于该文件的附加元数据; 为此,我使用Azure SQL数据库(因此我可以轻松查询blob存储上的文件).

因此,当我向商店添加新文件时,我想确保blob以及元数据已成功编写.因此,我想到了使用类似事务上下文的东西.

有没有办法,使用blob存储和sql存储创建这样的事务上下文?

azure-storage-blobs azure-sql-database

10
推荐指数
2
解决办法
2318
查看次数

SQL Azure - 一个会话锁定整个数据库以进行更新和插入

SQL Azure问题.

我的问题在我们的(asp.net)网站上显示为以下异常:

超时已过期.操作完成之前经过的超时时间或服务器没有响应.该语句已终止.

它还导致更新和插入语句永远不会在SMSS中完成.查询时不存在任何X或IX锁:sys.dm_tran_locks查询时没有事务sys.dm_tran_active_transactionssys.dm_tran_database_transactions.

问题出现在数据库中的每个表中,但同一实例上的其他数据库不会导致问题.问题的持续时间可以是2分钟到2小时,并且不会在一天中的任何特定时间发生.

数据库未满.

有一次这个问题没有自行解决,但我能够通过查询sys.dm_exec_connections找到运行时间最长的会话,然后杀死它来解决问题.奇怪的是,连接是15分钟,但锁定问题已经存在超过3个小时.

还有什么我可以检查的吗?

编辑

按照保罗的回答如下.在他回答之前,我实际上已经找到了问题.我会在下面发布我用来解决这个问题的步骤,以防他们帮助其他人.

当存在"超时期限"时,运行以下查询.

select *  from sys.dm_exec_requests
Run Code Online (Sandbox Code Playgroud)

请求统计

我们可以看到,所有WAIT请求都在等待会话1021,即复制请求!该TM Request指示DTC事务,我们不使用分布式事务.您还可以看到wait_type SE_REPL_COMMIT_ACK再次暗示复制.

select * from  sys.dm_tran_locks
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

再次等待1021会话

SELECT * FROM sys.dm_db_wait_stats ORDER BY wait_time_ms desc
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

是的,SE_REPL_CATCHUP_THROTTLE总等待时间为8094034毫秒,即134.9分钟!

有关此问题的详细信息,请参阅以下论坛. http://social.technet.microsoft.com/Forums/en-US/ssdsgetstarted/thread/c3003a28-8beb-4860-85b2-03cf6d0312a8

我在与微软的沟通中得到了以下答案(我们已经在欧盟数据中心的15个数据库中看到了这个问题):

问题:在过去三周内,即自我的问题开始以来,这些软限制限制是否有变化?

答:不,没有.

问题:我们有什么方法可以阻止或警告我们接近极限?

答:不会.问题可能不是由您的应用程序引起的,但可能是由依赖相同物理硬件的其他租户引起的.换句话说,您的应用程序可以承受很小的负载并仍然遇到问题.换句话说,您自己的流量可能是导致此问题的原因,但也可能是由依赖于相同物理硬件的其他租户造成的.事先没有办法知道这个问题很快就会发生 - 它可以在没有任何警告的情况下随时发生.SQL Azure操作团队不会监视此类错误,因此他们不会自动尝试为您解决问题.因此,如果你碰到它,你有两个选择:

  1. 创建数据库的副本并使用它,并希望将数据库放置在负载较小的另一台服务器上.

  2. 联系Windows Azure支持并告知有关问题的信息,并让他们为您执行选项1

sql sql-server azure-sql-database

10
推荐指数
1
解决办法
7050
查看次数

VS2013中的"服务器资源管理器">"Windows Azure">"SQL数据库"不显示任何数据库

根据:http://blogs.msdn.com/b/visualstudio/archive/2013/10/23/windows-azure-sdk-2-2-release.aspx

SQL数据库节点是Windows Azure服务器资源管理器的受欢迎的附加功能.现在,您可以在不知道数据库的虚拟机或连接字符串的情况下浏览SQL Azure数据库.我们自动配置防火墙,以便您可以从开发人员工作站访问数据库.您还可以在SQL对象资源管理器中打开SQL Azure数据库,以获得完整的数据库管理体验.

服务器资源管理器中显示的Windows Azure中的SQL数据库

但是,我在Windows Azure管理门户中添加了一个SQL数据库,但它没有出现在服务器资源管理器中,SQL数据库分支完全为空.我还有一个网站,它确实显示在服务器资源管理器中.

有什么想法是什么问题?

我已经尝试刷新并重新启动Visual Studio,然后注销并重新登录.

我认为这可能是无法连接到Windows Azure数据库(即使MSDN文档说防火墙是自动配置的).但是,我可以通过端口1433连接SQL Server Management Studio.

我当然可以打开SQL Server对象资源管理器并执行添加SQL Server并在其中添加连接字符串,并以相同的方式浏览表格等,但我只是觉得它们应该在Windows Azure下自动显示.

azure visual-studio-2013 azure-sql-database

10
推荐指数
1
解决办法
9575
查看次数

"信号量超时期限已过期"SQL Azure

我正在运行一个带有使用Entity Framework 6访问的SQL Azure数据库的.Net MVC Azure网站.间歇性地(大约一千个请求中有一个),我收到错误"System.ComponentModel.Win32Exception:信号量超时期限已过期"

System.Data.SqlClient.SqlException:从服务器接收结果时发生传输级错误.(提供程序:TCP提供程序,错误:0 - 信号量超时期限已过期.)---> System.ComponentModel.Win32Exception:信号量超时期限已过期

似乎没有理由在错误之前和之后以及它们与SQL Azure的交互都很好.有没有办法处理或解决这个问题.

asp.net-mvc entity-framework azure azure-sql-database

10
推荐指数
2
解决办法
1万
查看次数

如何手动删除SQL Azure数据同步对象

放弃SQL Azure Data Sync以在两个SQL Azure数据库之间同步数据,如何删除所有与DataSync相关的对象(表,触发器等)?

例如:

DataSync.<table>_dss_tracking
DataSync.schema_info_dss
DataSync.scope_config_dss
DataSync.scope_info_dss
Run Code Online (Sandbox Code Playgroud)

和所有其他对象?是否有可以运行的脚本?

sql t-sql azure-sql-database

10
推荐指数
2
解决办法
3593
查看次数

SQL Azure地理复制用于非冗余目的

我只是在研究如何在Azure上构建一个大规模,全局可访问的应用程序.

那里已经有很多技术可以让你的应用程序尽可能贴近消费者.

  • 用于静态内容的CDN边缘服务器在全球共享.
  • 不同地区的云服务,使用流量管理器将域名路由到最近的应用程序主机.

我有点困惑的是数据库.如果您使用的是SQL Azure,则必须指定一个区域来放置它.如果我的SQL Azure实例位于西欧(阿姆斯特丹),但我的客户位于澳大利亚,并通过澳大利亚(NSW)的实例访问该应用程序,应用程序与数据库通信之间会有一些延迟.

我见过的有关Geo Replication的所有参考资料似乎都在主从冗余设置的上下文中.但是我想知道是否可以使用Master-Master设置,其中每个应用程序实例在同一个Geo-Region中与它自己的SQL Azure主实例进行对话,然后sql azure会处理它们之间的双向复制.

sql sql-server azure geo-replication azure-sql-database

10
推荐指数
1
解决办法
3063
查看次数

如何使用Azure自动化运行存储过程?

我真的是Azure平台的新手,也许这是一个愚蠢的问题,但我找不到有关这个主题的信息.我真的需要帮助.我正在为大学项目部署Web服务使用的数据库.在这个数据库中,我有一个存储过程,需要每天运行它.

发现使用Azure自动化,您可以编程或安排此类操作.我"安装"了该服务,我正在尝试创建"Runbook",但不知道如何在这里编写代码或代码,因为我从未使用过PowerShell.

任何帮助将不胜感激.提前致谢!

编辑1:

所以我正在尝试使用这段代码来制作魔法:

 workflow WORKFLOW_NAME
{ 
    param( 

    ) 


    inlinescript { 
        # Define the connection to the SQL Database 
        $Conn = New-Object System.Data.SqlClient.SqlConnection("Data Source=SERVER_NAME.database.windows.net;Initial Catalog=DATABASE_NAME;Integrated Security=False;User ID=USERNAME;Password=PASSWORD;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False") 

        # Open the SQL connection 
        $Conn.Open() 

        # Define the SQL command to run. 
        $Cmd=new-object system.Data.SqlClient.SqlCommand("exec PROCEDURE_NAME", $Conn) 
        $Cmd.CommandTimeout=120 

        # Execute the SQL command 
        $Da=New-Object system.Data.SqlClient.SqlDataAdapter($Cmd) 

        # Close the SQL connection 
        $Conn.Close() 
    } 
}
Run Code Online (Sandbox Code Playgroud)

问题在于,当我保存RunBook并发布它时,它表示没有错误.当我运行RunBook时,它启动并完成发送没有错误或异常,所以你可以期望它能正常工作吗?但是在咨询数据库时,程序中没有修改过程.这可能是什么错误?我究竟做错了什么?

我从https://gallery.technet.microsoft.com/scriptcenter/How-to-use-a-SQL-Command-be77f9d2#content中获取了参考代码,对其进行了个性化并摆脱了"param",因为RunBook何时开始,从未要求任何输入参数,所以我决定使用完整的连接字符串.我使用与我的c#项目相同的连接字符串,它连接并完美地工作.

我正在使用"新"天蓝色界面,不知道这在这方面是否具有任何重要性.

再次感谢您提供的任何帮助.

powershell automation azure azure-automation azure-sql-database

10
推荐指数
1
解决办法
7950
查看次数

如何在Microsoft Azure中检查/查看SQL DB中的数据

我在azure中有一个web应用程序,允许用户输入一些数据.我想将它们保存在我在azure中创建的sql db中.有没有办法检查/查看输入的数据.我指的是像"mysql workbench for mysql"之类的东西

azure sqldb azure-sql-database

10
推荐指数
3
解决办法
1万
查看次数