我正在运行一个基于 Azure 的站点,由于历史原因,该站点在两台服务器上使用两个数据库。我已从静态数据源复制数据,以便两者驻留在同一服务器上。我相当确定我已从实时代码中删除了对旧服务器的所有引用,并且 Azure 仪表板确实显示上个月没有连接。但为了百分百确定,在删除服务器之前,我想停止它并测试实时站点。如果出现任何问题,我想重新开始。在 SQL Server Management Studio 中,这通常很简单,我可以右键单击 SQL Server Management Studio 对象资源管理器中的服务器,然后选择“停止”,然后根据需要选择“启动”。但是,“停止”和“启动”未列在 SQL Azure 服务器的选项中,我在 Azure 门户的管理页面中也看不到任何内容。
所以我的问题很简单 - 如何停止和启动 SQL Azure 数据库?
我们遇到了 Sql Azure 数据库问题,并且非常确定它出现在服务器/服务中。我们找不到停止和启动按钮,但找到了解决方法:
将数据库扩展到另一层,然后再缩小!
它解决了我们的数据库问题。
每个人都说你不需要停止/启动按钮......但有时理论与实践不同。即使 Azure 也有问题:)
正如 Praggie 提到的,您无法停止/启动 SQL Azure 服务器。 SQL Azure 数据库驻留在共享主机上。该服务器上还有其他租户。您可以访问数据库,但不能访问相应的托管服务器。
您可以重命名数据库,如果有任何应用程序连接到它,那么它们就会失败。
您可以简单地屏蔽IP(删除所有防火墙规则,这样就没有人可以连接)
快速而肮脏的重命名效果非常好。需要管理员权限!
USE master;
GO
ALTER DATABASE MyDatabaseIsAvailable
Modify Name = MyDatabaseIsNoMoreAvailable;
GO
完成后做相反的事情。好处是,当同一服务器上有多个数据库时,您可以“停止”单个数据库
如果这有帮助:在我的情况下,数据库被锁定。我无法更改表、架构或其他任何内容。
我发现处理这种情况的方法是强制只读和立即回滚读写。
ALTER DATABASE [MyDB]
SET READ_ONLY
WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [MyDB]
SET READ_WRITE
WITH ROLLBACK IMMEDIATE;
警告,“重新启动 sql server 数据库 azure”的 top google 结果提供了在运行时重新启动的选项之一
DBCC STACKDUMP('Manual Failover – Reason: something')
。
运行这肯定会导致发生一些事情,但在我们的例子中,5 分钟后 DTU 仍然没有注册,并且门户无法提取有关数据库大小的信息。
等待 10 分钟后,我们最终更改了层级,大约 18 分钟后,层级更改完成,数据库再次可访问。
我知道这是一个旧线程,但这可能对将来的某人有用。 我们遇到了一个问题,我们的 SQL Azure 数据库运行速度非常慢,每个查询需要 25 秒或更长时间(通常只有几毫秒)。微软告诉我们运行以下命令,这立即解决了问题。
DBCC STACKDUMP('故障转移')
在这种情况下,问题出在只读副本上,因此我们需要在连接字符串中使用 ApplicationIntent=ReadOnly 进行连接时运行此命令,以便只读副本发生故障转移。
当时运行的 SQL 命令出错,但故障转移是即时的,因此没有人注意到任何停机时间。