Tag: azure sql database

Azure Mobile App使用现有数据库

我是第一次尝试使用Azure移动应用程序,我应该将其连接到现有的已填充的SQL Azure数据库。 据我所知,必须在表中添加Version , CreatedAt , UpdatedAt和Deleted列,最重要的是必须将id列设置为identity。 问题是在某些表上我已经有了一个标识列(例如ItemID ),如果不破坏连接到数据的现有第三方应用程序,我就无法重命名。 问题是:有没有办法避免使用身份标识字段,也许是某种方式映射原始身份? [编辑]我已经看过网上的样本了,就像那样: https://blogs.msdn.microsoft.com/azuremobile/2014/05/22/tables-with-integer-keys-and-the-net-backend/ 但是移动服务和移动应用程序之间似乎存在一些差异,如果有人指出我正确的方向,我真的很高兴,也许有一个可用的例子

SQL Azure自动地理复制是否会自动进行故障转移?

我们在SQL Azure(Premium)中有一个地理复制数据库,并且想知道我们是否指向作为主数据的中南美洲数据库,如果发生故障,我们必须手动更改代码中的连接字符串(C#。 Net / Entity Framework 6)指向北美的新数据库? 我们正在寻找一种方法来拥有一个连接字符串,然后Azure执行覆盖,现在指向新数据库,如果主服务器出现故障。 那可能吗? 关于方法的更新: 所以我读到这一点,当一个区域关闭并将主数据库更改为另一个正在运行的复制数据库时,我们必须手动进入生产系统上的web.config文件。 我决定只在Web配置中对东,西,南区域进行硬编码,然后编写代码重试并在无法到达主要区域的情况下故障转移到其他区域。 这意味着它只能读取,不能写入Microsoft,或者我们手动将主站故障转移到只读活动从站。 对我来说不是最好的体验。 需要人工干预知道它已经关闭,然后翻转它和自定义代码

多租户:每个租户的单个数据库

我们正在开发一个多租户应用程序。 在架构方面,我们为业务逻辑设计了共享中间层,为每个租户设计了一个数据持久性数据库。 如果说,业务层将与每个租户的数据库服务器建立连接集(连接池)。 这意味着应用程序为每个租户维护单独的连接池。 如果我们期望大约5000个租户,那么此解决方案需要高资源利用率(每个租户的应用服务器和数据库服务器之间的连接),这会导致性能问题。 我们通过保持公共连接池来解决这个问题。 为了在不同的数据库中维护单个连接池,我们创建了一个名为“App-master”的新数据库。 现在,我们始终首先连接到“App-master”数据库,然后将数据库更改为特定于租户的数据库。 这解决了我们的连接池问题。 此解决方案与内部部署数据库服务器完美配合。 但它不适用于Azure Sql,因为它不支持更改数据库。 提前感谢建议如何维护连接池或更好的方法/最佳实践来处理此类多租户方案。

Azure SQL数据库连接问题 – 连接太多?

我有一个网站,这是我最近推出的白色标签(同一网站的多个版本)。 目前还没有大量的流量 – 主要是机器人,但每天可能有800个用户。 除了位于非azure服务器上的管理面板之外,它还在Azure上托管Azure数据库。 两个站点都连接到同一个Azure数据库。 还有一些工作人员角色正在运行以处理数据 – 99%的时间他们没有做任何事情,但他们会定期检查。 我总是经历随机错误,持续几秒钟,然后再次确定,例如: 从服务器接收结果时发生传输级错误。 (提供程序:TCP提供程序,错误:0 – 远程主机强制关闭现有连接。) 然而,今天早上,我们遇到了一个更严重的问题。 它始于: System.ComponentModel.Win32Exception:远程主机强制关闭现有连接 这是在机器人(Google,百度,AhrefsBot和Wiseguys.nl)为该网站编制索引时发生的。 我从这些中得到了一个或多个错误。 然后我得到了: System.Data.SqlClient.SqlException:服务在处理您的请求时遇到错误。 请再试一次。 错误代码40143.当前命令发生严重错误。 结果(如果有的话)应该被丢弃。 这是在ExecuteReader阶段。 10分钟后,真正的问题来了 – 这意味着没有人可以登录到管理界面,但是当我测试它时,Azure托管网站似乎没问题,尽管机器人仍然会出现错误。 问题是: System.ComponentModel.Win32Exception:等待操作超时 这继续随机连接工作大约一个小时。 然后我遇到了另一个问题: System.Data.SqlClient.SqlException:资源ID:1。数据库的请求限制为180且已达到。 有关帮助,请参阅“ http://go.microsoft.com/fwlink/?LinkId=267637 ”。 这发生在最后一小时的开关 – 主要是工人角色。 然后我试图找出占用所有这些请求的内容,我找到了这个命令: SELECT * FROM sys.dm_exec_requests 当我一遍又一遍地运行它时,它只返回了1或2个请求。 所以我的问题是:1)是否有其他人经常相对定期(一次,可能一天两次)与Azure上托管的服务器暂时断开连接? 2)上述事件列表是否表明存在特定问题? 当许多管理员一次登录时,可能都会发生这种情况。 3)当我收到180限制消息时,如何更好地调试对数据库的请求数? 提前致谢。

在SQL Azure上调用exec sp并使用EF6抛出时,存储过程正常工作

我有这个存储过程 CREATE PROCEDURE [dbo].[sp_RebuildIndexes] AS BEGIN DECLARE @TableName varchar(255) DECLARE TableCursor CURSOR FOR (SELECT ‘[‘ + IST.TABLE_SCHEMA + ‘].[‘ + IST.table_name + ‘]’ AS [TableName] FROM INFORMATION_SCHEMA.TABLES IST WHERE IST.TABLE_TYPE = ‘BASE TABLE’) OPEN TableCursor FETCH NEXT FROM TableCursor INTO @TableName WHILE @@fetch_status = 0 BEGIN PRINT (‘Rebuilding Indexes on ‘ + @TableName) BEGIN TRY […]

SqlCommandBuilder()为基础表而不是视图创建插入/更新

我有两个模式,像这样: 模式’数据’ – >保存表,没有人可以从外部访问它们 Schema’ui’ – >包含可从外部访问的视图; 我们的想法是您可以在这些视图上选择/删除/更新/插入。 因此,我正在进行所有权链接。 例如: create table data.tblTest (TestKey int not null primary key); create view ui.vwTest as select * from data.tblTest; 现在,如果我以SQL Studio身份连接用户,一切正常: select * from ui.vwTest; — WORKS (this is correct) select * from data.tblTest; — ERROR (this is correct) insert into ui.vwTest (TestKey) values (17); — WORKS […]

在windows azure中使用Redis实现进程外缓存

我一直在开发一个网页,显示我在我的azure云中的数据库中的表格。 为了直接减少对DB的调用以提高性能,我想为页面构建一个缓存。 目前,我持有内存缓存(进程内)以读取表。 现在我想创建一个进程外缓存,应该在写入时进行更新,这意味着插入或更新(因为在更新或添加值之后,内存缓存将不再有效)。 我被推荐在Redis上,特别是Book Sleeve,我的问题是我可以找到一些代码示例,以帮助我弄清楚如何开始构建进程外缓存并将其组合到我当前的项目中。 提前致谢

批量插入在Azure SQL Server中无法正常工作

我无法使用C#webapi将大量数据插入Azure SQL Server数据库 考虑 我想在SQL中插入60K>数据。 在我的本地SQL服务器中没有问题,但在Azure SQL中它的连接超时 我的方法:(所有都在本地sql server中工作,但不在Azure sql server中) 1)尝试使用EF逐个插入记录(10000次约10分钟,大部分超时) 2)尝试使用批量插入扩展和EF 3)在SqlBulkCopy中尝试 4)尝试增加连接字符串中的连接超时 5)尝试在Dbcontext中增加命令时间。 exceptionStackTrace Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding. System.Data.SqlClient.SqlException (0x80131904): Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is […]