المشاكل المعروفة مع مثيل Azure SQL المدار

ينطبق على: مثيل Azure SQL المُدار

تسرد هذه المقالة المشكلات المعروفة حاليًا مع Azure SQL المثيل المدار، بالإضافة إلى تاريخ حلها أو الحل البديل المحتمل. لمعرفة المزيد حول Azure SQL المثيل المدار، راجع النظرة العامة، وما هو الجديد.

المشكلات المعروفة

مشكلة تاريخ اكتشاف الحالة تاريخ الحل
فشل الاستعلام عن الجدول الخارجي مع ظهور رسالة الخطأ "غير مدعوم" يناير 2022 لديه الحل البديل
عند استخدام مصادقة SQL Server، فإن أسماء المستخدمين التي تحتوي على "@" غير مدعومة أكتوبر 2021 تم الحل فبراير 2022
مدخل Microsoft Azure رسالة خطأ مضللة على مدخل Microsoft Azure تقترح إعادة إنشاء Service Principal سبتمبر 2021 أكتوبر 2021
تغيير نوع الاتصال لا يؤثر في الاتصالات من خلال نقطة نهاية مجموعة تجاوز الفشل يناير 2021 لديه الحل البديل
Procedure sp_send_dbmail may transiently fail when @query parameter is used يناير 2021 لديه الحل البديل
يمكن تنفيذ العمليات الموزعة بعد إزالة المثيل المدار من Server Trust Group أكتوبر 2020 لديه الحل البديل
لا يمكن تنفيذ العمليات الموزعة بعد عملية تغيير حجم المثيل المدار أكتوبر 2020 تم الحل مايو 2021
لا يمكن إنشاء المثيل المدار SQL بنفس اسم الخادم المنطقي الذي تم حذفه مسبقًا أغسطس 2020 لديه الحل البديل
يتعذر على Service Principal الوصول إلى Microsoft Azure AD وAKV أغسطس 2020 لديه الحل البديل
استعادة النسخ الاحتياطي اليدوي دون CHECKSUM قد تفشل مايو 2020 تم الحل يونيو 2020
يصبح عامل لا يستجيب عند تعديل، أو تعطيل، أو تمكين مهام موجودة مايو 2020 تم الحل يونيو 2020
أذونات على مجموعة الموارد غير مطبقة على المثيل المدار SQL فبراير 2020 تم الحل نوفمبر 2020
تقييد تجاوز الفشل اليدوي عبر المدخل لمجموعات تجاوز الفشل يناير 2020 لديه الحل البديل
أدوار العامل لـ SQL تحتاج إلى أذونات EXECUTE صريحة لتسجيلات الدخول لـ non-sysadmin ديسمبر 2019 لديه الحل البديل
يمكن مقاطعة مهام عامل SQL عن طريق إعادة تشغيل عملية العامل ديسمبر 2019 تم الحل مارس 2020
تسجيلات الدخول إلى Microsoft Azure AD والمستخدمين غير مدعومين في SSDT نوفمبر 2019 لا يوجد حل بديل
لا يتم تطبيق حدود الذاكرة In-memory OLTP أكتوبر 2019 لديه الحل البديل
خطأ تم إرجاعه أثناء محاولة إزالة ملف غير فارغ أكتوبر 2019 لديه الحل البديل
يتم حظر تغيير مستوى الخدمة وإنشاء عمليات مثيل بواسطة استعادة قاعدة البيانات الجارية سبتمبر 2019 لديه الحل البديل
قد تحتاج إلى إعادة تكوين Resource Governor على مستوى الخدمة Business Critical بعد تجاوز الفشل سبتمبر 2019 لديه الحل البديل
يجب إعادة تكوين مربعات حوار Service Broker عبر قاعدة البيانات بعد ترقية مستوى الخدمة أغسطس 2019 لديه الحل البديل
انتحال أنواع تسجيل الدخول إلى Microsoft Azure AD غير معتمد 2019 يوليو لا يوجد حل بديل
المعلمة@query غير مدعومة في sp_send_db_mail Apr 2019 تم الحل يناير 2021
يجب إعادة تكوين النسخ المتماثل للعمليات بعد تجاوز الفشل الجغرافي مارس 2019 لا يوجد حل بديل
قاعدة بيانات مؤقتة تُستخدم أثناء عملية RESTORE لديه الحل البديل
تتم إعادة إنشاء هيكل Tempdb والمحتوى لا يوجد حل بديل
تجاوز مساحة التخزين مع ملفات قاعدة بيانات صغيرة لديه الحل البديل
قيم GUID المعروضة بدلًا من أسماء قواعد البيانات لديه الحل البديل
سجلات الخطأ غير مستمرة لا يوجد حل بديل
يكون نطاق المعاملة على قاعدتَي بيانات داخل نفس المثيل غير معتمد لديه الحل البديل مارس 2020
يتعذر على وحدات CLR والخوادم المرتبطة أحيانًا الإشارة إلى عنوان IP محلي لديه الحل البديل
لم يتم التحقق من تناسق قاعدة البيانات باستخدام DBCC CHECKDB بعد استعادة قاعدة البيانات من Azure Blob Storage. تم الحل نوفمبر 2019
لن تنجح استعادة قاعدة البيانات في نقطة زمنية معينة من المستور Business Critical إلى المستوى General Purpose إذا كانت قاعدة بيانات المصدر تحتوي على كائنات in-memory OLTP. تم الحل أكتوبر 2019
ميزة بريد قاعدة البيانات مع خوادم البريد الخارجية (غير Azure) باستخدام اتصال آمن تم الحل أكتوبر 2019
قواعد البيانات المضمنة غير معتمدة في مثيل SQL المدار تم الحل أغسطس 2019

لديه الحل البديل

فشل الاستعلام عن الجدول الخارجي مع ظهور رسالة الخطأ "غير مدعوم"

قد يفشل الاستعلام عن الجدول الخارجي مع ظهور رسالة الخطأ العامة "الاستعلامات عبر الجداول الخارجية غير مدعومة بمستوى الخدمة الحالي أو مستوى الأداء لقاعدة البيانات هذه. ضع في اعتبارك ترقية مستوى الخدمة أو مستوى أداء قاعدة البيانات". النوع الوحيد من الجدول الخارجي المدعوم في Azure SQL المُدار هو جداول PolyBase الخارجية (قيد المعاينة). للسماح بالاستعلامات على جداول PolyBase الخارجية، يتعين عليك تمكين PolyBase على مثيل مُدار عن طريق تشغيل الأمر sp_configure.

الجداول الخارجية ذات الصلة بميزة الاستعلام المرن لقاعدة بيانات Azure SQL غير مدعومة في مثيل SQL المُدار، ولكن لم يتم حظر إنشائها والاستعلام عنها بشكل صريح. مع دعم جداول PolyBase الخارجية، تم تقديم عمليات فحص جديدة، ما يحظر الاستعلام عن أي نوع من الجداول الخارجية في المثيل المُدار ما لم يتم تمكين PolyBase.

إذا كنت تستخدم جداول خارجية غير معتمدة "استعلام مرن" للاستعلام عن البيانات في قاعدة بيانات Azure SQL أو Azure Synapse من المثيل المدار، فيجب عليك استخدام ميزة "الخادم المرتبط" بدلاً من ذلك. لإنشاء اتصال خادم مرتبط من مثيل مُدار من SQL إلى قاعدة بيانات SQL، يرجى اتباع الإرشادات الواردة في هذه المقالة. لتأسيس اتصال خادم مرتبط من SQL المثيل المدار إلى SQL Synapse، تحقق من الإرشادات خطوة بخطوة. نظراً لأن تكوين اتصال الخادم المرتبط واختباره يستغرق بعض الوقت، يمكنك استخدام حل بديل كحل مؤقت لتمكين الاستعلام عن الجداول الخارجية المتعلقة بميزة الاستعلام المرن:

الحل البديل: تنفيذ الأوامر التالية (مرة واحدة لكل مثيل) التي ستمكن الاستعلامات في الجداول الخارجية:

sp_configure 'polybase enabled', 1
go
reconfigure
go

تغيير نوع الاتصال لا يؤثر في الاتصالات من خلال نقطة نهاية مجموعة تجاوز الفشل

إذا كان المثيل يشارك في مجموعة تجاوز الفشل التلقائي فإن تغيير نوع اتصال المثيل لا يسري بالنسبة إلى الاتصالات التي أُنشِئت من خلال نقطة نهاية وحدة الإصغاء الخاصة بمجموعة تجاوز الفشل.

الحل البديل: إسقاط وإعادة إنشاء مجموعة تجاوز الفشل التلقائي بعد تغيير نوع الاتصال.

قد يفشل الإجراء sp_send_dbmail مؤقتاً عند استخدام معلمة @query

sp_send_dbmail قد يفشل@query الإجراء بشكل مستمر عند استخدام المعلمة. عند حدوث هذه المشكلة، فإن كل تنفيذ ثانٍ للإجراء sp_send_dbmail يفشل مع ظهور الخطأ Msg 22050, Level 16, State 1 وظهور رسالة Failed to initialize sqlcmd library with error number -2147467259. لكي تتمكن من مشاهدة هذا الخطأ بشكل صحيح، يجب استدعاء الإجراء بالقيمة الافتراضية 0 للمعلمة، @exclude_query_output وإلا فلن يتم نشر الخطأ.

تحدث هذه المشكلة بسبب خطأ معروف متعلق بكيفية استخدام sp_send_dbmail الانتحال وتجميع الاتصال.

لحل هذه المشكلة، راجع رمز التفاف المشكلة لإرسال البريد الإلكتروني إلى منطق إعادة المحاولة الذي يعتمد على معلمة الإخراج @mailitem_id. إذا فشل التنفيذ، ثم قيمة المعلمة ستكون فارغة، مشيرًا sp_send_dbmail ينبغي أن يسمى مرة أخرى لإرسال بريد إلكتروني بنجاح. هذا مثال على منطق إعادة المحاولة هذا.

CREATE PROCEDURE send_dbmail_with_retry AS
BEGIN
    DECLARE @miid INT
    EXEC msdb.dbo.sp_send_dbmail
        @recipients = 'name@mail.com', @subject = 'Subject', @query = 'select * from dbo.test_table',
        @profile_name ='AzureManagedInstance_dbmail_profile', @execute_query_database = 'testdb',
        @mailitem_id = @miid OUTPUT

    -- If sp_send_dbmail returned NULL @mailidem_id then retry sending email.
    --
    IF (@miid is NULL)
    EXEC msdb.dbo.sp_send_dbmail
        @recipients = 'name@mail.com', @subject = 'Subject', @query = 'select * from dbo.test_table',
        @profile_name ='AzureManagedInstance_dbmail_profile', @execute_query_database = 'testdb',
END

يمكن تنفيذ العمليات الموزعة بعد إزالة المثيل المدار من Server Trust Group

يتم استخدام Server Trust Groups لإنشاء الثقة بين المثيلات المدارة التي تُعَدّ مطلبًا أساسيًا لتنفيذ العمليات الموزَّعة. بعد إزالة المثيل المدار من Server Trust Group أو حذف المجموعة، قد لا يزال بإمكانك تنفيذ العمليات الموزعة. هناك حل بديل يمكنك تطبيقه للتأكد من تعطيل العمليات الموزعة وهو تجاوز الفشل اليدوي الذي بدأه المستخدم على مثيل مدار.

لا يمكن تنفيذ العمليات الموزعة بعد عملية تغيير حجم المثيل المدار

عمليات تغيير حجم المثيل المدار التي تتضمن تغيير مستوى الخدمة أو عدد vCores ستعيد تعيين إعدادات Server Trust Group على الواجهة الخلفية وتعطيل تشغيل العمليات الموزعة. كحل بديل، حذف وإنشاء Server Trust Group جديد على مدخل Microsoft Azure.

لا يمكن إنشاء المثيل المدار SQL بنفس اسم الخادم المنطقي الذي تم حذفه مسبقًا

يتم إنشاء سجل DNS <name>.database.windows.com عند إنشاء خادم منطقي في Azure لAzure SQL Database، وعند إنشاء مثيل مدار SQL. يجب أن يكون سجل DNS فريًدا. على هذا النحو، إذا قمت بإنشاء خادم منطقي SQL لقاعدة البيانات ثم حذفه، فهناك فترة عتبة 7 أيام قبل أن يتم تحرير الاسم من السجلات. في تلك الفترة، لا يمكن إنشاء مثيل مدار SQL بنفس اسم الخادم المنطقي المحذوف. كحل بديل، استخدم اسما مختلفا SQL المثيل المدار، أو أنشئ تذكرة دعم لتحرير اسم الخادم المنطقي.

يتعذر على Service Principal الوصول إلى Microsoft Azure AD وAKV

في بعض الحالات، قد توجد مشكلة مع Service Principal المستخدمة للوصول إلى خدمات Microsoft Azure AD وAzure Key Vault (AKV). نتيجةً لذلك، تؤثر هذه المشكلة في استخدام مصادقة Microsoft Azure AD وTransparent Database Encryption (TDE) مع مثيل مدار لـ SQL. قد يكون هذا من ذوي الخبرة كمسألة اتصال متقطعة، أو عدم القدرة على تشغيل عبارات مثل CREATE LOGIN/USER FROM EXTERNAL PROVIDER أو EXECUTE AS LOGIN/USER. قد لا يعمل إعداد TDE باستخدام مفتاح مدار بواسطة العميل على مثيل جديد مدار من Azure SQL في بعض الحالات.

الحل البديل: لمنع حدوث هذه المشكلة على مثيل SQL المدار قبل تنفيذ أي أوامر للتحديث أو في حالة أنك قد واجهت هذه المشكلة بعد أوامر التحديث، انتقل إلى مدخل Microsoft Azure، وقم بالوصول إلى مثيل SQL المدار Active Directory admin page. تحقق مما إذا كان يمكنك مشاهدة رسالة الخطأ "المثيل المدار يحتاج إلى Service Principal للوصول إلى Microsoft Azure Active Directory. انقر هنا لإنشاء Service Principal". في حالة مواجهة رسالة الخطأ هذه، انقر فوقها واتبع الإرشادات خطوةً بخطوة التي تم توفيرها حتى يتم حل هذا الخطأ.

تقييد تجاوز الفشل اليدوي عبر المدخل لمجموعات تجاوز الفشل

إذا كانت مجموعة تجاوز الفشل تمتد عبر مثيلات في اشتراكات Microsoft Azure أو مجموعات موارد مختلفة، فلا يمكن بدء تجاوز الفشل اليدوي من المثيل الأساسي في مجموعة تجاوز الفشل.

الحل البديل: بدء تجاوز الفشل عبر المدخل من المثيل الجغرافي الثانوي.

أدوار العامل لـ SQL تحتاج إلى أذونات EXECUTE صريحة لتسجيلات الدخول لـ non-sysadmin

في حالة إضافة عمليات تسجيل الدخول non-sysadmin إلى أي أدوار قاعدة البيانات الثابتة لعامل SQL، توجد مشكلة تتطلب منح أذونات EXECUTE الصريحة إلى ثلاثة إجراءات مخزنة في قاعدة البيانات الرئيسية لكي تعمل عمليات تسجيل الدخول هذه. إذا تمت مصادفة هذه المشكلة، فسيتم عرض رسالة الخطأ "The EXECUTE permission was denied on the object <object_name> (Microsoft SQL Server, Error: 229)".

الحل: بمجرد إضافة عمليات تسجيل الدخول إلى دور قاعدة البيانات الثابتة لعامل SQL Agent (SQLAgentUserRole أو SQLAgentReaderRole أو SQLAgentOperatorRole)، لكل من عمليات تسجيل الدخول المضافة إلى هذه الأدوار، قم بتنفيذ البرنامج النصي التالي لـ T-SQL لمنح أذونات EXECUTE بوضوح للإجراءات المخزنة المدرجة.

USE [master]
GO
CREATE USER [login_name] FOR LOGIN [login_name];
GO
GRANT EXECUTE ON master.dbo.xp_sqlagent_enum_jobs TO [login_name];
GRANT EXECUTE ON master.dbo.xp_sqlagent_is_starting TO [login_name];
GRANT EXECUTE ON master.dbo.xp_sqlagent_notify TO [login_name];

لا يتم تطبيق حدود الذاكرة In-memory OLTP

لن يطبق مستوى الخدمة Business Critical حدود الذاكرة القصوى للكائنات محسنة الذاكرة بشكل صحيح في بعض الحالات. قد يمكِّن المثيل المدار لـ SQL حمل العمل من استخدام ذاكرة أكبر لعمليات in-memory OLTP؛ ما قد يؤثر في توفر المثيل واستقراره. قد لا تفشل استعلامات In-memory OLTP التي تصل إلى الحدود فورًا. سيتم إصلاح هذه المشكلة قريبًا. ستفشل الاستعلامات التي تستخدم ذاكرة in-memory OLTP بسرعة أكثر إذا وصلت إلى الحدود.

الحل البديل: مراقبة استخدام تخزين in-memory OLTP باستخدام SQL Server Management Studio للتأكد من أن حمل العمل لا يستخدم أكثر من الذاكرة المتوفرة. قم بزيادة حدود الذاكرة التي تعتمد على عدد vCores، أو حَسِّن حمل العمل لاستخدام ذاكرة أقل.

خطأ تم إرجاعه أثناء محاولة إزالة ملف غير فارغ

لا تسمح SQL Server والمثيل المدار لـ SQL لمستخدم بإسقاط ملف غير فارغ. إذا حاولت إزالة ملف بيانات غير فارغ باستخدام جملة ALTER DATABASE REMOVE FILE، فلن يتم إرجاع الخطأ Msg 5042 – The file '<file_name>' cannot be removed because it is not empty على الفور. سيواصل مثيل SQL المدار محاولة إسقاط الملف، وستفشل العملية بعد 30 دقيقة مع Internal server error.

الحل البديل: إزالة محتويات الملف باستخدام DBCC SHRINKFILE (N'<file_name>', EMPTYFILE) الأمر. إذا كان هذا هو الملف الوحيد في مجموعة الملفات التي تحتاج إلى حذف البيانات من الجدول أو القسم المقترن بمجموعة الملفات هذه قبل تقليص الملف، وتحميل هذه البيانات اختياريّاً في جدول/قسم آخر.

يتم حظر تغيير مستوى الخدمة وإنشاء عمليات مثيل بواسطة استعادة قاعدة البيانات الجارية

ستعمل جملة RESTORE الجارية وعملية ترحيل خدمة ترحيل البيانات والاستعادة المدمجة في نقطة زمنية معينة على منع تحديث طبقة الخدمة أو تغيير حجم المثيل الموجود وإنشاء مثيلات جديدة حتى تنتهي عملية الاستعادة.

عملية الاستعادة سوف تمنع هذه العمليات على المثيلات المدارة وتجمعات المثيلات في نفس الشبكة الفرعية حيث يتم تشغيل عملية الاستعادة. لا تتأثر المثيلات في تجمعات المثيل. لن تفشل أو تتغير أو تنتهي عمليات إنشاء مستوى الخدمة. وسوف تستمر بمجرد اكتمال عملية الاستعادة أو إلغائها.

الحل البديل: انتظر حتى تنتهي عملية الاستعادة، أو أَلْغِ عملية الاستعادة إذا كانت عملية إنشاء أو تحديث مستوى الخدمة لها أولوية أعلى.

قد تحتاج إلى إعادة تكوين Resource Governor على مستوى الخدمة Business Critical بعد تجاوز الفشل

قد تقوم الميزة Resource Governor التي تمكنك من الحد من الموارد المعينة لحمل عمل المستخدم بتصنيف بعض حمل عمل المستخدم بشكل غير صحيح بعد تجاوز الفشل أو تغيير بدأه المستخدم لمستوى الخدمة (على سبيل المثال، تغيير الحد الأقصى لـ vCore أو الحد الأقصى لحجم مثيل وحدة التخزين).

الحل: تشغيل ALTER RESOURCE GOVERNOR RECONFIGURE بشكل دوري أو كجزء من مهمة عامل الـ SQL التي تقوم بتنفيذ مهمة SQL عند بدء المثيل إذا كنت تستخدم Resource Governor.

وجوب إعادة تكوين مربعات حوار Service Broker عبر قاعدة البيانات بعد ترقية مستوى الخدمة

ستتوقف حوارات Service Broker عبر قواعد البيانات عن تسليم الرسائل إلى الخدمات في قواعد بيانات أخرى بعد عملية تغيير مستوى الخدمة. لا يتم فقدانالرسائل، ويمكن العثور عليها في قائمة انتظار المرسلين. أي تغيير vCores أو حجم التخزين لمثيل في المثيل المدار لـ SQL سيؤدي إلي تغيير service_broke_guid قيمة في sys.databases لكافة قواعد البيانات. أي DIALOG جملة أنشئت باستخدام BEGIN DIALOG تشير إلى Service Brokers في قاعدة بيانات أخرى ستتوقف عن تسليم الرسائل إلى خدمة الهدف.

الحل البديل: إيقاف أي نشاط يستخدم محادثات الحوار لـ Service Broker عبر قاعدة البيانات قبل تحديث مستوى خدمة ثم أعِدْ تهيئتها بعد ذلك. إذا كانت هناك رسائل متبقية لم يتم تسليمها بعد تغيير مستوى الخدمة، فاقرأ الرسائل من قائمة انتظار المصدر ثم قم بإعادة إرسالها إلى قائمة الهدف.

قاعدة بيانات مؤقتة تُستخدم أثناء عملية RESTORE

عند استعادة قاعدة بيانات في مثيل SQL المدار، ستقوم خدمة الاستعادة أولًا بإنشاء قاعدة بيانات فارغة بالاسم المرغوب لتخصيص الاسم على المثيل. بعد مرور بعض الوقت، سيتم إسقاط قاعدة البيانات هذه، وسيتم بدء استعادة قاعدة البيانات الفعلية.

تحتوي قاعدة البيانات الموجودة في الحالة استعادة مؤقتاً على قيمة GUID عشوائية بدلًا من الاسم. سيتم تغيير الاسم المؤقت إلى الاسم المطلوب المحدد في RESTORE العبارة بمجرد انتهاء عملية الاستعادة.

في المرحلة الأولية، يمكن للمستخدم الوصول إلى قاعدة البيانات الفارغة وحتى إنشاء جداول أو تحميل البيانات في قاعدة البيانات هذه. سيتم إسقاط قاعدة البيانات المؤقتة هذه عند بدء تشغيل خدمة الاستعادة للمرحلة الثانية.

الحل البديل: لا تقم بالوصول إلى قاعدة البيانات التي تقوم باستعادتها حتى ترى اكتمال الاستعادة.

تجاوز مساحة التخزين مع ملفات قاعدة بيانات صغيرة

قد تفشل عبارات CREATE DATABASE، ALTER DATABASE ADD FILE وRESTORE DATABASE لأن المثيل يمكن أن يصل إلى حد تخزين Azure.

يحتوي كل مثيل General Purpose من مثيل SQL المدار على 35 تيرابايت من التخزين محجوزة لمساحة القرص Premium Azure. يتم وضع كل ملف قاعدة بيانات على قرص فعلي منفصل. يمكن أن تكون أحجام الأقراص 128 غيغابايت، أو 256 غيغابايت، أو 512 غيغابايت، أو 1 تيرابايت، أو 4 تيرابايت. لا يتم حساب تكلفة المساحة غير المستخدمة على القرص، ولكن لا يمكن أن يتجاوز إجمالي أحجام قرص Azure Premium 35 تيرابايت. في بعض الحالات، قد يتجاوز المثيل المدار الذي لا يحتاج إلى 8 تيرابايت في المجمل حد Azure الذي يبلغ 35 تيرابايت على حجم التخزين بسبب التجزؤ الداخلي.

على سبيل المثال، قد يحتوي مثيل General Purpose للمثيل المدار لـ SQL على ملف كبير واحد بحجم 1.2 تيرابايت يوضع على قرص 4 تيرابايت. وقد يحتوي أيضاً على 248 ملفاً سعة كل منها 1 غيغابايت موضوعة على أقراص منفصلة سعة 128 غيغابايت. في هذا المثال:

  • حجم التخزين الإجمالي المخصص للقرص هو 1 × 4 تيرابايت + 248 × 128 غيغابايت = 35 تيرابايت.
  • المساحة المحجوزة الإجمالية لقواعد البيانات على المثيل هي 1 × 1.2 تيرابايت + 248 × 1 غيغابايت = 1.4 تيرابايت.

يوضح هذا المثال أنه في ظل ظروف معينة، وبسبب توزيع معين للملفات، قد يصل المثيل المدار SQL إلى حد 35 تيرابايت المحجوز لـ Azure Premium Disk المرفق عندما لا تتوقع ذلك.

في هذا المثال، قواعد البيانات الموجودة متابعة العمل ويمكن أن تنمو دون أي مشكلة طالما لم يتم إضافة ملفات جديدة. لا يمكن إنشاء قواعد بيانات جديدة أو استعادتها بسبب عدم وجود مساحة كافية لمحركات الأقراص الجديدة، حتى إذا لم يصل الحجم الإجمالي لكافة قواعد البيانات إلى حد حجم المثيل. الخطأ الذي تم إرجاعه في هذه الحالة غير واضح.

يمكنك تحديد عدد الملفات المتبقية باستخدام طرق عرض النظام. إذا وصلت إلى هذا الحد، فحاول إفراغ وحذف بعض الملفات الأصغر باستخدام عبارة DBCC SHRINKFILE أو التبديل إلى المستوى Business Critical الذي لا يحتوي على هذا الحد.

قيم GUID المعروضة بدلًا من أسماء قواعد البيانات

تعرض العديد من طرق عرض النظام وعدادات الأداء ورسائل الخطأ وXEvents وإدخالات سجل الأخطاء معرفات قاعدة البيانات GUID بدلًا من أسماء قاعدة البيانات الفعلية. لا تعتمد على معرفات GUID هذه لأنه يتم استبدالها بأسماء قاعدة بيانات فعلية في المستقبل.

الحل البديل: استخدام sys.databases طريقة العرض لحل اسم قاعدة البيانات الفعلي من اسم قاعدة البيانات الفعلية المحددة في نموذج معرفات قاعدة بيانات GUID:

SELECT name as ActualDatabaseName, physical_database_name as GUIDDatabaseIdentifier 
FROM sys.databases
WHERE database_id > 4;

يكون نطاق المعاملة على قاعدتَي بيانات داخل نفس المثيل غير معتمد

(تم الحل في مارس 2020) لا تعمل الفئة TransactionScope في .NET إذا تم إرسال استعلامَين إلى قاعدتَي بيانات ضمن نفس المثيل ضمن نفس نطاق المعاملة:

using (var scope = new TransactionScope())
{
    using (var conn1 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn1.Open();
        SqlCommand cmd1 = conn1.CreateCommand();
        cmd1.CommandText = string.Format("insert into T1 values(1)");
        cmd1.ExecuteNonQuery();
    }

    using (var conn2 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn2.Open();
        var cmd2 = conn2.CreateCommand();
        cmd2.CommandText = string.Format("insert into b.dbo.T2 values(2)");        cmd2.ExecuteNonQuery();
    }

    scope.Complete();
}

الحل البديل (غير مطلوب منذ مارس 2020): استخدم SqlConnection.ChangeDatabase(String) لاستخدام قاعدة بيانات أخرى في سياق اتصال بدلاً من استخدام اتصالَين.

يتعذر على وحدات CLR والخوادم المرتبطة أحياناً الإشارة إلى عنوان IP محلي

يتعذر على وحدات CLR في المثيل المدار لـ SQL والخوادم المرتبطة أو الاستعلامات الموزعة التي تشير إلى مثيل حالي في بعض الأحيان حل IP للمثيل المحلي. هذا الخطأ مشكلة عابرة.

يكون نطاق المعاملة على قاعدتَي بيانات داخل نفس المثيل غير معتمد

(تم الحل في مارس 2020) لا تعمل الفئة TransactionScope في .NET إذا تم إرسال استعلامَين إلى قاعدتَي بيانات ضمن نفس المثيل ضمن نفس نطاق المعاملة:

using (var scope = new TransactionScope())
{
    using (var conn1 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn1.Open();
        SqlCommand cmd1 = conn1.CreateCommand();
        cmd1.CommandText = string.Format("insert into T1 values(1)");
        cmd1.ExecuteNonQuery();
    }

    using (var conn2 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn2.Open();
        var cmd2 = conn2.CreateCommand();
        cmd2.CommandText = string.Format("insert into b.dbo.T2 values(2)");        cmd2.ExecuteNonQuery();
    }

    scope.Complete();
}

الحل البديل (غير مطلوب منذ مارس 2020): استخدم SqlConnection.ChangeDatabase(String) لاستخدام قاعدة بيانات أخرى في سياق اتصال بدلاً من استخدام اتصالَين.

لا يوجد حل

تسجيلات الدخول إلى Microsoft Azure Active Directory والمستخدمين غير مدعومين في SSDT

SQL Server Data Tools لا تدعم بشكل كامل تسجيلات الدخول إلى Microsoft Azure AD والمستخدمين.

انتحال أنواع تسجيل الدخول إلى Microsoft Azure AD غير معتمد

لا يتم اعتماد الانتحال باستخدام EXECUTE AS USER أو من أساسيات Microsoft Azure Active Directory EXECUTE AS LOGIN (Azure AD) التالية:

  • مستخدمو Microsoft Azure Active Directory المستعارون. يتم إرجاع الخطأ التالي في هذه الحالة: 15517.
  • تسجيل الدخول إلى Microsoft Azure Active Directory والمستخدمين استنادًا إلى تطبيقات Microsoft Azure Active Directory أو أساسيات الخدمة. يتم إرجاع الأخطاء التالية في هذه الحالة: 15517 و15406.

يجب إعادة تكوين النسخ المتماثل للعمليات بعد تجاوز الفشل الجغرافي

في حالة تمكين النسخ المتماثل للعمليات على قاعدة بيانات في مجموعة تجاوز الفشل التلقائي، يجب على مسؤول المثيل المدار لـ SQL تنظيف كافة المنشورات الموجودة على الأساسي القديم وإعادة تكوينها على الأساسي الجديد بعد حدوث تجاوز الفشل إلى منطقة أخرى. لمزيد من المعلومات، راجع النسخ المتماثل.

تتم إعادة إنشاء هيكل Tempdb والمحتوى

tempdbيتم تقسيم قاعدة البيانات دوماً إلى عدد 12 من ملفات البيانات ولا يمكن تغيير بنية الملف. لا يمكن تغيير الحد الأقصى لحجم الملف، ولا يمكن إضافة ملفات جديدة إلى tempdb. تتم دائماً إعادة إنشائه Tempdb كقاعدة بيانات فارغة عند بدء المثيل أو فشله، ولن يتم الاحتفاظ بأي تغييرات تم إجراؤها في tempdb.

سجلات الخطأ غير مستمرة

لا يتم استمرار سجلات الأخطاء المتوفرة في المثيل المدار SQL، ولا يتم تضمين حجمها في الحد الأقصى للتخزين. قد يتم مسح سجلات الأخطاء تلقائيًا في حالة حدوث تجاوز الفشل. قد تكون هناك فجوات في سجل الأخطاء بسبب نقل مثيل SQL المدار عدة مرات على عدة أجهزة افتراضية.

تم الحل

عند استخدام مصادقة SQL Server، فإن أسماء المستخدمين التي تحتوي على "@" غير مدعومة

أسماء المستخدمين التي تحتوي على الرمز "@" في المنتصف (على سبيل المثال 'abc@xy') لا تستطيع تسجيل الدخول باستخدام مصادقة Microsoft SQL Server.

استعادة النسخ الاحتياطي اليدوي دون CHECKSUM قد تفشل

في ظروف معينة، قد يفشل النسخ الاحتياطي اليدوي لقواعد البيانات التي تم إجراؤها على مثيل مدار بدون CHECKSUM في استعادة. في مثل هذه الحالات، حاول إعادة استعادة النسخ الاحتياطي حتى تنجح.

الحل البديل: خذ النُّسَخ الاحتياطية اليدوية لقواعد البيانات على المثيلات المدارة مع تمكين CHECKSUM.

يصبح عاملًا لا يستجيب عند تعديل، أو تعطيل، أو تمكين مهام موجودة

في ظروف معينة، قد يؤدي تعديل أو تعطيل أو تمكين مهمة موجودة إلى عدم استجابة العامل. يتم تخفيف المشكلة تلقائيًا عند الكشف عن الأمر؛ ما يؤدي إلى إعادة تشغيل عملية العامل.

أذونات على مجموعة الموارد غير مطبقة على المثيل المدار SQL

عند تطبيق دور Azure لمساهم المثيل المدار لـ SQL على مجموعة موارد (RG)، فإنه لا يطبق على المثيل المدار لـ SQL وليس له تأثير.

الحل البديل: إعداد دور مساهم للمثيل المدار SQL للمستخدمين على مستوى الاشتراك.

يمكن مقاطعة مهام عامل SQL عن طريق إعادة تشغيل عملية العامل

(تم حلها في مارس 2020) عامل SQL ينشئ جلسة عمل جديدة في كل مرة يتم فيها بدء مهمة؛ ما يزيد استهلاك الذاكرة تدريجيّاً. لتجنب الوصول إلى حد الذاكرة الداخلية، والتي قد تمنع تنفيذ المهام المجدولة، ستتم إعادة تشغيل عملية العامل بمجرد أن يصل استهلاك الذاكرة الخاصة به إلى عتبة. قد يؤدي ذلك إلى مقاطعة تنفيذ المهام قيد التشغيل في لحظة إعادة التشغيل.

المعلمة @query غير معتمدة في sp_send_db_mail

المعلمة @query في الإجراء sp_send_db_mail لا تعمل.

رسالة خطأ مضللة على مدخل Microsoft Azure تقترح إعادة إنشاء Service Principal

قد تُظهر شفرة مسؤول Active Directory من مدخل Microsoft Azure لمثيل Azure SQL المدار رسالة الخطأ التالية على الرغم من وجود Service Principal بالفعل:

"المثيل المدار يحتاج إلى Service Principal للوصول إلىMicrosoft Azure Active Directory. انقر هنا لإنشاء Service Principal"

يمكنك إهمال رسالة الخطأ هذه إذا كان كيان الخدمة للمثيل المدار موجودة بالفعل و/أو مصادقة Azure Active Directory تعمل على المثيل المدار.

للتحقق مما إذا كانت Service Principal موجودة، انتقل إلى صفحة Enterprise applications على مدخل Microsoft Azure Active Directory، واختر Managed Identities من القائمة المنسدلةApplication type، وانقر فوق Apply، واكتب اسم المثيل المدار في مربع البحث. إذا ظهر اسم المثيل في قائمة النتائج، فإن Service Principal موجود بالفعل ولا يلزم اتخاذ أي إجراءات أخرى.

إذا كنت قد اتبعت الإرشادات من رسالة الخطأ بالفعل، ثم نقرت فوق الارتباط من رسالة الخطأ، فقد تمت إعادة إنشاء Service Principal للمثيل المدار. في هذه الحالة، الرجاء تعيين أذونات قراءة Microsoft Azure Active Directory إلى Service Principal المُنشأ حديثاً لكي تعمل مصادقة Azure AD بشكل صحيح. ويمكن القيام بذلك عن طريق Azure باورشيل باتباع الإرشادات.

المساهمة في المحتوى

إذا كنت ترغب في المساهمة في وثائق Azure SQL Automation، فراجع دليل المساهمين في المستندات.

الخطوات التالية

للحصول على قائمة بتحديثات وتحسينات SQL Managed Instance، راجع تحديثات خدمة SQL Managed Instance.

للحصول على التحديثات والتحسينات على كافة خدمات Azure، راجع تحديثات الخدمة.