عمومی

شرح کاملی از خطاهای رایج هنگام ارتباط با دیتابیس در ۲۰۰۸ MS-SQL

Sql مخفف structure query language و یک زبان استاندارد برای دسترسی و نگهداری دیتابیس می باشد.همچنین این زبان برنامه نویسی جزء استاندارهای ANSI است. با وجود استاندارد بودن Sql نسخه های متفاوتی از آن وجود دارد. خطاهای مختلف هنگام اتصال به دیتابیس جز مواردی هستند که اغلب اوقات برنامه نویسان را دچار مشکل می کنند. در ادامه مقاله رایج ترین آنها توضیح داده شده اند.

 

دلایل اصلی و ریشه ای عدم اتصال به دیتابیس شامل موارد زیر می باشد:

– Sql هنوز اجرا نشده و یا به طور صحیح عمل نمی کند.

– مسیر شبکه بین سرویس گیرنده (کامپیوتر شما) و سرویس دهنده (سرور) شکسته و یا موقتا کار نمی کند.

– اکانت کاربری استفاده شده جهت اتصال به دیتابیس دارای مجوزهای دسترسی نمی باشد.

برای رفع مورد اول SQL query analyzer  را در سرور اجرا کنید. اگر با خطای connection times out  مواجه شدید، بدین معنی است که sql server دچار مشکل شده و یا در حدی مشغول است که توانایی پردازش request ها را ندارد. برای تشخیص busy بودن آن کافی است با فشردن سه کلید Alt+Ctrl+Del اقدام به باز کردن taskmanager نموده و میزان cpu usage را مشاهده نمایید.

برای رفع مورد دوم از منوی start گزینه run و سپس فرمان CMD را اجرا نمایید. در محیط command prompt دستور زیر را اجرا نمایید :

C:> telnet [severname] 1433

تا مطمئن شوید که Sql سرور روی پورت TCP ، شنود می کند. اگر ارتباط با پورت با موفقیت انجام شد مکان نما شروع به چشمک زدن کرده و صفحه command prompt پاک می شود در غیر اینصورت خطایی نمایش داده خواهد شد.عمده دلیل بسته بودن پورت مشکلات DNS می باشد که در این رابطه می توانید با مدیر شبکه مشاوره نمایید. همچنین تنظیمات Firewall هم می تواند باعث بسته شدن پورت TCP شده باشد.

برخی اوقات به دلیل مشکلات indexing بر روی دیتابیس و با توجه به اینکه دیتابیس آنلاین بوده و کاربران زیادی از آن استفاده نموده ، با ارسال queries های فراوان بر کارایی آن تاثیر می گذارند و سرور توانایی مدیریت درخواست ها را نخواهد داشت. راه حل مناسب در این حالت pause کردن sql است تا بتواند قبل از دریافت هرگونه درخواست جدیدی کارهای قبلی را به اتمام برساند.لازم است بدانید  connectionها و سایر فرآیندها به کار خود ادامه خواهند داد اما Sql server هیچ گونه connection جدیدی را پذیرش نمی کند. با pause کردن sql میزان مصرف cpu کاهش پیدا می کند.

بعد از اتصال به سرور مجددا sql را در حالت pause قرار دهید در این حالت sql آماده ی دریافت کار جدید خواهد بود.

 انجام کارهای زیر تا حد زیادی از بروز خطاهای ارتباطی در sql server جلوگیری به عمل می آورد :

استفاده از آخرین نسخه ی sql server ، یکسان بودن پروتکل شبکه بین کامپیوتر شما و سرور ، مثلا اگر client از پروتکل ipx/spx برای اتصال به دیتابیس استفاده می کند این پروتکل بر روی سرور هم نصب شده باشد در غیر اینصورت قادر به برقراری ارتباط نخواهد بود.

در ادامه خطاهای رایج هنگام اتصال به دیتابیس آورده شده است :

خطای Specified SQL Server not found :

برای رفع این خطا ، مطمئن شوید نامی را که در قسمت sql servername وارد کرده اید درست بوده و سرویس sqlserver که به آن متصل شده اید در حالت start قرار داشته باشد و همچنین بررسی کنید که client و server از net –library یکسانی استفاده می کنند.

عدم لاگین با سایر کاربران دیتابیس:

مطمئن شوید که گزینه ی single user در حالت Off قرار داشته باشد. اگر این گزینه فعال باشد فقط یک کاربر می تواند به دیتابیس  لاگین کند.

همچنین بررسی کنید کاربری که از طریق آن لاگین کرده اید در دیتابیس موجود و مجوزهای لازم را داشته باشد.

فعال بودن گزینه ی  DBO use only :

اگر خطایی مبنی بر اینکه تنها مالک دیتابیس می تواند به آن دسترسی داشته باشد را دریافت کردید بدین معنی است که گزینه ی ‘DBO use only’ در وضعیت فعال قرار دارد بنابراین اگر می خواهید سایر کاربران هم به دیتابیس دسترسی داشته باشند آن را درحالت Off قرار دهید.

خطای Assertion failed هنگام اتصال به دیتابیس

اگر هنگام اتصال به sql server از طریق tcp /ip خطایی مانند Assertion failed را دریافت کردید اقدام به نصب Client for Microsoft Networks بر روی سرور نمایید.

نمایش خطای Specified SQL Server not found در زمان اجرای برنامه:

 این پیام هنگام لودشدن فایل  mdf سنگین ظاهر می شود. در این حالت قبل از اجرای کامل sql server، سرویس  connection ایجاد شده و باعث بروز خطا می شود.

 اگر هنگام اتصال به sql server  از طریق QUERY ANALYZER با این خطا مواجه شدید در زمانهای دیگری اقدام به اتصال به sql  نموده و یا SQL SERVER را از طریق Service manager دوباره اجرا کنید.

 خطای ۱۷۸۲۴:

اگر خطای ۱۷۸۲۴ را دریافت کردید اتصلات شبکه را بررسی نموده و یا گزینه ی ‘priority boost’ در sql server را به مقدار پیش فرض آن تغییر دهید.

خطای Server Error in ‘/’ Application هنگام خواندن داده ها از پایگاه داده :

 این خطا معمولا هنگامی رخ می دهد که شما connection string مناسب رو انتخاب نکرده باشید بنابراین سایر فیلدهای آن را بررسی و از صحیح بودن آدرس دیتابیس سرور ، نام کاربری و کلمه ی عبور و نام دیتابیس اطمینان حاصل فرمایید. ضمنا جهت مشاهده ی نمونه connection-string  های sqlserver به لینک زیر مراجعه نمایید :

http://www.connectionstrings.com/sql-server-2008

منابع :

www.siusic.com

http://www.w3schools.com/sql/sql_intro.asp

با کارت بانکی باشگاه ایران هاست پولتان به حسابتان باز می گردد.

همین حالا رایگان عضو شوید

مدیر بلاگ

مشخصات مدیر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید

بستن
دکمه بازگشت به بالا
بستن
بستن