نیما جمشیدی
نیما جمشیدی
خواندن ۹ دقیقه·۴ سال پیش

یه دیتابیس ادمین واقعا چه کاری انجام می‌ده؟

یک DBA باید کنترل کنه که دیتابیس‌ها بک آپ دارن، به خوبی کانفیگ شده و بروز هستن، امنیت لازم رو دارن و سرعت عملکردشون مناسبه.

من شغلم رو اینجوری برای دوستانم تعریف می‌کنم : " گاهی دیدین سایتها کند هستن یا دیتا شما رو از دست میدن؟ این وظیفه منه که چنین اتفاقی نیوفته. من تنها فرد درگیر تو این ماجرا نیستم چون برنامه نویس‌ها و مهندس‌های دیگه هم هستن، اما من مسئول بخشی هستم که دیتا شما رو نگهداری می‌کنه مثل پروفایل‌تون ، سفارش‌هاتون، تاریخچه مرورگرتون و در واقع تمام دیتایی که شرکت ها در مورد شما جمع آوری کردن!!"

وظیفه یه دیتابیس ادمین چیه ؟

  • یه DBA باید کنترل کنه که همه دیتابیس ها به نحوی بک آپ داشته باشن که بیزینس سازمان رو برای Recovery Point Objectives (RPO) پوشش بدن.
  • تست کردن بک آپ های تهیه شده به صورت دوره ای.
  • رفع مشکلات پیش اومده برای دیتابیس بعد از ساعات کاری یا پایان هفته.
  • راه اندازی ابزار مناسب مانیتورینگ برای مانیتور کردن آنلاین خطاهای احتمالی.
  • با توجه به قابلیت‌های جدید فراهم شده تو دیتابیس‌ها، انتخاب اینکه چه زمانی از

clustering, log shipping, mirroring, Windows Azure

و دیگر تکنولوژی ها استفاده بشه.

  • نصب و راه اندازی سرور های جدید دیتابیس.
  • بروزرسانی سرورهای دیتابیس موجود.
  • اعمال change script ها روی دیتابیس.
  • وقتی که مشکل performance پیش میاد، تشخیص بهترین راه کار موجود برای بهبود کارایی سیستم شامل تغییرات سخت افزاری، تغییرات server configuration، یا ساخت ایندکس و اصلاح کوئری ها به عهده DBA هست.
  • داکیومنت کردن دیتابیس های سازمان و موارد مربوط به اون.
  • کمک به کاهش هزینه سرورهای سازمان با performance tuning، مشاوره های لازم و اصلاح حجم دیتابیس ها.

چرا وجود یه دیتابیس ادمین برای سازمان مهمه ؟

وقتی دیتابیس دان بشه، تمام بیزینس متوقف می‌شه. اگه شما فروشنده آنلاین هستین و وب سایت شما دان بشه، قطعا یه وضعیت اورژانس پیش میاد. حتی با کند شدن دیتابیس میتونه موقعیت اضطراری برای سازمان ایجاد کنه. حضور DBA ها میتونه در این مواقع موثر باشه.

وقتی یه نفر تصادفی دیتا رو delete میکنه، تمام بیزینس میتونه دچار مشکل بشه، متاسفانه تو سازمان ها افراد زیادی هستن که به دیتابیس دسترسی دارن و گاهی بین اونها افراد غیر متخصص هم وجود دارن و حتی متخصص ها هم ممکنه گاهی اشتباه کنن. DBA ها کمک میکنن که از بروز فاجعه جلوگیری بشه.

مدیران پایگاه داده کجا کار میکنن؟

وظیفه DBA ها حفاظت از دیتا مهم هست، پس هرجا دیتا مهم وجود داره میتونین اونارو پیدا کنین. امروزه دیتا مهم همه جا هست پس DBA ها رو همه جا میتونین پیدا کنین، تو همه سازمان های بزرگ و کوچیک.

معمولا شرکت های کوچیک با 1 یا 2 دیتابیس به اندازه لازم کار برای DBA تمام وقت ندارن، در این موارد معمولا فردی در شرکت هست که بخشی از تایمش رو به انجام وظایف DBA مشغوله، به این افراد به اصطلاح “accidental DBAs” گفته میشه. احتمالا خیلی از DBA های فعلی زمانی اینجوری وارد این شغل شدن و گاهی هم هیچ قصدی برای این حوزه ندارن و فقط مسئول بخشی از این وظایف هستن.

هرچه شرکت بزرگتر باشه DBA های بیشتری داره، شرکت های بزرگ معمولا تیم از DBA ها دارن.

آیا دیتابیس ادمین به صورت ریموت و از خونه میتونه کار کنه؟

بله، میتونه و باید این اجازه بهش داده بشه. این روزها همه دارن از خونه کار میکنن اما گاهی مدیرها دوست دارن DBA هاشون رو در محل کار ببینن. حساسیت بی موردی در این زمینه وجود داره چون DBA ها از با ارزش ترین دارایی شرکت حفاظت میکنن، یعنی دیتا شرکت.

بخاطر شرایط اضطراری معمولا DBA ها در جلسات موقت حضور دارن و بنا به سطح امنیت این موارد، مدیر دوست داره رو در رو، آدما رو تو جلسه ببینه و تو اتاق گیرشون بندازه.

گاها شرکت ها ترجیح میدن به دلایل زیر DBA های ریموت رو استخدام کنن:

شرکت تو نقطه دور افتاده ای قرار داره

برای مثال، یکی از مشتریان من در شهر کوچیکی هست و براحتی نمیتونه توی اون شهر DBA پیدا کنه. همچنین DBA ها حاضر نمیشن بخاطر این شغل محل زندگیشون تغییر بدن، پس کمپانی ناچاره که از DBA ریموت استفاده کنه.

شرکت به دنبال مهارت ویژه ای هست که سخت پیدا میشه

برای مثال، یکی از مشتریان من نیاز به راه اندازی Distributed Availability Groups داشت که به ندرت استفاده میشه و تعداد DBA های که این تجربه رو داشته باشن خیلی محدوده، پس ناچار شد این بخش از کار رو به DBA ریموت بسپاره.

در مقایسه با تحلیل‌گر داده، وظیفه DBA چیه؟

تحلیلگر داده کوئری می‌نویسه تا جواب های مناسب رو از دیتا استخراج کنه، اما DBA اطمینان حاصل میکنه که جواب کوئری با سرعت مناسبی دریافت بشه.

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

یه دیتابیس ادمین معمولا اطلاعات کمتری از جزئیات بیزینس داره. اونها بیشتر در مورد سیستمی که دیتا رو نگهداری می‌کنه میدونن مثل Microsoft SQL Server, Postgres, MySQL, Oracle و غیره، DBA میدونه که کدوم کاربر کدوم کوئری رو بیشتر اجرا میکنه و ممکنه به تحلیلگر کمک کنه تا کوئری های بهتری اجرا کنه اما معمولا نویسنده کوئری های جدید نیست.

خب یکم پیچیده شد، چون عادت کرده بودیم عنوان DBA رو به همه چیز بدیم . "اگه داره رو دیتا کار میکنه، پس دیتابیس ادمینه دیگه"

تفاوت دو سطح junior DBA و senior DBA چیه؟

یه junior DBA بخش زیادی از کارش رو داره برای اولین بار انجام میده و برای انجام کارهاش وابسته به google و جستجو در اون هست.

یه senior DBA چندین سال رو به عنوان junior DBA سپری کرده و به انجام کارهای معمول مثل configuring backups, troubleshooting outages, managing security, and responding to end user requests ،عادت داره.به این معنی نیست که از گوگل استفاده نکنه یا کاری رو برای اولین بار انجام نده اما حداقل نیمی از کارهاش رو قبلا بارها و بارها انجام داده و اگر هر قرار باشه چیزی رو گوگل کنه برای انجام کار با روش بهینه تر هست مثلا انجام اتوماتیک کارها با استفاده از PowerShell.

تعداد سالهای تجربه کار به تنهایی نمیتونه فردی رو از junior به senior ارتقا بده، وجود دارن افرادی که بعد از 10 سال، کارها رو همونجوری انجام میدن که روز اول انجام میدادن و هیچ تجربه ای در مورد انجام کارها به صورت اتوماتیک یا انجام کارهای پرچالش بدست نیاوردن.

یه DBA از چه ابزارهایی استفاده می‌کنه؟

زمانی که یک سرور SQL رو مدیریت میکنیم، معمولترین ابزار SQL Server Management Studio است. یک ابزار رایگان مایکروسافت که برای ده ها استفاده شده و از همان ابتدا بعنوان کنسول اصلی پایگاه داده نوشته شد. اینکه گاهی DBA ها از ابزار های دیگه برای مدیریت پایگاه داده استفاده میکنن فقط به این دلیل که SSMS قدیمی هست یا جزئیات زیادی داره، خیلی منصفانه نیست. من بیشتر زمانم رو در این ابزار سپری میکنم.

زمانی که تعداد زیادی سرور SQL رو مدیریت میکنیم، DBA ها معمولا از PowerShell استفاده میکنن، معمولا به کمک فریم ورک DBAtools.io. استفاده از PowerShell رو میتونین با کتاب Learn PowerShell Scripting in a Month of Lunches شروع کنین.

برای نوشتن کد جدید، مایکروسافت از ما میخواد که از ابزار Azure Data Studio استفاده کنیم. چیزی شبیه به Visual Studio Code. یک اپلیکیشن cross-platform که میشه کارای دیتابیس ادمینی هم باهاش انجام داد اما در اصل برای دیتابیس Developer ها مناسب هست. برای مثال من برای کوئری نویسی همزمان در Microsoft SQL Server و Amazon RDS Aurora Postgres از Azure Data Studio استفاده کردم چون با هردو کار میکنه.

چه آموزش هایی کمک میکنه که اولین شغل DBA مون رو بدست بیاریم؟

شرکت ها تقریباً هرگز DBA بدون تجربه رو استخدام نمی کنن. برای به دست آوردن این تجربه ، دو مسیر شغلی وجود داره.

  • ابتدا به عنوان یک Developer شغل پیدا کنین و زمان زیادی رو برای SQL Server صرف کنین. کم کم با object تو SQL Server مثل جدول ها و ایندکس ها و روش ذخیره سازی دیتا آشنا میشین و کم کم میتونین یه “the database person” بشین تا درنهایت موقعیت ادمین پایگاه داده رو بدست بیارین.
  • یا ابتدا به عنوان sysadmin کار کنین و به عنوان بخشی از وظایف کلی مدیریت سرور، با سرورهای پایگاه داده درگیر بشین. با پیشرفت شغلتون، سرورهای دیتابیس جدید نصب میکنین، سرورهای موجود را وصله می کنین، موقع خراب شدنشون عیب یابی میکنین و کم کم مسیر DBA شدن رو طی میکنین.

در هردو حالت نقص هایی دارین، اگه Developer باشین جزئیات نصب و راه اندازی رو نمیدونین و اگه sysadmin باشین دانشتون در مورد کوئری نویسی کم خواهد بود اما در ادامه کار به عنوان DBA فرصت دارین تا ضعف‌هاتون رو برطرف کنین.

آیا تازه کارها می توانند به عنوان مدیر پایگاه داده کار کنن؟

اگه تازه از دانشگاه فارغ التحصیل شدین بعیده مستقیما DBA بشین. بهتره همونطور که گفتم اول یه Developer یا sysadmin بشین و بعد تمایلتون رو به DBAشدن نشون بدین.

اگه شرکتی رو پیدا کردین که تازه کارها رو به عنوان DBA استخدام میکنن، خیلی مراقب باشین چون این شغلها خیلی کم درآمد هستن و درنهایت مجبور میشین بخاطر درآمد کم شرکت رو ترک کنین. به این امید که با تخصصی که تو این شرکت به دست آوردین بتونین شغل DBA مناسبی رو پیدا کنین. اما ناامید خواهید شد چون اون شرکت چیزی رو بشما یاد داده که مورد نیازش بوده ، بخش محدودی از وظایف یه DBA و در دنیای واقعی شما هنوز با یه ادمین پایگاه داده فاصله دارین.

داشتن گواهی یه دوره معتبر برای بدست آوردن شغل کافیه؟

تو دنیای Microsoft SQL Server، باید گفت نه کافی نیست. متاسفانه حتی دوره های مایکروسافت هم تمام نیاز یه DBA رو پوشش نمیده، چون اونا دوست دارن مشتریا بسمت خدمات ابری مایکروسافت بیان، پس فقط چیزی رو یاد میدن که مایلن ما یاد بگیریم نه چیزی رو که واقعا نیاز هست.
متاسفانه دوره ها مسیر خوبی برای بدست آوردن اولین شغل DBA نیستن. به جای اون، روی کار به عنوان Developer یا sysadmin تمرکز کنین و بعد در محل کار خودتون کم کم یه “the database person” بشین.

آیا DBA ها همچنان در فضای ابری شغلی دارن؟

من این سوال رو زیاد میشنوم که تو فضای ابری، باز هم نیاز به DBA ها هست ؟ مثلا Azure SQL DB رو در نظر بگیرین. بعضی از وظایفی که تا حالا گفتیم تو سیستم عامل های پایگاه داده ابری به صورت خودکار انجام می‌شه، اما خیلی از کارها اینجوری نیست. برای مثال اگه نیاز بشه فایل پشتیبان چند ماه پیش رو نگهدارین. علاوه بر این بحث های Performance و بهینه سازی دیتابیس ها همچنان نیاز به وجود DBA ها داره.

مدیر پایگاه داده بودن شغل خوبیه؟

اگه حوصله اینو دارین که سالها یه کاری رو انجام بدین تا به تدریج به موقعیت DBA برسید، بله شغل مناسبیه. شما تبدیل میشین به مرکز داده شرکتی که توش کار میکنین، به این معنی که میدونین هرجای شرکت چه خبره، با همه کارمندای IT در ارتباطین، میدونین چه پروژه هایی در جریانه و میتونین به همه کمک کنین. با همه اینا، اشکالتی هم داره :

  • بدست آوردن اولین شغل DBA سخته.
  • تبدیل شدن از Junior به senior بدون تغییر شرکت تقریبا غیرممکنه.
  • بخش اصلی کارهای شما همزمان با ارتباط برقرار کردن با دیگرانه و برخلاف Developer ها این بخش کارتون ممکنه آزار دهنده باشه.
  • گاهی ممکنه مسئولیت زیادی داشته باشین اما قدرت تغییر شرایط از شما گرفته شده باشه و توی یه سیستم خراب گیر بیوفتین.
  • طی سالها وضعیت این شغل ثابت بوده اما بزودی ممکنه همه چیز متحول بشه و شرایط بکلی تغییر کنه پس باید همیشه آماده تغییرات باشین.

منبع :

www.brentozar.com

dbadatabase administratorمدیر پایگاه دادهsql serverدیتابیس ادمین
مدیر پایگاه داده در ایپاد
شاید از این پست‌ها خوشتان بیاید