[英]Database copy limit per database reached. The database X cannot have more than 10 concurrent database copies (Azure SQL)
在我們的應用程序中,我們有一個主數據庫“ X”。 對於每個新客戶,我們將創建主數據庫“ X”的新數據庫副本。
我正在使用下面的SQL命令,該命令將針對Azure SQL服務器執行。
CREATE DATABASE [NEW NAME] AS COPY OF [MASTER DB]
我們正在使用自定義隊列層,以便一次可以並行創建多個客戶端。
我在以下情況下面臨問題。
我正在嘗試創建70個客戶。 一旦創建了25個客戶端,我就會遇到以下錯誤。
Database copy limit per database reached. The database 'BlankDBClient' cannot have more than 10 concurrent database copies
能否請您分享一下您的想法?
SQL Azure具有為您在線/自動執行各種操作(備份,升級等)的邏輯。 每個副本都需要IO,因此存在限制,因為計算機沒有無限iops。 (隨着我們努力改善服務,獲取更新的硬件等,這些限制可能會隨着時間的推移而有所變化。)
就您有什么選擇而言,您可以:
除了Connor答案外,您還可以考慮在Azure存儲上存儲該主數據庫的dacpac或bacpac,一旦提交了25個並發數據庫副本,就可以開始從Azure Storage還原dacpac。
您還可以監視以下查詢的state_desc列上正在顯示COPYING的數據庫副本的數量,這些副本在發送第一批25個副本之后,並且當這些查詢返回的行數少於25行時,開始發送更多副本,直到達到25個限制。 繼續執行此操作,直到完成所需的副本隊列為止。
Select
[sys].[databases].[name],
[sys].[databases].[state_desc],
[sys].[dm_database_copies].[start_date],
[sys].[dm_database_copies].[modify_date],
[sys].[dm_database_copies].[percent_complete],
[sys].[dm_database_copies].[error_code],
[sys].[dm_database_copies].[error_desc],
[sys].[dm_database_copies].[error_severity],
[sys].[dm_database_copies].[error_state]
From
[sys].[databases]
Left
Outer
Join
[sys].[dm_database_copies]
On
[sys].[databases].[database_id] = [sys].[dm_database_copies].[database_id]
Where
[sys].[databases].[state_desc] = 'COPYING'
SELECT state_desc, *
FROM sys.databases
WHERE [state_desc] = 'COPYING'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.