Go to previous topic
Go to next topic
آخرين ارسال 16 مرداد 1393 12:06 ب.ظ توسط اعتمادی
استفاده از نرم افزار نوسا به همراه SQL Server 2012, 2014
�0 پاسخ
مرتب:
مولف پيغام ها
اعتمادی
کاربر پیشرفته
کاربر پیشرفته

--
16 مرداد 1393 12:06 ب.ظ
    سلام

    نمی‌توان از نسخه های قبل از 405 سیستم به همراه نسخه‌های 2012 و 2014 از SQL Server استفاده کرد. دلیل این وضعیت سیاست backward compatibility در SQL Server است و این مشکل در نسخه 405 رفع شده است ، اما نکات مهمی وجود دارند که در این مطلب شرح خواهیم داد.


    سیر تکاملی SQL Server

    SQL Server تا پیش از نسخه 7 یک محصول بومی Microsoft نبوده است و عملا محصول یکی از شرکت‌هایی بوده که MS آنرا خریداری کرده بود. نسخه 7 این نرم‌افزار از ابتدا توسط MS تولید می‌شود و به همین دلیل SQL Server از نسخه 7 به بعد نسبت به نسخه‌های پیش از آن یک نرم‌افزار کاملا جدید به حساب می‌آید (نه نسخه جدیدی از نرم‌افزار قبلی). شبیه این وضعیت در سیستم‌های DOS ما و مقایسه آنها با سیستم XP هم قابل تشخیص است.

    از نسل جدید تا به حال نسخه‌های زیر از SQL Server ارائه شده‌اند: 7، 2000، 2005، 2008، 2008R2، نسخه 2012 و نسخه 2014.

    هر یک از این نسخه‌ها Editionهای متعددی دارند - از Desktop یا Express تا Enterprise و جدیدا Cloud. اکثر این ویرایش‌ها به صورت 32 یا 64 بیتی تولید شده‌اند. تفاوت این ویرایش‌ها اولا در سیستم عاملی است که باید برای اجرای آنها استفاده شود (سرور یا کلاینت یا Home یا Std) و ثانیا در حجم عملیاتی است که می‌توانند پردازش کنند (اندازه پایگاه‌ها و تعداد کاربران همزمان) و ثالثا در برخی امکانات جانبی مثل Replication یا Analysis Services.


    نسخه‌ای که ما پشتیبانی می‌کنیم

    در زمانی که ما شروع به توسعه سیستم کرده بودیم، نسخه 2000 از SQL Server ارائه شده بود و ما همان نسخه را به عنوان پایه مورد استفاده قرار دادیم. به دلایلی در این سال‌ها همچنان نسخه 2000 را به عنوان پایه لحاظ کرده‌ایم به این معنی که سیستم ما در زمان اتصال به SQL Server انتظار یک سرور نسخه 2000 به بالا را دارد. همچنین روش تعریف جدول‌ها و تریگرها و سایر کدهایی که در پایگاه اطلاعاتی پیاده کرده‌ایم مطابق تعریف 2000 بوده است که البته همین تعریف در همه نسخه‌های بعدی هم کماکان برقرار است.

    به دلایلی تغییر نسخه پایه (مثلا از 2000 به 2008) برای سیستم ما عاقلانه نیست: اولا تعداد زیادی از مشتریان ما در حال حاضر از 2000 استفاده می‌کنند. تغییر نسخه پایه سیستم ما به این معنی است که این مشتریان باید SQL Server خود را upgrade نمایند. این وضعیت البته به خودی خود اشکالی ندارد اما باید توجیه کافی برای این زحمت (که بیشتر آن برعهده همکاران من در بخش پشتیبانی شرکت خواهد بود) داشته باشیم.

    ثانیا قسمت عمده‌ای از امکانات نسخه‌های جدید (در زمینه XML یا dot Net یا Cloud) برای ما فاقد کاربرد است. البته امکانات بسیار جالبی در مورد جداول Sparse در 2008R2 وجود دارد که اگر در سیستم دستمزد از آنها استفاده کنیم حجم پایگاه‌ها را بسیار کاهش می‌دهد. اما الف) این امکانات برای ما حیاتی نیستند و ب) در صورتی که در آینده با اندازه پایگاه‌های دارای دستمزد مشکل داشته باشیم می‌توانیم این امکانات را مثلا در Admin پیاده کنیم و در زمان استفاده از آنها کنترل کنیم که سرور حداقل 2008R2 باشد - هر چند با این وضعیت هارد و سرورهایی که مشتریان از آنها استفاده می‌کنند و درخواست‌هایی که برای اضافه کردن تصویر به داده‌های ما از طرف کاربران ارائه می‌شود نگرانی ما در مورد اندازه پایگاه‌ها مثل نگرانی‌های دایه مهربان‌تر از مادر است!

    ثالثا SQL Serverهای جدید نصب بسیار زمان‌بر و پیچیده‌ای دارند. هنوز بهترین گزینه برای برپاسازی سیستم در بسیاری از موارد همان SQL 2000 DE-SP4 است که در زمان کمتر از یک دقیقه نصب می‌شود و هیچ دردسری هم ندارد.

    خوشبختانه امکاناتی که ما استفاده می‌کنیم همگی در همه نسخه‌های SQL Server از 2000 تا 2014 پشتیبانی می‌شوند و نیازی هم به تغییر نسخه پایه (تا امروز) پیش نیامده است.


    سیاست Microsoft در پشتیانی نسخه‌های قبلی

    همانطور که گفتم، نسخه‌های 2000 تا 2014 با هم Compatible اند - یعنی اگر یک پایگاه را با نسخه 2000 درست کرده باشیم و در آن کد نوشته باشیم می‌توان از همان پایگاه در نسخه‌های بعدی (تا 2014 که فعلا وجود دارد) استفاده کرد. البته برخی تفاوت‌ها وجود دارند که تا به حال (پیش از 2012) ما را آزار نداده بودند و اینک در 2012 باید به آنها بپردازیم که در بندهای بعدی شرح خواهیم داد. نکته قابل توجه اما این است که هسته اصلی نسخه‌های متفاوت SQL Server یکسان است.

    اما سیاست Microsoft در پشتیبانی محصولاتش چنین است که مستقل از اینکه چند سال از ارائه محصول گذشته باشد، پشتیبانی از آن فقط تا ارائه 3 نسخه بعدی ادامه پیدا می‌کند. مثلا در زمان ارائه نسخه 2008 هنوز همه نسخه‌های 7 و 2000 و 2005 پشتیبانی می‌شدند و در زمان ارائه نسخه 2008R2 دیگر پشتیبانی نسخه 7 انجام نمی‌شد - البته نسخه 2000 کماکان پشتیبانی می‌شد.

    این عدم پشتیبانی به این معنی است که 1/ update و service pack برای نسخه‌های قدیمی ارائه نمی‌شود. 2/ پشتیبان تهیه شده از نسخه قبلی بازیابی نمی‌شود. 3/ فایل‌های حاوی پایگاه‌هایی که پیش از این به سرور نسخه قبلی مربوط بوده‌اند قابل معرفی به نسخه جدید نیستند.

    البته این سیاست برای Microsoft فقط در مورد اول فایده مستقیم دارد؛ در دو مورد بعدی صرفا به این منظور اعمال می‌شود که کاربران مجبور به خرید نسخه‌های جدید شوند. وگرنه در داخل سیستم هیچ مشکلی وجود ندارد و backward compatibilty تا میزان زیادی (حداقل تا نسخه 2014) دیده می‌شود.


    Local DB

    SQL 2012 دارای یک ویرایش جدید به نام Local DB است که حتی از Desktop Edition یا Express هم کوچکتر است. این ویرایش برای کمک به برنامه‌نویسان تولید شده است. با استفاده از آن می‌توان بدون نیاز به نصب مجدد SQL Server به تعداد دلخواه instance با اسامی دلخواه ایجاد کرد. با توجه به کوچک بودن این ویرایش، برای تولید برنامه‌های کوچک بدون نیاز به سرور بسیار مناسب است. احتمالا در آینده ویرایش‌های مناسب برای Windows Phone و RT (مناسب برای Tabletها) هم مبتنی بر همین ویرایش تولید خواهند شد.

    متاسفانه این ویرایش به صورت Service در رایانه سرور نصب نمی‌شود. استفاده از default instance بدون ذکر نام رایانه و instance هم در آن میسر نیست. به همین دلیل استفاده از آن برای معماری سیستم ما میسر نیست و ما نمی‌توانیم آنرا پشتیبانی کنیم - ضمن اینکه برای اتصال به آن نمی‌توان از MDACهای استاندارد مایکروسافت که در همه Windowsها وجود دارد استفاده کرد و حتما لازم است تا نرم‌افزارهای ارتباط به سرور اختصاصی نصب شود. این وضعیت، به خصوص در هدیه برای ما بسیار نامطلوب است.




    ---