Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği ile ilgili bağlantı sorunlarını ve diğer hataları giderme

Şunlar için geçerlidir: Azure SQL Veritabanı Azure SQL Yönetilen Örneği

Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği bağlantısı başarısız olduğunda hata iletileri alırsınız. Bu bağlantı sorunları yeniden yapılandırma, güvenlik duvarı ayarları, bağlantı zaman aşımı, yanlış oturum açma bilgileri veya uygulama tasarım işlemi sırasında en iyi yöntemlerin ve tasarım yönergelerinin uygulanamamasından kaynaklanabilir. Ayrıca, bazı Azure SQL Veritabanı veya SQL Yönetilen Örneği kaynaklarında üst sınıra ulaşılırsa, artık bağlanasınız.

Not

Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analytics ortamlarında çok çeşitli bağlantı hatalarını algılamak ve düzeltmek için Azure SQL Bağlantı Denetleyicisi'ni kullanabilirsiniz.

Geçici hata hata iletileri (40197, 40613 ve diğerleri)

Azure altyapısının SQL Veritabanı hizmetinde ağır iş yükleri ortaya çıktığında sunucuları dinamik olarak yeniden yapılandırabilme özelliği vardır. Bu dinamik davranış, istemci programınızın veritabanı veya örnekle bağlantısını kaybetmesine neden olabilir. Bu tür bir hata koşulu geçici hata olarak adlandırılır. Veritabanı yeniden yapılandırma olayları, planlı bir olay (örneğin, yazılım yükseltmesi) veya planlanmamış bir olay (örneğin, işlem kilitlenmesi veya yük dengeleme) nedeniyle oluşur. Yeniden yapılandırma olaylarının çoğu genellikle kısa sürelidir ve en fazla 60 saniyeden kısa sürede tamamlanmalıdır. Ancak, büyük bir işlemin uzun süre çalışan bir kurtarma işlemine neden olması gibi bu olayların tamamlanması zaman zaman daha uzun sürebilir. Aşağıdaki tabloda, uygulamaların Azure SQL Veritabanına bağlanırken alabileceği çeşitli geçici hatalar listelenmiştir.

Geçici hata hata kodlarının listesi

Hata kodu Önem Derecesi Açıklama
926 14 'replicatedmaster' veritabanı açılamıyor. Kurtarma tarafından ŞÜPHELI olarak işaretlendi. Daha fazla bilgi için bkz. SQL Server hata günlüğü.

Bu hata, eski birincil günlük kapatılırken, yeniden yapılandırmanın son aşamasında kısa bir süre için SQL Yönetilen Örneği hata günlüğünde günlüğe kaydedilebilir.
Bu hata iletisini içeren diğer geçici olmayan senaryolar MSSQL Hataları belgelerinde açıklanmıştır.
4060 16 Oturum açma tarafından istenen "%.*ls" veritabanı açılamıyor. Oturum açılamadı. Daha fazla bilgi için bkz . 4000 - 4999 hataları
40197 17 Hizmet isteğinizi işlerken bir hatayla karşılaştı. Lütfen tekrar deneyin. Hata kodu %d.

Yazılım veya donanım yükseltmeleri, donanım hataları veya diğer yük devretme sorunları nedeniyle hizmet kapalı olduğunda bu hatayı alırsınız. Hata 40197 iletisine eklenen hata kodu (%d), oluşan hata veya yük devretme türü hakkında ek bilgi sağlar. Hata kodlarının bazı örnekleri 40197 hata iletisine eklenir: 40020, 40143, 40166 ve 40540.

Yeniden bağlanmak sizi otomatik olarak veritabanınızın iyi durumdaki bir kopyasına bağlar. Uygulamanız 40197 hatasını yakalamalı, sorun giderme için ekli hata kodunu (%d) iletinin içine kaydetmeli ve kaynaklar kullanılabilir duruma gelene ve bağlantınız yeniden kurulana kadar SQL Veritabanı yeniden bağlanmayı denemelidir. Daha fazla bilgi için bkz. Geçici hatalar.
40501 20 Hizmet şu an meşgul. İsteği 10 saniye sonra yeniden deneyin. Olay kimliği: %ls. Kod: %d. Daha fazla bilgi için bkz.
Mantıksal SQL server kaynak sınırları
Tek veritabanları için DTU tabanlı sınırlar
Elastik havuzlar için DTU tabanlı sınırlar
Tek veritabanları için sanal çekirdek tabanlı sınırlar
Elastik havuzlar için sanal çekirdek tabanlı sınırlar
kaynak sınırlarını Azure SQL Yönetilen Örneği.
40613 17 '%.*ls' sunucusundaki '%.*ls' veritabanı şu anda kullanılamıyor. Lütfen bağlantıyı daha sonra yeniden deneyin. Sorun devam ederse müşteri desteğine başvurun ve '%.*ls' oturum izleme kimliğini sağlayın.

Bu hata, veritabanında önceden oluşturulmuş bir ayrılmış yönetici bağlantısı (DAC) varsa oluşabilir. Daha fazla bilgi için bkz. Geçici hatalar.
49918 16 İsteği işlenemiyor. İsteği işlemek için kaynaklar yeterli değil.

Hizmet şu an meşgul. Lütfen isteği daha sonra yeniden deneyin. Daha fazla bilgi için bkz.
Mantıksal SQL server kaynak sınırları
Tek veritabanları için DTU tabanlı sınırlar
Elastik havuzlar için DTU tabanlı sınırlar
Tek veritabanları için sanal çekirdek tabanlı sınırlar
Elastik havuzlar için sanal çekirdek tabanlı sınırlar
kaynak sınırlarını Azure SQL Yönetilen Örneği.
49919 16 Oluşturma veya güncelleştirme isteği işlenemiyor. “%ld” aboneliği için devam eden çok fazla oluşturma veya güncelleştirme işlemi var.

Hizmet, aboneliğiniz veya sunucunuz için birden çok oluşturma veya güncelleştirme isteğini işlemekle meşgul. İstekler şu anda kaynak iyileştirme için engellendi. Bekleyen işlemler için sorgu sys.dm_operation_status . Bekleyen oluşturma veya güncelleştirme istekleri tamamlanana kadar bekleyin veya bekleyen isteklerinizden birini silin ve isteğinizi daha sonra yeniden deneyin. İşlemleriniz takılmış gibi görünüyorsa devam eden diğer işlemlerin tamamlanmasını bekleyin veya mümkün olduğunda iptal edin. Örneğin, oluşturulan veritabanını veya çoğaltmayı silerek veritabanı kopyasını veya coğrafi çoğaltma oluşturmayı iptal edebilirsiniz. Takılmış gibi görünen bir işlemi iptal edemiyorsanız Microsoft ile bir destek bileti açın.
49920 16 İsteği işlenemiyor. “%ld” aboneliği için devam eden çok fazla işlem var.

Hizmet, bu abonelik için birden çok isteği işlemekle meşgul. İstekler şu anda kaynak iyileştirme için engellendi. İşlem durumu için sorgu sys.dm_operation_status . Bekleyen isteklerin tamamlanmasını bekleyin veya bekleyen isteklerinizden birini silin ve isteğinizi daha sonra yeniden deneyin. İşlemleriniz takılmış gibi görünüyorsa devam eden diğer işlemlerin tamamlanmasını bekleyin veya mümkün olduğunda iptal edin. Örneğin, oluşturulan veritabanını veya çoğaltmayı silerek veritabanı kopyasını veya coğrafi çoğaltma oluşturmayı iptal edebilirsiniz. Takılmış gibi görünen bir işlemi iptal edemiyorsanız Microsoft ile bir destek bileti açın.
4221 16 'HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING' üzerinde uzun bekleme nedeniyle okuma-ikincil oturum açma başarısız oldu. Çoğaltma geri dönüştürüldüyse, sürümdeki işlemler için satır sürümleri eksik olduğundan çoğaltma oturum açma için kullanılamıyor. Sorun, birincil çoğaltmada geri alınarak veya etkin işlemler işlenerek çözülebilir. Bu koşulun oluşumları, birincilde uzun yazma işlemlerinden kaçınılarak en aza indirilebilir.
615 21 %d veritabanı kimliği bulunamadı, adı '%.*ls' . Hata Kodu 615.
Bu, bellek içi önbelleğin SQL Server örneğiyle eşitlenmediği ve aramaların eski veritabanı kimliğini alması anlamına gelir.

SQL oturum açma bilgileri, veritabanı adını kimlik eşlemesine almak için bellek içi önbellek kullanır. Önbelleğin arka uç veritabanıyla eşitlenmiş olması ve SQL Server örneğine veritabanı ekleme ve ayırma işlemi gerçekleştiğinde güncelleştirilmesi gerekir.
Ayırma iş akışı bellek içi önbelleği zamanında temizleyemediğinde ve veritabanı noktasında eski veritabanı kimliğine yapılan sonraki aramalarda bu hatayı alırsınız.

Kaynak kullanılabilir duruma gelene ve bağlantı yeniden kurulana kadar SQL Veritabanı yeniden bağlanmayı deneyin. Daha fazla bilgi için bkz. Geçici hatalar.

Geçici bağlantı sorunlarını çözme adımları

  1. Hataların uygulama tarafından bildirildiği sırada gerçekleşen bilinen kesintiler için Microsoft Azure Hizmet Panosu'na bakın.
  2. Azure SQL Veritabanı gibi bir bulut hizmetine bağlanan uygulamalar, düzenli olarak yeniden yapılandırma olayları beklemeli ve kullanıcılara uygulama hataları eklemek yerine bu hataları işlemek için yeniden deneme mantığı uygulamalıdır.
  3. Veritabanı kaynak sınırlarına yaklaştıkça geçici bir bağlantı sorunu gibi görünebilir. Bkz. Kaynak sınırları.
  4. Bağlantı sorunları devam ederse veya uygulamanızın hatayla karşılaşma süresi 60 saniyeyi aşarsa veya belirli bir günde hatanın birden çok kez oluştuğunı görürseniz, Azure Destek sitesinde Destek Al'ı seçerek Azure desteği isteği gönderin.

Yeniden Deneme Mantığını Uygulama

İstemci programınızın yeniden deneme mantığına sahip olması önerilir, böylece geçici hatanın kendisini düzeltmesi için zaman verdikten sonra bağlantıyı yeniden kurabilir. İlk yeniden denemenizden önce 5 saniye ertelemenizi öneririz. 5 saniyeden kısa bir gecikmeden sonra yeniden deneme, bulut hizmetini bunaltma riski taşır. Sonraki her yeniden deneme için gecikme üstel olarak artarak en fazla 60 saniyeye kadar uzaymalıdır.

Yeniden deneme mantığının kod örnekleri için bkz:

Uygulamanızdaki geçici hataları işleme hakkında ek bilgi için bkz. SQL Veritabanı için geçici bağlantı hatalarını giderme

ADO.NET kullanan istemciler için engelleme süresiyle ilgili bir tartışma , Bağlantı Havuzu 'nda (ADO.NET) kullanılabilir.

Uygulama sunucuya bağlanamıyorsa sorun oluşur.

Bu sorunu çözmek için Yaygın bağlantı sorunlarını düzeltme adımları bölümündeki adımları (sunulan sırayla) deneyin.

Sunucu/örnek bulunamadı veya erişilebilir değil (hata 26, 40, 10053)

Hata 26: Sunucu bulma hatası belirtildi

System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.(provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified)

Hata 40: Sunucu bağlantısı açılamadı

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Hata 10053: Sunucudan sonuçlar alınırken aktarım düzeyi hatası oluştu

10053: A transport-level error has occurred when receiving results from the server. (Provider: TCP Provider, error: 0 - An established connection was aborted by the software in your host machine)

Uygulama sunucuya bağlanamıyorsa bu sorunlar oluşur.

Bu sorunları çözmek için Yaygın bağlantı sorunlarını düzeltme adımları bölümündeki adımları (sunulan sırayla) deneyin.

Güvenlik duvarı sorunları nedeniyle sunucuya bağlanılamıyor

Hata 40615: Sunucu adına bağlanılamıyor <>

Bu sorunu çözmek için Azure portal aracılığıyla SQL Veritabanı güvenlik duvarı ayarlarını yapılandırın.

Hata 5: Sunucu adına bağlanılamıyor <>

Bu sorunu çözmek için 1433 numaralı bağlantı noktasının istemci ile internet arasındaki tüm güvenlik duvarlarında giden bağlantılar için açık olduğundan emin olun.

Sunucuda oturum açılamıyor (hatalar 18456, 40531)

'Kullanıcı adı>'< kullanıcısı için oturum açılamadı

Login failed for user '<User name>'.This session has been assigned a tracing ID of '<Tracing ID>'. Provide this tracing ID to customer support when you need assistance. (Microsoft SQL Server, Error: 18456)

Bu sorunu çözmek için hizmet yöneticinize başvurarak size geçerli bir kullanıcı adı ve parola sağlayın.

Hizmet yöneticisi genellikle oturum açma kimlik bilgilerini eklemek için aşağıdaki adımları kullanabilir:

  1. SQL Server Management Studio (SSMS) kullanarak sunucuda oturum açın.

  2. Oturum açma adının devre dışı bırakılıp bırakılmadığını denetlemek için veritabanında aşağıdaki SQL sorgusunu master çalıştırın:

    SELECT name, is_disabled FROM sys.sql_logins;
    
  3. Karşılık gelen ad devre dışıysa, aşağıdaki deyimi kullanarak etkinleştirin:

    ALTER LOGIN <User name> ENABLE;
    
  4. SQL oturum açma kullanıcı adı yoksa, yeni bir SQL oturumu oluşturmak için aşağıdaki SQL sorgusunu düzenleyin ve çalıştırın:

    CREATE LOGIN <SQL_login_name, sysname, login_name>
    WITH PASSWORD = '<password, sysname, Change_Password>';
    GO
    
  5. SSMS Nesne Gezgini Veritabanları'nda genişletin.

  6. Kullanıcıya izin vermek istediğiniz veritabanını seçin.

  7. Güvenlik'e sağ tıklayın ve ardından Yeni, Kullanıcı'yı seçin.

  8. Yer tutucularla oluşturulan betikte (aşağıda gösterilen örnek), buradaki adımları izleyerek şablon parametrelerini değiştirin ve yürütür:

    CREATE USER [<user_name, sysname, user_name>]
    FOR LOGIN [<login_name, sysname, login_name>]
    WITH DEFAULT_SCHEMA = [<default_schema, sysname, dbo>];
    GO
    
    -- Add user to the database owner role
    EXEC sp_addrolemember N'db_owner', N'<user_name, sysname, user_name>';
    GO
    

    Belirli kullanıcıları belirli veritabanı rolleriyle eşlemek için de kullanabilirsiniz sp_addrolemember .

    Not

    Azure SQL Veritabanı'nda veritabanı rolü üyeliğini yönetmek için daha yeni ALTER ROLE söz dizimini göz önünde bulundurun.

Daha fazla bilgi için bkz. Azure SQL Veritabanında veritabanlarını ve oturum açma bilgilerini yönetme.

Bağlantı zaman aşımı süresi doldu hataları

System.Data.SqlClient.SqlException (0x80131904): Bağlantı Zaman Aşımı Süresi Doldu

System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=3; handshake=29995;

System.Data.SqlClient.SqlException (0x80131904): Zaman aşımı süresi doldu

System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

System.Data.Entity.Core.EntityException: Temel alınan sağlayıcı Open'da başarısız oldu

System.Data.Entity.Core.EntityException: The underlying provider failed on Open. -> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. -> System.ComponentModel.Win32Exception: The wait operation timed out

Sunucu adına bağlanılamıyor <>

Cannot connect to <server name>.ADDITIONAL INFORMATION:Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=231; handshake=983; [Login] initialization=0; authentication=0; [Post-Login] complete=13000; (Microsoft SQL Server, Error: -2) For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-2&LinkId=20476 The wait operation timed out

Bu özel durumlar bağlantı veya sorgu sorunları nedeniyle oluşabilir. Bu hatanın bağlantı sorunlarına neden olduğunu onaylamak için bkz. Bağlantı sorunundan kaynaklanan bir hata olup olmadığını onaylama.

Uygulama sunucuya bağlanamadığından bağlantı zaman aşımları oluşur. Bu sorunu çözmek için Yaygın bağlantı sorunlarını düzeltme adımları bölümündeki adımları (sunulan sırayla) deneyin.

Ağ bağlantısı sonlandırma hataları

SQL istemci kitaplıkları Azure SQL Veritabanına bağlanır ve TCP ağ protokollerini kullanarak Azure SQL Yönetilen Örneği. İstemci kitaplığı, TCP bağlantılarını yönetmek için TCP sağlayıcısı adlı daha düşük düzeyli bir bileşen kullanır. TCP sağlayıcısı uzak bir konağın var olan bir TCP bağlantısını beklenmedik şekilde sonlandırdığını algıladığında, istemci kitaplığı bir hata oluşturur. Hata sql server hatası değil istemci hatası olduğundan sql hata numarası yoktur. Bunun yerine, hata numarası 0'dır ve TCP sağlayıcısından gelen hata iletisi kullanılır.

Ağ bağlantısı sonlandırma hatalarının örnekleri şunlardır:

A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) An existing connection was forcibly closed by the remote host

A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

The client was unable to establish a connection because of an error during connection initialization process before login. Possible causes include the following: the client tried to connect to an unsupported version of SQL Server; the server was too busy to accept new connections; or there was a resource limitation (insufficient memory or maximum allowed connections) on the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

Veritabanı veya elastik havuz geçici olarak kullanılamadığından bağlantı sonlandırma hataları oluşabilir. Bunlar, veritabanı sunucusu ile istemci uygulaması arasındaki ağ altyapısında güvenlik duvarları, ağ gereçleri vb. gibi çeşitli sorunlar nedeniyle de oluşabilir. Bu sorunlar geçici veya kalıcı olabilir. Genel bir kılavuz olarak, uygulamalar kalıcı hataları dikkate almadan önce bu hatalar için sabit sayıda yeniden deneme denemesi kullanmalıdır.

Kaynak idaresi hataları

Azure SQL Veritabanı, kaynak sınırlarını zorlamak için Resource Governor dayalı bir kaynak idaresi uygulaması kullanır. Azure SQL Veritabanı'nda kaynak yönetimi hakkında daha fazla bilgi edinin.

En yaygın kaynak idaresi hataları ilk olarak ayrıntılarla birlikte listelenir ve ardından kaynak idaresi hata iletileri tablosu görüntülenir.

Hatalar 10928 ve 10936: Kaynak Kimliği: 1. [veritabanı veya elastik havuz] için istek sınırı %d ve ulaşıldı

Veritabanı düzeyi sınırına ulaşılırsa, bu örnekteki ayrıntılı hata iletisi şu şekildedir: Resource ID : 1. The request limit for the database is %d and has been reached. See 'http://go.microsoft.com/fwlink/?LinkId=267637' for assistance.

Elastik havuz sınırına ulaşılırsa, bu örnekte ayrıntılı hata iletisi şu şekildedir: Resource ID : 1. The request limit for the elastic pool is %d and has been reached. See 'http://go.microsoft.com/fwlink/?LinkId=267637' for assistance. Elastik havuz sınırları veritabanı sınırlarından daha yüksektir. Havuzdaki birden çok veritabanı aynı anda bir kaynak (çalışan gibi) kullandığında bunlara ulaşılabilir.

Bu hata iletisi, veritabanı veya elastik havuz için çalışan sınırına ulaşıldığını gösterir. Veritabanı veya elastik havuzun hizmet hedefi için %d yer tutucusu yerine en fazla eş zamanlı çalışan değeri bulunacak.

Not

Azure SQL Veritabanı'nın ilk teklifi yalnızca tek iş parçacıklı sorguları destekledi. O sırada istek sayısı her zaman çalışan sayısına eşdeğerdi. Azure SQL Veritabanında 10928 ve 10936 hata iletileri "İstek sınırı [...] N ve geriye dönük uyumluluk amacıyla ulaşıldı" hatasıyla karşılanır. Ulaşılan sınır aslında çalışan sayısı sınırıdır. Maksimum paralellik derecesi (MAXDOP) ayarınız sıfıra eşitse veya birden büyükse, çalışan sayısı istek sayısından çok daha yüksek olabilir ve sınıra MAXDOP'nin bire eşit olduğundan çok daha erken ulaşılabilir.

Oturumlar, çalışanlar ve istekler hakkında daha fazla bilgi edinin.

Gerekirse Ayrılmış Yönetici Bağlantısı (DAC) ile bağlanma

Çalışan sınırına ulaşıldığı veya ulaşıldığı canlı bir olay devam ederse, SQL Server Management Studio (SSMS) veya Azure Data Studio kullanarak bağlanırken Hata 10928'i alabilirsiniz. Bir oturum, en fazla çalışan eşiğine ulaşıldığında bile Veritabanı Yöneticileri için Tanılama Bağlantısı'nı (DAC) kullanarak bağlanabilir.

SSMS'den DAC ile bağlantı kurmak için:

  • Menüden Dosya > Yeni Veritabanı Altyapısı Sorgusu'na > tıklayın
  • Sunucu Adı alanındaki bağlantı iletişim kutusunda girin admin:<fully_qualified_server_name> (bu, gibi admin:servername.database.windows.netolacaktır).
  • Seçenekler'i seçin >>
  • Bağlantı Özellikleri sekmesini seçin
  • Veritabanına bağlan: kutusuna veritabanınızın adını yazın
  • Bağlan’ı seçin.

Hata 40613 alırsanız, Database '%.&#x2a;ls' on server '%.&#x2a;ls' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing ID of '%.&#x2a;ls'bu başka bir oturumun DAC'ye zaten bağlı olduğunu gösterebilir. Aynı anda tek bir veritabanı veya elastik havuz için DAC'ye yalnızca bir oturum bağlanabilir.

Bağlan'ı seçtikten sonra 'Sunucuya bağlanılamadı' hatasıyla karşılaşırsanız, SSMS'nin 18.9'un önceki bir sürümünü kullanıyorsanız DAC oturumu yine de başarıyla oluşturulmuş olabilir. SSMS'nin ilk sürümleri DAC bağlantıları için IntelliSense sağlamaya çalıştı. DAC yalnızca tek bir çalışanı desteklediğinden ve IntelliSense ayrı bir çalışan gerektirdiğinden bu başarısız oldu.

Nesne Gezgini ile DAC bağlantısı kullanamazsınız.

max_worker_percent kullanımınızı gözden geçirme

Veritabanınızın 14 günlük kaynak tüketimi istatistiklerini bulmak için sistem kataloğu görünümünü sys.resource_stats sorgular. max_worker_percent sütunu, veritabanınızın çalışan sınırına göre kullanılan çalışan yüzdesini gösterir. sorgulamak sys.resource_statsiçin mantıksal sunucunuzdaki ana veritabanına bağlanın.

SELECT start_time, end_time, database_name, sku, avg_cpu_percent, max_worker_percent, max_session_percent 
FROM sys.resource_stats;

Ayrıca, sys.dm_db_resource_stats dinamik yönetim görünümünden son bir saat içinde kaynak tüketimi istatistiklerini sorgulayabilirsiniz. sorgulamak sys.dm_db_resource_statsiçin doğrudan veritabanınıza bağlanın.

SELECT end_time, avg_cpu_percent, max_worker_percent, max_session_percent
FROM sys.dm_db_resource_stats;

Mümkün olduğunda daha düşük çalışan kullanımı

Zincirlerin engellenmesi, veritabanındaki çalışan sayısında ani bir artışa neden olabilir. Çok fazla sayıda eş zamanlı paralel sorgu çok sayıda çalışana neden olabilir. Maksimum paralellik derecenizi (MAXDOP) artırmak veya MAXDOP'yi sıfır olarak ayarlamak etkin çalışan sayısını artırabilir.

Aşağıdaki adımları izleyerek yetersiz çalışanlarla ilgili bir olayı önceliklendirme:

  1. Engellemenin gerçekleşip gerçekleşmediğini veya çok fazla sayıda eş zamanlı çalışanı belirleyip tanımlayabildiğinizi araştırın. Geçerli istekleri incelemek ve veritabanınız Hata 10928'i döndürürken engelleme olup olmadığını denetlemek için aşağıdaki sorguyu çalıştırın. Sorguyu yürütmek için Ayrılmış Yönetici Bağlantısı (DAC) ile bağlanmanız gerekebilir.

    SELECT
        r.session_id, r.request_id, r.blocking_session_id, r.start_time, 
        r.status, r.command, DB_NAME(r.database_id) AS database_name,
        (SELECT COUNT(*) 
            FROM sys.dm_os_tasks AS t 
            WHERE t.session_id=r.session_id and t.request_id=r.request_id) AS worker_count,
        i.parameters, i.event_info AS input_buffer,
        r.last_wait_type, r.open_transaction_count, r.total_elapsed_time, r.cpu_time,
        r.logical_reads, r.writes, s.login_time, s.login_name, s.program_name, s.host_name
    FROM sys.dm_exec_requests as r
    JOIN sys.dm_exec_sessions as s on r.session_id=s.session_id
    OUTER APPLY sys.dm_exec_input_buffer (r.session_id,r.request_id) AS i
    WHERE s.is_user_process=1;
    GO
    
    1. Engellenen oturumları tanımlamak için ile blocking_session_id satırları arayın. Bu oturumun da engellenip engellenmediğini belirlemek için listedeki her blocking_session_id bir öğeyi bulun. Bu, sonunda sizi baş engelleyiciye yönlendirecektir. Baş engelleyici sorgusunu ayarlayın.

      Not

      Uzun süre çalışan veya engelleyen sorguların sorunlarını giderme hakkında daha ayrıntılı bilgi için bkz. veritabanı engelleme sorunlarını anlama ve Azure SQL çözme.

    2. Çok fazla sayıda eş zamanlı çalışanı tanımlamak için, genel istek sayısını ve her isteğin sütununu worker_count gözden geçirin. Worker_count örneklenen zamandaki çalışan sayısıdır ve istek yürütüldükçe zaman içinde değişebilir. Artan çalışanların nedeni, en uygun paralellik derecelerinde çalışan eş zamanlı sorgular ise, kaynak kullanımını azaltmak için sorguları ayarlayın. Daha fazla bilgi için bkz. Sorgu Ayarlama/İpucu Sağlama.

  2. Veritabanı için en yüksek paralellik derecesi (MAXDOP) ayarını değerlendirin.

Çalışan sınırlarını artırma

Veritabanı veya elastik havuz engelleme, sorguları iyileştirme ve MAXDOP ayarınızı doğrulamaya rağmen sürekli olarak çalışan sınırına ulaşırsa, çalışan sınırını artırmak için veritabanının veya elastik havuzun ölçeğini artırmayı göz önünde bulundurun.

Hizmet katmanına ve işlem boyutuna göre Azure SQL Veritabanı için kaynak sınırlarını bulun:

Çalışanların Azure SQL Veritabanı kaynak idaresi hakkında daha fazla bilgi edinin.

Hata 10929: Kaynak Kimliği: 1

10929: Resource ID: 1. The %s minimum guarantee is %d, maximum limit is %d and the current usage for the database is %d. However, the server is currently too busy to support requests greater than %d for this database. See http://go.microsoft.com/fwlink/?LinkId=267637 for assistance. Otherwise, please try again later.

Hata 40501: Hizmet şu anda meşgul

40501: The service is currently busy. Retry the request after 10 seconds. Incident ID: %ls. Code: %d.

Bu, kaynak sınırlarının aşıldığını gösteren bir altyapı azaltma hatasıdır.

Kaynak sınırları hakkında daha fazla bilgi için bkz . Mantıksal SQL sunucusu kaynak sınırları.

Hata 40544: Veritabanı boyut kotasına ulaştı

40544: The database has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions. Incident ID: <ID>. Code: <code>.

Bu hata, veritabanı boyut kotasına ulaştığında oluşur.

Aşağıdaki adımlar sorunu çözmenize yardımcı olabilir veya size daha fazla seçenek sunabilir:

  1. Azure portal panoyu kullanarak veritabanının geçerli boyutunu denetleyin.

    Not

    Hangi tabloların en çok alan tükettiği ve dolayısıyla temizleme için olası adaylar olduğunu belirlemek için aşağıdaki SQL sorgusunu çalıştırın:

    SELECT o.name,
     SUM(p.row_count) AS 'Row Count',
     SUM(p.reserved_page_count) * 8.0 / 1024 AS 'Table Size (MB)'
    FROM sys.objects o
    JOIN sys.dm_db_partition_stats p on p.object_id = o.object_id
    GROUP BY o.name
    ORDER BY [Table Size (MB)] DESC;
    GO
    
  2. Geçerli boyut, sürümünüz için desteklenen en büyük boyutu geçmezse, MAXSIZE ayarını artırmak için ALTER DATABASE kullanabilirsiniz.

  3. Veritabanı zaten sürümünüz için desteklenen en büyük boyutu geçtiyse, aşağıdaki adımlardan birini veya daha fazlasını deneyin:

    • Normal veritabanı temizleme etkinlikleri gerçekleştirin. Örneğin, kesme/silme kullanarak istenmeyen verileri temizleyin veya SQL Server Integration Services (SSIS) veya toplu kopyalama programı (bcp) yardımcı programını kullanarak verileri dışarı taşıyın.
    • Verileri bölümleyin veya silin, dizinleri bırakın veya olası çözümler için belgelere bakın.
    • Veritabanı ölçeklendirme için bkz. Tek veritabanı kaynaklarını ölçeklendirme ve Elastik havuz kaynaklarını ölçeklendirme.

Hata 40549: Uzun süre çalışan bir işleminiz olduğundan oturum sonlandırıldı

40549: Session is terminated because you have a long-running transaction. Try shortening your transaction.

Bu hatayla tekrar tekrar karşılaşırsanız, aşağıdaki adımları izleyerek sorunu çözmeyi deneyin:

  1. Sütun için yüksek değere sahip açık oturumları görmek için aşağıdaki sorguyu duration_ms çalıştırın:

    SELECT
        r.start_time, DATEDIFF(ms,start_time, SYSDATETIME()) as duration_ms, 
    	r.session_id, r.request_id, r.blocking_session_id,  
        r.status, r.command, DB_NAME(r.database_id) AS database_name,
        i.parameters, i.event_info AS input_buffer,
        r.last_wait_type, r.open_transaction_count, r.total_elapsed_time, r.cpu_time,
        r.logical_reads, r.writes, s.login_time, s.login_name, s.program_name, s.host_name
    FROM sys.dm_exec_requests as r
    JOIN sys.dm_exec_sessions as s on r.session_id=s.session_id
    OUTER APPLY sys.dm_exec_input_buffer (r.session_id,r.request_id) AS i
    WHERE s.is_user_process=1
    ORDER BY start_time ASC;
    GO
    

    Sütunun input_buffer okumasını gösterdiği sys.fn_MSxe_read_event_streamsatırları yoksaymayı seçebilirsiniz: bu istekler Genişletilmiş Olay oturumlarıyla ilişkilidir.

  2. Engellemenin blocking_session_id uzun süre çalışan işlemlere katkıda bulunup bulunmadığını görmek için sütunu gözden geçirin.

    Not

    Azure SQL Veritabanında engelleme sorunlarını giderme hakkında daha fazla bilgi için bkz. Azure SQL Veritabanı engelleme sorunlarını anlama ve çözme.

  3. Sorgularınızı toplu olarak oluşturmayı göz önünde bulundurun. Toplu işlem hakkında bilgi için bkz. SQL Veritabanı uygulama performansını geliştirmek için toplu işlem kullanma.

Hata 40551: Aşırı TEMPDB kullanımı nedeniyle oturum sonlandırıldı

40551: The session has been terminated because of excessive TEMPDB usage. Try modifying your query to reduce the temporary table space usage.

Bu sorunu geçici olarak çözmek için şu adımları izleyin:

  1. Geçici tablo alanı kullanımını azaltmak için sorguları değiştirin.
  2. Artık gerekli olmayan geçici nesneleri bırakın.
  3. Tabloları kesme veya kullanılmayan tabloları kaldırma.

Hata 40552: Aşırı işlem günlüğü alanı kullanımı nedeniyle oturum sonlandırıldı

40552: The session has been terminated because of excessive transaction log space usage. Try modifying fewer rows in a single transaction.

Bu sorunu çözmek için aşağıdaki yöntemleri deneyin:

  • Ekleme, güncelleştirme veya silme işlemleri nedeniyle bu sorun oluşabilir. Toplu işlem gerçekleştirerek veya birden çok küçük işleme bölerek hemen üzerinde çalıştırılan satır sayısını azaltmaya çalışın.

  • Dizin yeniden oluşturma işlemleri nedeniyle bu sorun oluşabilir. Bu sorunu geçici olarak çözmek için, tabloda * etkilenen satır sayısının (bayt + 80 olarak güncelleştirilen alanın ortalama boyutu) 2 gigabayt (GB) < olduğundan emin olun.

    Not

    Dizin yeniden derlemesi için, güncelleştirilen alanın ortalama boyutu, ortalama dizin boyutuyla değiştirilmelidir.

    Not

    Azure SQL Veritabanı'nda ve Azure SQL Yönetilen Örneği tam işlem günlüğü sorunlarını giderme hakkında daha fazla bilgi için bkz. Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği ile ilgili işlem günlüğü hatalarını giderme.

Hata 40553: Aşırı bellek kullanımı nedeniyle oturum sonlandırıldı

40553: The session has been terminated because of excessive memory usage. Try modifying your query to process fewer rows.

Bu sorunu geçici olarak çözmek için sorguyu iyileştirmeyi deneyin.

Ayrıntılı sorun giderme yordamı için bkz. Sorgum bulutta düzgün çalışıyor mu?.

Diğer yetersiz bellek hataları ve örnek sorgular hakkında daha fazla bilgi için bkz. Azure SQL Veritabanı ile yetersiz bellek hatalarını giderme.

Kaynak idaresi hata iletileri tablosu

Hata kodu Önem Derecesi Açıklama
10928 20 Kaynak Kimliği: %d. Veritabanı için %s sınırı : %d ve bu sınıra ulaşıldı. Yardım için 'http://go.microsoft.com/fwlink/?LinkId=267637' bölümüne bakın..

Kaynak Kimliği, sınıra ulaşmış olan kaynağı gösterir. Kaynak Kimliği = 1 olduğunda, bu bir çalışan sınırına ulaşıldığını gösterir. Hata 10928: Kaynak Kimliği: 1 bölümünde daha fazla bilgi edinin. Veritabanının istek sınırı :%d ve ulaşıldı. Kaynak Kimliği = 2 olduğunda bu, oturum sınırına ulaşıldığını gösterir.

Kaynak sınırları hakkında daha fazla bilgi edinin:
Mantıksal SQL server kaynak sınırları
Tek veritabanları için DTU tabanlı sınırlar
Tek veritabanları için sanal çekirdek tabanlı sınırlar
kaynak sınırlarını Azure SQL Yönetilen Örneği.
10936 20 Kaynak Kimliği: %d. Elastik havuz için %s sınırı : %d ve bu sınıra ulaşıldı. Yardım için 'http://go.microsoft.com/fwlink/?LinkId=267637' bölümüne bakın..

Kaynak Kimliği, sınıra ulaşmış olan kaynağı gösterir. Kaynak Kimliği = 1 olduğunda, bu bir çalışan sınırına ulaşıldığını gösterir. Hata 10936: Kaynak Kimliği: 1 bölümünde daha fazla bilgi edinin. Elastik havuzun istek sınırı :%d ve ulaşıldı. Kaynak Kimliği = 2 olduğunda bu, oturum sınırına ulaşıldığını gösterir.

Kaynak sınırları hakkında daha fazla bilgi edinin:
Mantıksal SQL server kaynak sınırları
Elastik havuzlar için DTU tabanlı sınırlar
Elastik havuzlar için sanal çekirdek tabanlı sınırlar
kaynak sınırlarını Azure SQL Yönetilen Örneği.
10929 20 Kaynak Kimliği: %d. %s en düşük garanti %d, üst sınır %d ve veritabanının geçerli kullanımı %d. Ancak, sunucu şu anda bu veritabanı için %d'den büyük istekleri desteklemek için çok meşgul. Kaynak Kimliği, sınıra ulaşmış olan kaynağı gösterir. Çalışan iş parçacıkları için Kaynak Kimliği = 1. Oturumlar için Kaynak Kimliği = 2. Daha fazla bilgi için bkz.
Mantıksal SQL server kaynak sınırları
Tek veritabanları için DTU tabanlı sınırlar
Elastik havuzlar için DTU tabanlı sınırlar
Tek veritabanları için sanal çekirdek tabanlı sınırlar
Elastik havuzlar için sanal çekirdek tabanlı sınırlar
kaynak sınırlarını Azure SQL Yönetilen Örneği.
Aksi takdirde daha sonra yeniden deneyin.
40544 20 Veritabanı boyut kotasına ulaştı. Verileri bölümleyin veya silin, dizinleri bırakın veya olası çözümler için belgelere bakın. Veritabanı ölçeklendirmesi için bkz . Tek veritabanı kaynaklarını ölçeklendirme ve Elastik havuz kaynaklarını ölçeklendirme.
40549 16 Uzun süre çalışan bir işleminiz olduğundan oturum sonlandırıldı. İşleminizi kısaltmayı deneyin. Toplu işlem hakkında daha fazla bilgi için bkz. SQL Veritabanı uygulama performansını geliştirmek için toplu işlem kullanma.
40550 16 Çok fazla kilit aldığı için oturum sonlandırıldı. Tek bir işlemde daha az satır okumayı veya değiştirmeyi deneyin. Toplu işlem hakkında daha fazla bilgi için bkz. SQL Veritabanı uygulama performansını geliştirmek için toplu işlem kullanma.
40551 16 Aşırı kullanım nedeniyle TEMPDB oturum sonlandırıldı. Geçici tablo alanı kullanımını azaltmak için sorgunuzu değiştirmeyi deneyin.

Geçici nesneler kullanıyorsanız, oturumda artık gerekli olmayan geçici nesneleri bırakarak veritabanında yer TEMPDB tasarrufu sağlayın. SQL Veritabanı tempdb sınırları hakkında daha fazla bilgi için bkz. SQL Veritabanı'de Tempdb veritabanı.
40552 16 Aşırı işlem günlüğü alanı kullanımı nedeniyle oturum sonlandırıldı. Tek bir işlemde daha az satır değiştirmeyi deneyin. Toplu işlem hakkında daha fazla bilgi için bkz. SQL Veritabanı uygulama performansını geliştirmek için toplu işlem kullanma.

Yardımcı programını veya System.Data.SqlClient.SqlBulkCopy sınıfını bcp.exe kullanarak toplu eklemeler gerçekleştiriyorsanız, her işlemde -b batchsize sunucuya kopyalanan satır sayısını sınırlamak için veya BatchSize seçeneklerini kullanmayı deneyin. deyimiyle ALTER INDEX bir dizini yeniden derlediyseniz seçeneğini kullanmayı REBUILD WITH ONLINE = ON deneyin. Sanal çekirdek satın alma modelinin işlem günlüğü boyutları hakkında bilgi için bkz:
Tek veritabanları için sanal çekirdek tabanlı sınırlar
Elastik havuzlar için sanal çekirdek tabanlı sınırlar
kaynak sınırlarını Azure SQL Yönetilen Örneği.
40553 16 Aşırı bellek kullanımı nedeniyle oturum sonlandırıldı. Daha az satırı işlemek için sorgunuzu değiştirmeyi deneyin.

Transact-SQL kodunuzdaki ve GROUP BY işlemlerinin ORDER BY sayısını azaltmak sorgunuzun bellek gereksinimlerini azaltır. Veritabanı ölçeklendirmesi için bkz . Tek veritabanı kaynaklarını ölçeklendirme ve Elastik havuz kaynaklarını ölçeklendirme. Yetersiz bellek hataları ve örnek sorgular hakkında daha fazla bilgi için bkz. Azure SQL Veritabanı ile yetersiz bellek hatalarını giderme.

Elastik havuz hataları

Aşağıdaki hatalar elastik havuzları oluşturma ve kullanmayla ilgilidir:

Hata kodu Önem Derecesi Açıklama Düzeltici eylem
1132 17 Elastik havuz depolama sınırına ulaştı. Elastik havuz için depolama kullanımı (%d) MB'yi aşamaz. Elastik havuzun depolama sınırına ulaşıldığında veritabanına veri yazmaya çalışma. Kaynak sınırları hakkında bilgi için bkz:
Elastik havuzlar için DTU tabanlı sınırlar
Elastik havuzlar için sanal çekirdek tabanlı sınırlar.
Depolama sınırını artırmak, elastik havuz içindeki tek tek veritabanları tarafından kullanılan depolama alanını azaltmak veya elastik havuzdan veritabanlarını kaldırmak için mümkünse elastik havuza ve/veya depolama alanı eklemeyi göz önünde bulundurun. Elastik havuz ölçeklendirmesi için bkz. Elastik havuz kaynaklarını ölçeklendirme. Veritabanlarından kullanılmayan alanı kaldırma hakkında daha fazla bilgi için bkz. Azure SQL Veritabanındaki veritabanları için dosya alanını yönetme.
10929 16 %s en düşük garanti %d, üst sınır %d ve veritabanının geçerli kullanımı %d. Ancak, sunucu şu anda bu veritabanı için %d'den büyük istekleri desteklemek için çok meşgul. Kaynak sınırları hakkında bilgi için bkz:
Elastik havuzlar için DTU tabanlı sınırlar
Elastik havuzlar için sanal çekirdek tabanlı sınırlar.
Aksi takdirde daha sonra yeniden deneyin. DTU / veritabanı başına sanal çekirdek dk; Veritabanı başına DTU / sanal çekirdek maksimum. Elastik havuzdaki tüm veritabanlarındaki eş zamanlı çalışanların toplam sayısı havuz sınırını aşmaya çalıştı.
Çalışan sınırını artırmak veya elastik havuzdan veritabanlarını kaldırmak için mümkünse elastik havuzun DTU'larını veya sanal çekirdeklerini artırmayı göz önünde bulundurun.
40844 16 '%ls' Sunucusu'ndaki '%ls' veritabanı elastik havuzdaki bir '%ls' sürüm veritabanı ve sürekli kopyalama ilişkisine sahip olamaz. Yok
40857 16 '%ls' sunucusu için elastik havuz bulunamadı, elastik havuz adı: '%ls'. Belirtilen elastik havuz belirtilen sunucuda yok. Geçerli bir elastik havuz adı sağlayın.
40858 16 '%ls' elastik havuzu '%ls' sunucusunda zaten var: '%ls'. Belirtilen elastik havuz belirtilen sunucuda zaten var. Yeni elastik havuz adı sağlayın.
40859 16 Elastik havuz '%ls' hizmet katmanını desteklemiyor. Belirtilen hizmet katmanı elastik havuz sağlama için desteklenmiyor. Varsayılan hizmet katmanını kullanmak için doğru sürümü sağlayın veya hizmet katmanını boş bırakın.
40860 16 Elastik havuz '%ls' ve hizmet hedefi '%ls' bileşimi geçersiz. Elastik havuz ve hizmet katmanı, yalnızca kaynak türü 'ElasticPool' olarak belirtildiğinde birlikte belirtilebilir. Elastik havuz ve hizmet katmanının doğru birleşimini belirtin.
40861 16 '%.*ls' veritabanı sürümü, '%.*ls' olan elastik havuz hizmet katmanından farklı olamaz. Veritabanı sürümü elastik havuz hizmet katmanından farklıdır. Elastik havuz hizmet katmanından farklı bir veritabanı sürümü belirtmeyin. Veritabanı sürümünün belirtilmesi gerekmediğini unutmayın.
40862 16 Elastik havuz hizmeti hedefi belirtilmişse elastik havuz adı belirtilmelidir. Elastik havuz hizmeti hedefi, elastik havuzu benzersiz olarak tanımlamaz. Elastik havuz hizmeti hedefini kullanıyorsanız elastik havuz adını belirtin.
40864 16 Elastik havuzun DTU'ları en az (%d) '%.*ls' hizmet katmanı için DTU olmalıdır. Elastik havuz için DTU'ları minimum sınırın altına ayarlamaya çalışma. Elastik havuz için DTU'ları en az minimum sınıra ayarlamayı yeniden deneyin.
40865 16 Elastik havuzun DTU'ları '%.*ls' hizmet katmanı için (%d) DTU'yu aşamaz. Elastik havuz için DTU'ları üst sınırın üzerinde ayarlamaya çalışılıyor. Elastik havuz için DTU'ları üst sınırdan büyük olmayacak şekilde ayarlamayı yeniden deneyin.
40867 16 '%.*ls' hizmet katmanı için veritabanı başına en fazla DTU en az (%d) olmalıdır. Veritabanı başına en yüksek DTU değerini desteklenen sınırın altına ayarlamaya çalışılıyor. İstenen ayarı destekleyen elastik havuz hizmet katmanını kullanmayı göz önünde bulundurun.
40868 16 '%.*ls' hizmet katmanı için veritabanı başına en yüksek DTU sınırı (%d) değerini aşamaz. Veritabanı başına en yüksek DTU değerini desteklenen sınırın ötesine ayarlamaya çalışma. İstenen ayarı destekleyen elastik havuz hizmet katmanını kullanmayı göz önünde bulundurun.
40870 16 Veritabanı başına DTU min değeri '%.*ls' hizmet katmanı için (%d) değerini aşamaz. Veritabanı başına DTU dk değerini desteklenen sınırın ötesine ayarlamaya çalışılıyor. İstenen ayarı destekleyen elastik havuz hizmet katmanını kullanmayı göz önünde bulundurun.
40873 16 Veritabanı başına (%d) ve DTU min veritabanı sayısı (%d) elastik havuzun (%d) DTU'larını aşamaz. Elastik havuzdaki elastik havuzun DTU'larını aşan veritabanları için DTU min belirtmeye çalışılıyor. Elastik havuzun DTU'larını artırmayı veya veritabanı başına DTU sayısını azaltmayı veya elastik havuzdaki veritabanı sayısını azaltmayı göz önünde bulundurun.
40877 16 Elastik havuz, herhangi bir veritabanı içermediği sürece silinemez. Elastik havuz bir veya daha fazla veritabanı içerdiğinden silinemez. Veritabanlarını silmek için elastik havuzdan kaldırın.
40881 16 '%.*ls' elastik havuzu veritabanı sayısı sınırına ulaştı. Elastik havuzun veritabanı sayısı sınırı (%d) DTU'ları olan bir elastik havuz için (%d) sınırını aşamaz. Elastik havuzun veritabanı sayısı sınırına ulaşıldığında elastik havuz oluşturma veya elastik havuza veritabanı ekleme girişimi. Veritabanı sınırını artırmak veya elastik havuzdan veritabanlarını kaldırmak için mümkünse elastik havuzun DTU'larını artırmayı göz önünde bulundurun.
40889 16 '%.*ls' elastik havuzu için DTU'lar veya depolama sınırı azaltılamaz çünkü bu, veritabanları için yeterli depolama alanı sağlamaz. Elastik havuzun depolama sınırını depolama kullanımının altında azaltmaya çalışma. DTU'larını veya depolama sınırını azaltmak için elastik havuzdaki tek tek veritabanlarının depolama kullanımını azaltmayı veya veritabanlarını havuzdan kaldırmayı göz önünde bulundurun.
40891 16 Veritabanı başına DTU min (%d) veritabanı başına DTU üst sınırını (%d) aşamaz. Veritabanı başına DTU min değerini veritabanı başına en yüksek DTU'dan daha yüksek ayarlamaya çalışılıyor. Veritabanı başına DTU min değerinin veritabanı başına DTU üst sınırını aşmadığından emin olun.
TBD 16 Elastik havuzdaki tek bir veritabanının depolama boyutu, '%.*ls' hizmet katmanı elastik havuzu tarafından izin verilen en büyük boyutu aşamaz. Veritabanı için maksimum boyut, elastik havuz hizmet katmanı tarafından izin verilen maksimum boyutu aşıyor. Elastik havuz hizmet katmanı tarafından izin verilen maksimum boyut sınırları içinde veritabanının en büyük boyutunu ayarlayın.

Oturum açma tarafından istenen "ana" veritabanı açılamıyor. Oturum açılamadı

Hesabın veritabanına erişim master izni olmadığından bu sorun oluşur. Ancak varsayılan olarak SQL Server Management Studio (SSMS) veritabanına bağlanmayı master dener.

Bu sorunu çözmek için şu adımları izleyin:

  1. SSMS'nin oturum açma ekranında Seçenekler'i ve ardından Bağlantı Özellikleri'ni seçin.

  2. Veritabanına bağlan alanında, kullanıcının varsayılan veritabanı adını varsayılan oturum açma veritabanı olarak girin ve bağlan'ı seçin.

    Bağlantı özellikleri

Salt okunur hatalar

Salt okunur bir veritabanına yazmaya çalışırsanız bir hata alırsınız. Bazı senaryolarda veritabanının salt okunur durumunun nedeni hemen net olmayabilir.

Hata 3906: Veritabanı salt okunur olduğundan "DatabaseName" veritabanı güncelleştirilemedi.

Salt okunur veritabanını değiştirmeye çalışırken aşağıdaki hata oluşur.

Msg 3906, Level 16, State 2, Line 1
Failed to update database "%d" because the database is read-only.

Salt okunur bir çoğaltmaya bağlı olabilirsiniz

Hem Azure SQL Veritabanı hem de Azure SQL Yönetilen Örneği için salt okunur çoğaltmadaki bir veritabanına bağlı olabilirsiniz. Bu durumda, DATABASEPROPERTYEX() işlevini kullanan aşağıdaki sorgu döndürür READ_ONLY:

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability');
GO

SQL Server Management Studio kullanarak bağlanıyorsanız, bağlantı seçeneklerinizin Ek Bağlantı Parametrelerisekmesinde belirttiğiniziApplicationIntent=ReadOnly doğrulayın.

Bağlantı bir uygulamadan veya bağlantı dizesi kullanan bir istemcidense, bağlantı dizesinin belirtilip belirtilmedidiğini ApplicationIntent=ReadOnlydoğrulayın. Salt okunur çoğaltmaya bağlanma bölümünde daha fazla bilgi edinin.

Veritabanı salt okunur olarak ayarlanabilir

Azure SQL Veritabanı kullanıyorsanız, veritabanının kendisi salt okunur olarak ayarlanmış olabilir. Veritabanının durumunu aşağıdaki sorguyla doğrulayabilirsiniz:

SELECT name, is_read_only
FROM sys.databases
WHERE database_id = DB_ID();

ALTER DATABASE Transact-SQL kullanarak Azure SQL Veritabanındaki bir veritabanının salt okunur durumunu değiştirebilirsiniz. Şu anda yönetilen örnekteki bir veritabanını salt okunur olarak ayarlayamazsınız.

Bağlantı sorunundan kaynaklanan bir hata olup olmadığını onaylayın

Bir hatanın bağlantı sorunundan kaynaklanıp kaynaklanmadığını onaylamak için, aşağıdaki gibi bir bağlantı açmaya yönelik çağrıları gösteren çerçeveler için yığın izlemesini gözden geçirin ( SqlConnection sınıfı başvurusuna dikkat edin):

System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
 at System.Data.SqlClient.SqlConnection.Open()
 at AzureConnectionTest.Program.Main(String[] args)
ClientConnectionId:<Client connection ID>

Sorgu sorunlarında özel durum tetiklendiğinde, aşağıdakine benzer bir çağrı yığını görürsünüz ( SqlCommand sınıfına başvuruyu not edin). Bu durumda sorgularınızı ayarlayın.

  at System.Data.SqlClient.SqlCommand.ExecuteReader()
  at AzureConnectionTest.Program.Main(String[] args)
  ClientConnectionId:<Client ID>

Performansta ince ayarlama hakkında ek yönergeler için aşağıdaki kaynaklara bakın:

Yaygın bağlantı sorunlarını giderme adımları

  1. TCP/IP'nin uygulama sunucusunda istemci protokolü olarak etkinleştirildiğinden emin olun. Daha fazla bilgi için bkz. İstemci protokollerini yapılandırma. SQL araçlarının yüklü olmadığı uygulama sunucularında, cliconfg.exe(SQL Server İstemci Ağı yardımcı programı) çalıştırarak TCP/IP'nin etkinleştirildiğini doğrulayın.

  2. Doğru yapılandırıldığından emin olmak için uygulamanın bağlantı dizesini denetleyin. Örneğin, bağlantı dizesinin doğru bağlantı noktasını (1433) ve tam sunucu adını belirttiğinden emin olun. Bkz. Bağlantı bilgilerini alma.

  3. Bağlantı zaman aşımı değerini artırmayı deneyin. En az 30 saniyelik bir bağlantı zaman aşımı kullanmanızı öneririz.

  4. SQL Server Management Studio (SSMS), UDL dosyası, ping veya telnet kullanarak uygulama sunucusu ile Azure SQL Veritabanı arasındaki bağlantıyı test edin. Daha fazla bilgi için bkz. Bağlantı sorunlarını giderme ve Bağlantı sorunları için tanılama.

    Not

    Sorun giderme adımı olarak, bağlantıyı farklı bir istemci bilgisayarda da test edebilirsiniz.

  5. En iyi uygulama olarak, yeniden deneme mantığının yerine getirildiğinden emin olun. Yeniden deneme mantığı hakkında daha fazla bilgi için bkz. SQL Veritabanı geçici hataları ve bağlantı hatalarını giderme.

Bu adımlar sorununuzu çözmezse daha fazla veri toplamayı deneyin ve ardından desteğe başvurun. Uygulamanız bir bulut hizmetiyse günlüğe kaydetmeyi etkinleştirin. Bu adım, hatanın UTC zaman damgasını döndürür. Ayrıca, SQL Veritabanı izleme kimliğini döndürür. Microsoft Müşteri Destek Hizmetleri bu bilgileri kullanabilir.

Günlüğe kaydetmeyi etkinleştirme hakkında daha fazla bilgi için bkz. Azure App Service'de uygulamalar için tanılama günlüğünü etkinleştirme.

Sonraki adımlar

aşağıdaki makalelerde ilgili konular hakkında daha fazla bilgi edinin: