دانلود درس 6: | بارگذاری |
مدرس:
مهندس محسن بندامیر
حجم فایل:
23 مگابایت
مدت زمان:
00:12:00
نوع آموزش:
تصویری و کاملاً فارسی
1- آشنایی با AlwaysOn
2- راه حل مشکل قطع ارتباط با سرور 3- راه حل بروز مشکلات سخت افزاری سرور 4- راه حل مشکلات Crash کردن سرور 5- بانک اطلاعاتی همیشه در دسترس 6- قابلیت high-availability 7- معرفی سرفصل های فیلم آموزشی |
مدرس:
مهندس محسن بندامیر
حجم فایل:
18 مگابایت
مدت زمان:
00:11:00
نوع آموزش:
تصویری و کاملاً فارسی
1- مراحل راه اندازی AlwaysOn
2- نحوه ی عملکرد AlwaysOn در SQL 3- دستیابی به High Availability 4- Load Balancing در AlwaysOn و ... |
مدرس:
مهندس محسن بندامیر
حجم فایل:
65 مگابایت
مدت زمان:
00:34:00
نوع آموزش:
تصویری و کاملاً فارسی
1- معماری AlwaysOn و تعامل برنامه با آن
2- آشنایی با مفاهیم Failover- Failback 3- آشنایی با Load Balancing 4- اجرای پروژه عملی تحت ویندوز 5- اجرای پروژه عملی تحت وب |
JoomShopping Download & Support
دیدگاهها
خوب بود
سلام
من می خوام این پکیج رو خریداری کنم ،اما این با SQL server 2012 پیاده سازی شده و ما از نسخه ۲۰۱۴ استفاده میکنیم !! آیا خیلی این دو محیط تو always on تفاوت داره؟چه تفاوتهایی؟
سلام
در آموزش گام به گام راه اندازی AlwaysOn از نسخه sqlserver 2014 , windows server 2012 R2 استفاده شده است.
اگر چه کلیات پیاده سازی این تکنولوژی در نسخه های 2012- 2014 و 2016 یکسان می باشد. اما پیشنهاد می کنم در صورت امکان از جدیدترین نسخه های sqlserver و windows server استفاده کنید.
به عنوان مثال در Windows Server2012 R2 شما ویژگی بسیار کاربردی Dynamic Quorum رو در مقایسه با نسخه های قبلی دارین (در آموزش Quorum در راه اندازی AlwaysOn کامل توضیح داده شده است).
یا در Sqlserver2016 بهبودهای زیر نسبت به نسخه های قبلی وجود دارد:
سلام جناب مهندس
تو سازمان ما سرور دیتابیس ویندوز 2012 معمولی هست و فعلا بخاطر یک سری دلایل قصد اپگرید نداریم
من پکیج رو خریداری کردم و تا اواسطش رو دیدم، اما اینجور که مشخصه بحث dynamic qorum تو win server 2012 معمولی منتفیه
حالا من با دوتا نود (که هر کدوم بیفته من کلاستر رو از دست میدم) چجوری میتونم HA داشته باشم
سلام
شما با وجود دو نود در کلاستر نیاز به راه اندازی Witness دارین. دو نوع Witness می تونین داشته باشین که نوع اول نیاز به وجود Shared Disk داره و نوع دوم(FSW) تنها با ایجاد یک Folder امکان پذیره . این موارد به طور کامل در آموزش Witness در راه اندازی AlwaysOn توضیح داده شده اند.
در مورد Quorum نیز در windows 2012 به مشکلی بر نمی خورین. تنها در صورت داشتن بیش از دو نود (Disaster Recovery) نیاز به تنظیم Quorum به صورت دستی می باشد. آموزش Quorum در راه اندازی AlwaysOn را مشاهده بفرمایید.
چند نکته:
توصیه میکنم حتما آموزش ها رو تا انتها مشاهده بفرمایید.
حتما سناریوهای عملی پیاده سازی شده در طول آموزش رو پیاده سازی کنید. (موارد مورد نظر شما در آموزش به صورت عملی پیاره سازی شده اند)
ممنون جناب مهندس
اما ما تو سازمان ویندوزمون 2012 معمولی هست و نه R2
حالا با بحث dynamic quarom چه کنم؟
من پکیج رو خریداری کردم ولی کماکان مشکل پابرجاست
از دو نود من هر کدوم بیفتن کل کلاستر رو از دست میدم.
(البته کل پکیج رو هنوز ندیدم)
به سؤال شما پاسخ داده شد.
لطفا در مورد نحوه دسترسی دادن دومین اکانت مربوط به اسکیوال سرویس توضیح بدید
سه مورد اول را توی گروپ پلیسیها پیدا کردم اما در مورد سه مورد آخر اعم از
Permission to start SQL Writer
Permission to read the Event Log service
Permission to read the Remote Procedure Call service
لطفا قدری توضیح بدین ممنون
سلام
همانطور که در آموزش گام به گام راه اندازی AlwaysOn توضیح داده شده است، در زمان نصب Sqlserver، جهت تعین اکانت برای سرویس ها از Domain User استفاده میکنیم ( از این یوزر دامینی، در زمان نصب Sqlserver روی تمام سرورهای عضو کلاستر استفاده می کنیم).
البته بک رویکرد دیگر این هست که به ازای هر سرور یک اکانت دامینی متفاوت (مثلا ترکیبی از نام سرور و ...) ایجاد کنیم.
در هر حال بعد از نصب Sqlserver روی سروها، در صورتیکه تنها از یک یوزر دامینی مشترک در همه سرورها ( در مراحل نصب Sqlserve جهت راه اندازی سرویس ها) استفاده شده باشد. نیاز به تنظیم دسترسی خاصی نیست و دسترسی های مورد نیاز به طور خورکار تنظیم شده اند
اما اگر برای هر سرور یوزر دامینی متفاوتی در نظر گرفته باشید، دو روش جهت ایجاد دسترسی های لازم وجود دارد:
روش اول:
در هر سرور، یوزرهای دامینی مربوط به سرورهای دیگر را با دسترسی Sysadmin در Sqlserver به عنوان Login User ایجاد کنید.
روش دوم:
در هر سرور، در sqlserver نصب شده، به تعداد یوزرهای دامینی (به غیر از یوزر دامینی که برای سرور جاری تنظیم شده)Login User ایجاد کنیم و دسترسی های موجود در فایل word ضمیمه آموزش گام به گام راه اندازی AlwaysOn را برای این Login User ها تنظیم نمایید
سلام
لطفا در مورد نحوه دسترسی دادن دومین اکانت مربوط به اسکیوال سرویس توضیح بدید
سه مورد اول را توی گروپ پلیسیها پیدا کردم اما در مورد سه مورد آخر اعم از
Permission to start SQL Writer
Permission to read the Event Log service
Permission to read the Remote Procedure Call service
لطفا قدری توضیح بدین ممنون
با سلام
سؤال شما قبلا پاسخ داده شده است.
در مورد تنظیم دسترسی های لازم، همونطور که اشاره کردم اگر در مراحل نصب Sqlserver از اکانت دامینی یکسانی برای سرویسهای sql در همه سرورها استفاده کنید(قسمت Service Accounts) نیازی به تنظیم دسترسی خاصی نیست و به طور خورکار دسترسی های لازم به این اکانت داده می شود.
همانطور که می دانید دلیل اینکه برا ی اجرای سرویس های SQL از یوزر دامینی استفاده می کنیم این هست که، یوزر اجرا کننده سرویس ها باید روی همه سرورهای موجود در کلاستر دسترسی داشته باشد ( مثلا برای Sync کردن دیتابیس ها روی همه سرورها). بنابراین از اکانت های پیش فرض خود Sqlserver مانند NT Service/Mss…. برای سرویس ها استفاده نکنید.
در پاسخ ارائه شده در بالا هم به این نکته اشاره کرده ام که اگر برای هر سرور در زمان نصب Sqlserver از اکانت های دامینی مختلفی استفاده کرد ه اید، بایستی این یوزرهای دامینی را در هر Sqlserver به عنوان یک لاگین یوزر با دسترسی Sysadmin ایجاد کنید. ( این روش ساده تر و بهترین هستش اما از جنبه امنیتی ضعیفه)
و اما در مورد سؤال شما در مورد تنظیم Low priority در DR Site ( ارسالی به ایمیل بنده)، دقت کنید با تنظیم این پارامتر دارین به کلاستر میگین در صورت بروز Split Brain (یعنی در صورتیکه ارتباط بین سایت اصلی و سایت DR قطع شود و شما تعداد رأی مساوی در هر سایت داشته باشید) به طور اتواتیک سایت DR را غیر فعال کنه و سایت اصلی شما برای حفظ High Availability همچنان فعال باقی می ماند. در حالیکه اگر در زمان راه اندازی کلاستر به صورت دستی رأی موجود در یک نود را با صفر تنظیم کنید، در واقع Dynamic Quruom دیگر رأی این نود را به صورت خودکار تنطیم نخواهد کرد.( این مورد با ذکر جزئیات و مثال در آموزش Quorum در راه اندازی AlwaysOnاشاره شده است)
آقای مهندس بند امیر
من یک سناریوی تستی را دنبال کردم. با دو نود و یک Quorume که عملا صحیح انتخاب نشده است تا با Shutdown یک نود عملا کلاسترینگ shutdown شود. (Node majurity)
حالا با یک سرور Primary روبرو هستم که دیتابیس های شرکت کننده در AG در حالت Not Synchronizing فرو رفته اند.
و اصلا با کلیک روی دیتابیس در دسترس نیست .
و در فولدر Availability Databases هم هیچ دیتابیسی وجود ندارد.
می خواهم با همین سناریو دیتابیس های سرور Primary را احیا کنم . چطور این کار امکان پذیر است. ممنون از راهنمایی های شما
سلام
قبل از هر چیز لازمه اشاره کنم که روش شما و تست سناریوهای مختلف قبل از پیاده سازی AlwaysOn کاری بسیار مناسب و در واقع یک پیش نیاز برای راه اندازی این تکنولوژی است
اما در رابطه با حالت خاصی که شما اشاره کرده اید:
اولا در زمانی که دو نود در کلاستر دارید جهت عملکرد صحیح کلاستر حتما باید Witness(FSW) را ایجاد کنید. این مورد به طور کامل در آموزش Witness در راه اندازی AlwaysOn توضح داده شده است.
دوما از آنجایی که شما با آگاهی از احتمال بروز این حالت ( آفلاین شدن کلاستر) این تست را انجام داده اید، دو راه حل زیر برای این حالت ارائه می شود:
1- با راه اندازی مجدد سرور ثانویه (Secondary)، مجددا کلاستر شما راه اندازی شده و دیتابیس ها نیز به وضعیت Synchronized بر خواهند گشت
2- اگر سرور ثانویه به هر دلیلی قابل راه اندازی نیست. می توانید از دستور ALTER DATABASE [test] SET HADR RESUME
و یا گزینه Resume Data Movement مطابق تصویر زیر استفاده کنید.
سلام آقاي مهندس بند امير
سناريويي براي راه اندازي HA كه پيش روي شركت ما هست را اگر اجازه دهيد با هم مرور كنيم تا اگر اشكالي داشت متوجه بشوم.
1- ما دو سرور اصلي داريم كه بايد براي هر دوي آنها HA رو تامين كنيم.
2- فقط يكي از اين سرورها (سرور1) هر دو نوع connection را دارد . هم dml و هم Readonly . سرور ديگر (سرور2) فقط dml است. كه سرور 2 فقط يك ديتابيس هم دارد.
سوال اول : بهترين چيدمان پيشنهادي براي HA اين سرورها چيست ؟
پيشنهاد اول : كه به نظرم حالت ايده ال هم هست : براي سرور1 : دو سرور يكي براي HA كه sync است و يكي براي readonly كه async است. پس مي شود يك كلاستر با سه نود. براي سرور 2 هم يك سرور ديگر. (كلاستر 2 نوده)
سوال دوم : آيا سروري كه براي HA در نظر مي گيريم را مي توانيم Readonly هم كنيم (هم sync و هم readonly) كه نياز به سرور ديگر نباشد؟ (با توجه به محدوديت منابع يعني كلاستر سرور يك را 2 نوده تعريف كنيم. )
اين روش چه مزايا و چه معايبي دارد؟
ممنون از زماني كه مي گذاريد.
سلام
قبل از پرداختن به سناریوی شما، چند نکته رو توضیح بدهم:
منظور شما از Readable بودن این هست که در تنظیمات AlwaysOn، مقدار Readable Secondary به ازای یک سرور برابر با Yes تنظیم شود.
1- وضعیت Readable تنها برای Secondary مفهوم پیدا می کند. به طور خلاصه، به این معنا هست که در زمانی که یک سرور نقش Secondary را دارد، امکان اتصال مستقیم به این سرور وجود داشته باشد یا نه.(پس زمانی که یک سرور نقش Primary دارد، خود به خود Readable هم می باشد)
2- همانطور که در نمونه پیاده سازی شده AlwaysOn در برنامه تحت وب و ویندوز و آموزش گام به گام راه اندازی AlwaysOn توضیح داده شده است. شما در حالتیکه دو سرور را برای تأمین HA(High Availability) پیکربندی می کنید الزما باید Synchronous Commit باشند.
3- زمانی که یک سرور ثانویه به دلایلی مانند وجود مسافت بین این سرور با سایت اصلی، کاهش تأخیر عملیات در Primary و ... در وضعیت Asynchronous Commit تنظیم می شود. معمولا سرور ثانویه جهت توزیع بار (Load Balancing) و مباحثی مانند گرارشات و ... استفاده می شود.دقت کنید در این وضعیت دارای تأخیر در Sync شدن Secondary هستیم. در این حالت دیگر Primary منتظر دریافت پاسخ از Secondary نمی ماند.
به عنوان یک جمع بندی:
این موضوع که شما چه تعداد سرور در کلاستر داشته باشید و تنظیمات Readable , Synchronous Commit و ... به چه نحوی انجام شود به موارد زیادی مانند حجم عملیات در سرور، منابع سخت افزاری سرور، تعداد دیتابیس ها و کاربران، تأمین HA ، DR یا هر ذو و ... بستگی دارد.
در سناریوهایی که شما مطرح کردید، در حالت اول که سه عدد نود در کلاستر دارید، دو عدد از نودها Automatic Failover هستد و Synchronous Commit. نود سوم بهتر است در وضعیت Asynchronous Commit تنظیم شود و Readable Secondary برای این سرور Read-intent Only تنظیم شود تا برای توزیع بار و گزارشات از این سرور استفاده شود.(نحوه تنظیم کردن Read-intent Only و توزیع بار به طور کامل در نمونه پیاده سازی شده AlwaysOn در برنامه تحت وب و ویندوز توضیح داده شده است. اسکریپت های لازم هم همراه با آموزش گام به گام راه اندازی AlwaysOn قرار داده شده است).
در حالت دوم که دو نود در کلاستر دارید(این پیاده سازی رایجتر می باشد به دلیل سادگی و مدیریت راحت تر)، می توانید Readable Secondary را برای هر دو نود، Yes تنظیم کنید. باز به این نکته اشاره می کنم که تنظیم Readable Secondary تنها برای زمانی هست که سرور نقش ُSecondary داشته باشد. در این حالت می توان از طریق کنسول نیز به سرور ثانویه دسترسی داشته باشید.
در این حالت در صورت زیاد بودن تراکنش ها و حجم عملیات در سیستم، در صورتیکه تعداد Connectionها به Secondary زیاد باشد، امکان کاهش سرعت انجام عملیات در برنامه ها محسوس خواهد بود (زیرا Primary قبل از ارسال پاسخ به کلاینت، همیشه در حالت Synchronous Commit منتظر Sync شدن سرور ثانویه (Secondary) و دریافت Acknowledge از آن می ماند)
پیشنهاد می کنم آموزش سینک شدن داده در Alwayson (درس 10) را جهت آشنایی بیشتر با نحوه سینک شدن دیتابیس ها در Alwayson مشاهده بفرمایید.
سلام مجدد
سپاس بسيار از صبر و حوصله اي كه به خرج دادين و اين جواب مفصلتون. خيلي عالي بود.
در تكميل اين بحث مي خوام از موضوعي مطمئن شوم.
در حال حاضر امكانات شركت براي سرور هاي HA وجود ندارد. يعني فعلا فقط دو نود داريم. سرور اصلي و نودي براي DR.
1- آيا با دو نود باز هم تنظيم كروم (به نحوي كه اختلالات شبكه و يا اشكالات احتمالي نود dr تاثيري در ثبات كلاسترينگ نگذارد) همان Node and File Share Majority است.
2- آيا بعد از تهيه سرور هاي بعدي مي توان با اضافه كردن نود به اين كلاستر و تغيير كروم كار را پيش برد و يا بايد كلاسترينگ از ابتدا يجاد شود؟
سلام
در سناریوی مورد نظز شما، با توجه به وجود تعداد زوج نود (دو نود) باید حالت Node and File Share Majority را داشته باشید.
اگر فاصله بین دو سرور زیاد است بهتر است سرور ثانویه Asynchronous Commit باشد. در این حالت در صورت بروز مشکل برای سرور اصلی (Primary) باید عملیات جایگزینی (Failover ) به صورت دستی انجام شود.
شما بعد از راه اندازی کلاستر و Alwayson، در هر لحظه قادر هستید به راحتی اقدام به اضافه و یا حذف نود از کلاستر کنید. این کار از طریق کنسول Cluster Manager انجام می شود.
با سلام
آموزش HAشما را تهیه کردم. خیلی جالب بود. همیشه در درک اصولی Quorum و Wittness ابهام داشتم.
سوال:
1- ویندوزی که آموزش می دهید 2012 است و ما 2008 R2 داريم.
2-ما HA را در سه مرحله می خواهیم پیاده سازی کنیم.
2-1- دیتابیس اصلی ما روی یک دیتا سنتر اینترنتی است. در مرحله اول می خواهیم یک کپی از دیتابیس بالا روی شبکه Local خودمان داشته باشیم. برای همین هدف از Alwayson استفاده می کنیم. لذا در این مرحله هدف High Availability نیست . یعنی نود Secondary فقط حاوی یک Read only Replica خواهد بود و می خواهیم اگر خاموش یا Restart شد ، اشکالی در سیستم ایجاد نکند.
2-2- و در مراحل بعدي سراغ HA و DR در ديتاسنترهاي اصلي مي رويم.
سوال من در مرحله اول :
- آيا بهترین راه این است که یک کلاسترینگ دو نود ایجاد کنیم و یک Wittness را بصورت File share روی همان سرور اصلی ایجاد نماییم؟
- و یا اینکه حق رای را از secondary بگیریم که حقی در غیر فعال شدن کلاسترینگ نداشته باشد.
(سایت و در نتيجه ديتابيس اصلي همیشه بايد ON باشد.)
ممنون
با سلام
در پکیج آموزش صفر تا صد Alwayson، جهت پیاده سازی تکنولوژی Alwayson از Windows server 2012R2 استفاده شده است. اگر اسلاید شماره 8 را در آموزش Quorum در راه اندازی AlwaysOn (درس شماره 7) مشاهده نمایید. تغییرات Quorum در نسخه های مختلف ویندوز سرور توضیح داده شده است. با توجه به وجود دو Feature ارزشمند Dynamic Quorum و Dynamic Witness در Windows server 2012R2 که عدم نیاز به پشتیبانی مداوم و خودکار شدن تنظیمات را برای شما فراهم می کند، شدیدا توصیه می کنم، در صورت امکان به این ورژن مهاجرت نمایید.
همانطور که می دانید هدف از تکنولوژی Alwayson تأمین HADR است که در سناریویی که شما مطرح نموده اید هم هر دوی این موارد وجود دارد. سناریوی شما شباهت زیادی به نمونه پیاده سازی شده Alwayson، که در ابتدای آموزش Quorum در راه اندازی AlwaysOn ( دقیقه 06:10 از این آموزش) توضیح داده شده است دارد.
طبق مراحلی که شما اشاره کرده اید (مرحله اول تا سوم)، شما دارای چهار نود در کلاستر هستید و این یعنی تعداد زوج نود، از آنجایی که در Windows server 2008R2 بحث Dynamic Quorum و Dynamic Witness را نخواهیم داشت لازم است به موارد زیر توجه کنید:
1- در تنظیم Quorum حالت Node and File Share Majority را انتخاب کنید.
2- دقت بفرمایید همانطور که در آموزش Witness در راه اندازی AlwaysOn توصیه شده است Witness(FSW) نباید روی هیچ یک از سرورهای موجود در کلاستر ایجاد شود.احتمالا منظور شما Datacenter اصلی بوده است، که در اینصورت، باید حتما FSW روی یک سرور( غیر از سرورهای موجود در کلاستر) با دسترسی پذیری بالا ایجاد شود .
در مورد دو سؤال شما:
اینکه در پکیج آموزش صفر تا صد Alwayson از دو نود استفاده شده، به دلیل رایج بودن این شکل راه اندازی و تمرکز روی HA بوده است. شما در SQLSERVER2014 می توانید تا 8 نود در کلاستر داشته باشید که تنها دو عدد از این نودها می توانند Synchronous باشند (البته در SQL2016 این مورد به سه عدد ارتقائ داده شده است)
در مورد مرحله اول با هدف DR، دقیقا طبق انتظار شما، با Down شدن Secondary هیچ اتفاقی ذر سرویس دهی شما رخ نمی دهد. ( سناریوهای مختلف پیاده سازی شده Failure در درس های 7 و8 پکیج آموزش صفر تا صد Alwayson را مشاهده بفرمایید)
اینکه رأی Secondary را برابر با صفر در نظر بگیرید هم مربوط به Multi-Site Cluster و جلوگیری از Split Brain و همچنین جلوگیری ازDown شدن سایت اصلی، در این حالت از پیاده سازی می شود. مثلا زمانی که شما دو سایت با دو عدد نود در هر کدام دارید. رأی یک نود Secondary در سایت DR را بابر با صفر تنظیم می کنید تا در صورت قطع شدن ارتباط بین دو سایت، سایت اصلی شما از سرویس خارج نشود.( این مورد هم در درس های 7و8 پکیج آموزش صفر تا صد Alwayson توضیح داده شده است)
سلام
ممنون از سایت خوبتون
مشکلی بود که برام پیش اومده اینکه ایا امکان نداره کامپیوتری که dns server هست و domain controller نمیتونه کلاستر باشه؟ اگه میاونه روش انجامپکار چیه؟
با سلام.
مورد سؤال شما به طور کامل مرتبط با مباحث ویندوز سرور می باشد. اما به طور خلاصه راه اندازی Failover Clustering برای DC امکانپذیر نمی باشد. برای این مورد راه کار موجود مکانیزمی به نام Additional DC می باشد که علاوه بر Failover بحث LoadBalancing رو هم برای شما پشتیبانی می کند. (برای آشنایی بیشتر ویدئوهای آموزشی Trainsignal و Lynda پیشنهاد می شود.)
سرویس Failover Clustering برای سرویس هایی مانند: DHCP - Fileserver - Hyperv - SqlServer , ... امکان پذیر می باشد. به علاوه همانطور که می دانید کلا پیشنهاد می شود روی سرورهایی که DNS , DC نصب هستند سرویس جانبی دیگری نصب نشود به عنوان مثال را ه اندازی LinkedServer بر روی سروری که DC روی آن نصب باشد امکان پذیر نیست.
سلام
یه سناریو دارم اگه ممکنه نظرتون رو بفرمایید
من سه تا مکان مختلف دارم که هشون تو یه شبکه لوکال هستن
هر مکان یه سرور گذاشتم دو تا از سرورا اتومات فیل اور هست یکی منوال
الان ارتباط شبکه یکی از قسمتا که سرورش second بود قطع میشه
حالا سیستم های اون قسمت نمیتونن به دیتا بیس وصل بشن چون سرور مستقر second بود حالا چیکار میشه کرد تا وصل شدن شبکه شیستم های اون قسمت از همون سرور استفاده کنن یعنی اون خودش اوتومات primery بشه تا وصل شدن شبکه
بعدشم اینکه وقتی شبکه وصل شد چه اتفاقی میافته دوتا سرور primery داریم؟
سلام.
همانطور که میدانید با راه اندازی Alwayson،کلیه درخواست های کاربران از طریق Listener به Clusterتحویل داده می شود و نهایتا کلاستر درخواست را به سروری که در لحظه نقش Primary را دارد تحویل داده و پاسخ به سمت برنامه بر می گردد. بنابراین اگر برای Secondary اتفاقی بیفتد تنها وضعیت آن Secondary به Not Synchronizing تغییر پیدا میکند اما همچنان درخواست های شما پاسخگویی می شود.
دقت بفرمایید که رخ دادن Failover تحت شرایط خاصی می باشد. مباحث Failover , Failback به طور کامل در درس شماره4 توضیح داده شده اند و در این درس حالت مورد نظر شما با مثال عملی پیاده سازی شده است.