Verilənlər Bazası Siyasəti
Bu məqaləmdə sizlərlə SQL Server Verilənlər Bazasının siyasəti haqqında danışacam. Verilənlər Bazasının siyasətində ən əsas addımlar aşağıda qeyd edilmişdir. Bunlara nəzər salaq.
- Standart Verilənlər Bazası mühiti
- SQL Server’in Quraşdırılması və yenilənməsi
- Ümumi Server quraşdırılması
- Təhlükəsizlik əsasları
- SQL Server parametrlərinin quraşdırılması
- Server üçün yaddaş (memory) quraşdırılması
- İstifadəçi məlumatlarının və log məlumatların idarəedilməsi
- Verilənlər bazasının fayllarının ölçüsünün kiçildilməsi
- TempDB verilənlər bazasının idarəedilməsi
- Verilənlər Bazası parametrlərinin quraşdırılması
- Avtomatik işlərin quraşdırılması (jobs) – Ümumi Təlimatlar
- Kritik səhvlər üçün avtomatik xəbərdarlıqların quraşdırılması
- Nüsxə və nüxsədən bərpa strategiyasını həyata keçirmək
- Fəlakət zamanı bərpaetmə planının hazırlanması
- Verilənlər Bazası sənədinin olması
- Hər bir baş verəbiləcək halların test edilməsi
İndi isə yuxarıdakılar haqqında daha detallı danışaq.
- Standart Verilənlər Bazası mühiti
- İdeal olaraq, SQL Server mühiti mümkün qədər standartlaşdırılmalıdır.
- Konfiqurasiya zamanı eyni server və avadanlıqlardan istifadə edin.
- Eyni Əməliyyat Sistemi versiya və konfiqurasiyalarını istifadə edin.
- Eyni SQL Server versiya və konfiqurasiyalarını istifadə edin.
- Verilənlər Bazanın proflaktikası üçün eyni işlərdən (jobs) istifadə edin.
- SQL Server mühiti üçün “Standart Bələdçi” yaradın.
- SQL Server’in Quraşdırılması və Yenilənməsi
Yeni SQL Server quraşdırılan (installing) zaman:
- ən yeni əməliyyat sistemi sürücüləri və ən yeni qurğularından istifadə edin.
- ən sonuncu Xidmət Paketi (SP) və yamaqları (Patch) üzərində olan ən yeni əməliyyat sistemi versiyasını istifadə edin.
- ən sonuncu Xidmət Paketi (SP) və problemləri həll edilmiş olan ən yeni SQL Server versiyasını istifadə edin.
- test edin, sabitliyini yoxlayın, istifadəyə verin və hər hansısa bir dəyişiklik zamanı ehtiyatlı olun.
Mövcud SQL Server’i yeniləyən (updating) zaman:
- Yenilənmə üçün yaxşı və əsaslı bir səbəbiniz yoxdursa bunu etməyin. Əgər sisteminiz normal işləyirsə, bu zaman işləyən sistemə problem yaratmayın.
- Əgər sizin yeni özəlliklərə ehtiyacınız varsa və yaxud köhnə quraşdırılma zamanından qalan probleminiz varsa, o zaman yenilənmə edə bilərsiniz.
- Yenilənmə (update) prosesinin uğurlu olmasını mütləq test etməlisiniz. Yeni SQL Server və ya əməliyyat sistemi test zamanı uğurlu olmaya bilər. Bu zaman geri dönüş üçün asan bir yol olmalıdır.
- Ümumi Server Quraşdırılması
- İdeal olaraq, SQL Serverin qurulduğu fiziki və ya virtual maşında SQL Server-dən başqa proqramlar olmamalıdır. Sadəcə həmin serverdə kiçik monitoring proqramları ola bilər.
- Yaxşı bir səbəb olmadıqca, eyni Serverdə çoxlu SQL Serverlərin quraşdırılmasından yayının. Onun əvəzində virtualizasiya düşünsəniz daha yaxşı olar.
- Lazımsız SQL Server servisləri silinməli və ya söndürülməlidir.
- Ümumiyyətlə, Verilənlər bazası olan serverlərdə antivirus və ya antispyware proqramlarını istifadə etməyin.
- Əgər işlədiyiniz təşkilatın siyasətinə əsasən bütün serverlərdə antivirus proqramı gərəklidirsə, o zaman antivirus tərəfindən MDF, NDF, LDF, BAK, TRN ve BCP fayllarının yoxlanılmasını məhdudlaşdırın.
- Təhlükəsizlik əsasları
- Verilənlər bazası istifadəçilərinə (logins and users) ehtiyac yaranmadıqca artıq icazələri verməyin.
- Hər iş üçün “SA” istifadəçisini istifadə etməyin. SA istifadəçisinin adını dəyişin. Bu istifadəçi üçün mürəkkəb şifrə təyin edin. Mümkündürsə, onun əvəzinə “sysadmin” rolu olan domain hesabı istifadə edin.
- Tətbiqlərinizi “SA” istifadəçisi və ya “sysadmin” rolu olan istifadəçilərlə qoşmayın və kənar şəxslərin SQL Server’ə girişi üçün bu cür istifadəçilər verməyin.
- Əgər mümkünsə Windows Authentication təhlükəsizliyindən istifadə edin.
- Serverlərinizə sysadmin girişləri verməyin.
- İşinizi bitirdikdən sonra SQL Server’i bağlayın və ya kilidləyin.
- SQL Server parametrlərinin quraşdırılması
- SQL Server’in özünə bir çox quraşdırma parametrlər daxildir. (məsələn: sp_configure)
- Parametrlərin dəyişikliyindən sonra nə baş verəcəyini bilmirsinizsə, onda bu parametrləri dəyişməyin.
- Əgər SQL Server’də performans və ya HA artma və ya azalmasına ehtiyac olarsa, o zaman bu parametrlərdən uyğun olanlarını dəyişə bilərsiniz.
- Əgər hər hansı bir dəyişiklik edəcəksinizsə, o zaman yalnız bir dəyişiklik edin və onun təsirlərini gördükdən sonra digər dəyişiklikləri etməyə davam edin.
- SQL Server parametrlərinin quraşdırılması
- Ümumilikdə çalışın ki, SQL Serverin və Əməliyyat Sisteminin (OS) versiyalarını 64 bit seçəsiniz.
- SQL Server 32-bit versiyasını istifadə etdiyiniz halda maksimum 4 GB RAM istifadə edəcəkdir. Serverdə 8GB RAM olsa da normal şərtlər ilə SQL Serverin bu yaddaşın sadəcə 4 GB-ni görmüş olacaqdır. 32 bit-lik Server istifadə edirsinizsə, o zaman AWE yaddaşının düzgün konfiqurasiya olunduğundan əmin olun. (sp_configure ‘awe enabled’, 1). Qeyd edim ki, hal-hazırda bu parametr SQL Serverdən yığışdırılmışdır.
- İstifadəçi və log məlumatların idarə edilməsi
- Mövcud Verilənlər Bazasının MDF və ya LDF fayllarında olan fiziki parçalanmanı (fragmentation) aradan qaldırın.
- Yeni MDF və LDF faylları yaradan zaman onun iş prinsipini ölçərək və nəzərə alaraq, faylların minimum ölçüsü (minimum size) və həcminin avtomatik artmasını (autogrows) düzgün təyin edin.
- Performans baxımından, əgər mümkündürsə, MDF faylları Serverin öz disklərində yerləşdirilməlidir.
- Performans baxımından, əgər mümkündürsə, LDF faylları Serverin öz disklərində yerləşdirilməlidir.
- BAK və TRN faylları lokal Serverin öz disklərində yerləşdirilməməlidir. Nüsxələr və Log fayllar üçün ayrılmış Backup Storage-lər olmalıdır.
- Log faylların kiçildilməsindən sonra indekslərin yenilənməsi
- Əgər sizin MDF və LDF fayllarınızın ölçüsü normal görünürsə, onda həmin fayl və ya Verilənlər Bazasını “shrink” etmək lazım deyil.
- Verilənlər Bazası və fayllarda shrink əməliyyatını Planlaşdırılmış işlər ilə (Scheduled jobs) avtomatik quraşdırmayın.
- Əgər MDF faylını mütləq shrink etməlisinizsə:
– Onda bunu əl ilə edin
– Shrink tamamlandıqdan sonra indeksləri yenidən qurun və ya yeniləyin.
– Bu prosesləri günün (işin) sakit zamanlarında etməyə çalışın.
- Faylları avtomatik shrink etməməyin faydaları:
– Böyümə və kiçilmə sendromu aradan qalxır.
– Fiziki faylların parçalanması (fragmentation) azalır.
– Bu avtomatik prosesin aradan qalxması nəticəsində daha az resurs istifadə olunur.
- TempDB verilənlər bazasının idarəedilməsi
- Avtomatik böyümənin tez-tez olması gərəkməyəcək şəkildə əvvəlcədən tempdb’nin ölçüsünü təyin edin. Onun ölçüsü susmaya görə (default) 8MB olur. Göründüyü kimi bu çox kiçikdir.
- Fayl böyüməsinin tez-tez baş verməsinin qarşısını almaq üçün avtomatik böyüməni (autogrowth) minimuma endirin. Onun dəyəri susmaya görə 10%-dir. Bu zaman qısa zaman aralıqlarında faylın avtomatik böyüməsi baş verə bilər.
- Əgər tempdb çox aktiv işləyirsə, onda onun fayllarını local serverin disklərində yerləşdirin.
- Əgər tempdb çox aktivdirsə, o zaman onu çoxlu fiziki fayllara bölün, beləliklə CPU nüvələrin sayının ½ -i, faylların sayının ¼ -nə bərabərdir. Hər bir fiziki faylın ölçüsü eyni olmalıdır.
- Verilənlər Bazası parametrlərinin quraşdırılması
Çox yaxşı bir səbəbiniz yoxdursa, Verilənlər Bazasının default parametrlərini dəyişdirməyin. Onlardan bəzi əsas olanları aşağıdakılardır:
- Auto Create Statistics: On
- Auto Update Statistics: On
- Auto Shrink: Off
- Autogrowth: Bunu açıq buraxmayın. Fayl böyüməsini manuel olaraq idarə edin. Avtomatik böyümə hadisələrini ən aza endirərək onun üçün uyğun olan sabit miqdarı istifadə edin.
- Recovery Mode: Əməliyyatların Log nüsxələrini götürə bilmək üçün bütün verilənlər bazası üçün “Full” olaraq quraşdırın. Sadəcə hesabat üçün istifadə olunan Verilənlər Bazasında “Simple” rejim seçilə bilər.
- Page Verify: Kontrol toplamasını (checksum) istifadə edin və onu söndürməyin.
- Compatibility Level: Uyğunluq problemləri olmadığı müddətcə, mövcud serverin versiyası ilə uyğun olacaq şəkildə quraşdırılmalıdır.
- Planlaşdırılmış işlərin quraşdırılması (jobs) – Ümumi Təlimatlar
- Əgər real istifadədə olan SQL Server-də heç bir Job yoxdursa, deməli problemləriniz var. Çünki ən azından nüsxə (backup) almaq üçün bir planlaşdırılmış işə ehtiyac var.
- Planlaşdırılmış işləri elə qrafiklə quraşdırın ki, real iş zamanı başqa işlərə mane olmasın.
- Bir planlaşdırılmış iş ondan əvvəlki ilə üst-üstə düşməsin.
- Planlaşdırılmış işdə baş vermis xəta zamanı avtomatik email xəbərdarlıq göndərilsin.
- Planlaşdırılmış işlərin işləyib-işləməməsini gündəlik yoxlayın.
- Əgər özəlliklə Maintenance Plan Wizard istifadə edirsinizsə, ehtiyatlı olun. Əgər səhv istifadə olunarsa, əlavə olaraq təmir işləri (Maintenance Jobs) yarana bilər, buda performansa zərər verər.
- Kritik səhvlər üçün avtomatik xəbərdarlıqların quraşdırılması
- 19 (ölümcül) və daha yüksək şiddəti olan bütün hadisələr üçün SQL Server Event Alert yaradın.
- Xətalar haqqında özünüzə və ya gündəlik monitorinqdən məsul olan şəxslərə xəbərdarlıqlar göndərin.
- SQL Server Xəbərdarlıqları sizin ehtiyaclarınıza cavab vermirsə, üçüncü tərəf (third-party) xəbərdarlıq alətlərinidə nəzərdən keçirin.
13. Nüsxə və nüxsədən bərpa strategiyasını həyata keçirmək
- Bütün sistemlərdə Tam nüsxələrin (Full Backups) çıxarılması üçün gündəlik işləyən planlaşdırılmış işlər qurun, əlavə olaraq isə hər 1 saat intervalında Log nüsxələri (Transactional Log Backups) götürün. Ehtiyac olduğu halda Fərq nüsxələrini də (Differential Backups) götürün.
- Əgər Verilənlər Bazası, Bluk və ya Full Recovery rejimini istifadə edirsə, nəzarət edilə bilməyən bir şəkildə böyüməsinin qarşısını almaq üçün Log nüsxələri (Transactional Log Backups) götürmək lazımdır.
- Verilənlər Bazasının nüsxəsini çıxaran zaman onun bütünlüyünü doğrulamaq üçün onu RESTORE WITH VERIFYONLY ilə götürün. Çünki, güvəndiyiniz nüsxə faylı etibarlı olmaya bilər.
- Götürdüyünüz Verilənlər Bazası nüsxələrini Test mühitində periodik olaraq test edin.
- Özünüzə uyğun nüxsə saxlama siyasəti yaradın.
- Nüsxələri güvənilən və uzaq bir diskdə yerləşdirin. Local Serverin disklərində nüxsələrinizi saxlamayın.
- Əgər backup pəncərəniz və yaxud disk sahəniz limitlidirsə, nüsxələrin sıxışdırılmasını (backup compression) istifadə edin. Lakin bu sizin əlavə zamanınızı alacaqdır.
- Fəlakət zamanı bərpaetmə planının hazırlanması
- Kiçik və ya böyük hr hansı bir nüansın olması zamanı, SQL Server’ləriniz necə qurtaracağınızın detallarını adım adım göstərən bir sənət yaratmağınız gərəklidir.
- Həmin planın istifadəsi ilə praktika həyata keçirməlisiniz. Beləliklə bu yazılmış plan ilə yaxından tanış olmalıvə onu asanlıqla tətbiq etməyi bacarmalısınız.
- Microsoft SQL Server’in dəstəyi üçün istifadə olunan telefon nömrəsini komputerinizin yaxınlığına yapışdırın.
- Unutmayın ki, çox fəlakətlər kiçik olur, yəni sadəcə Verilənlər Bazası zərər görə bilər. Büyük fəlakətlər isə çok nadir hallarda ortaya çıxır. Yəni bütün Serverləriniz zədələnir və ya məhv olur. Ona görədə bunların hər ikisinə də hazırlıqlı olmanız vacibdir.
- SQL Server və Verilənlər Bazasının sənədinin olması
- Əlbətdə, sənədləşmə çox sıxıcıdır amma o çox kritik hallarda Verilənlər Bazası administratorlarının köməyinə çatır. Sənədləşmədə nəzərə alın:
- Hər bir SQL Server instansiyasının yüklənilməsi və quraşdırılmasını
- Axra tərəfdə SQL Serveri istifadə edən hər bir tətbiqin yüklənilməsi və quraşdırılmasını
- Problemləri aradan qaldırdığınız zaman onların qeydinin aparılması. (Çünki eyni problemləri təkrar-təkrar etməyi heçkim istəməz)
- İstənilən tarixdə instansiyada edilmiş hər bir dəyişikliyin tarixə uyğun qeydinin aparılması.
- Sənədləşməni görməyə icazəsi olan şəxslərin hər zaman onu görməsi üçün əlçatan yerdə olması.
- Baş verəbiləcək hər bir halın test edilməsi
- SQL Server’də hər hansısa bir dəyişiklik etməzdən əvvəl, ilk öncə bir Test mühitində test etdiyinizdən əmin olun.
- Hər zaman əlinizin altında bir Test mühitinin olması vacibdir.
Qeyd etmək istəyirəm ki, siz öz təcrübənizə dayanaraq, verilənlər bazanız üçün daha fərqli və daha yaxşı Verilənlər Bazası Siyasəti hazırlaya bilərsiniz.
Qeyd: Heç vaxt unutmayın ki, siz bir DBA kimi öz şirkətinizin verilənlərinin qoruyucususunuz. Siz bu işi qəbul etdiyiniz gün artıq bununla razılaşmısınız. İstər qəbul edin, istər etməyin! 🙂